|
|
|||||
Регистрация: Aug 2003
Адрес: Казань
Сообщений: 63
|
Сползающий слой. Хочу.
Друзья, кто знает Java скрипт, который управлял был слоем <div> таким образом, чтобы при скролинге страницы этот слой медленно сползал на свою абсолютную по отношению к окну позицию. Я видел у кого-то такие сползающие менюшки. Подскажите, пожалуйста.
|
|
|||||
Регистрация: Dec 2003
Сообщений: 347
|
На скрипт, писал не я, и может быть что-нибудь лишнее , так что сам разбирайся
<style> #divBottom{position:absolute; font-family:arial,helvetica; height:20; width:100; font-size:12pt; font-weight:bold} </style> <script> function exit(){close()} var gright=170 var gbottom=40 var n = (document.layers) ? 1:0; var ie = (document.all) ? 1:0; function makeObj(obj,nest){ nest=(!nest) ? '':'document.'+nest+'.' this.css=(n) ? eval(nest+'document.'+obj):eval(obj+'.style') this.moveIt=b_moveIt; } function b_moveIt(x,y){ this.x=x; this.y=y this.css.left=this.x this.css.top=this.y } var pageWidth,pageHeight function geoInit(){ oTest=new makeObj('divBottom') pageWidth=(ie)?document.body.offsetWidth-4:innerWidth; pageHeight=(ie)?document.body.offsetHeight-2:innerHeight; checkIt() onresize=resized if(ie) window.onscroll=checkIt; } function checkIt(){ if(ie) oTest.moveIt(document.body.scrollLeft +pageWidth-gright,document.body.scrollTop+pageHeight-gbottom) else if(n){ oTest.moveIt(window.pageXOffset+pageWidth-gright, window.pageYOffset+pageHeight-gbottom) setTimeout('checkIt()',20) } } function resized(){ pageWidth=(ie)?document.body.offsetWidth-4:innerWidth; pageHeight=(ie)?document.body.offsetHeight-2:innerHeight; if(ie) checkIt() } onload=geoInit; if(n || ie) document.write('<div id="divBottom"><a href="#begin" onClick="javascript:exit()">???????</a></div>') </script>
__________________
[GIN] |
|
|||||
Регистрация: Aug 2003
Адрес: Казань
Сообщений: 63
|
Ладненько, спасибочки. Будем посмотреть.
|
|
|||||
Регистрация: Aug 2003
Адрес: Казань
Сообщений: 63
|
Ещё раз спасибочки большое. Скрипт проверил, работает! Убрал лишнее function exit() последную строку убрал и сам создал <div>. И ещё кое какую мелочь подправил с переменными. Спасибо!!!
|
|
|||||
Регистрация: Dec 2002
Адрес: Berlin
Сообщений: 444
|
Для особо ленивых
Цитата:
|
|
|||||
Регистрация: Aug 2003
Адрес: Казань
Сообщений: 63
|
1) Создайте в <body> слой: <div id="divBottom" ></div>
------------------------------------------------------ 2) Задайте ему в <head> любой стиль, например: <style> #divBottom { background-color: #990000; тыры-пыры...ля-ля-ля. } </style> ------------------------------------------------------- 3) Поместите в <head> следующий скрипт: <SCRIPT LANGUAGE=JavaScript> <!-- //Переменные gright и gbottom задают позицию слоя относительно верхнего левого угла окна: //(В старом скрипте они задавали позицию относительно нижнего правого угла ) //Далее в коментариях я покажу, где сделал небольшие изменения. var gright=400 var gbottom=100 var n = (document.layers) ? 1:0; var ie = (document.all) ? 1:0; function makeObj(obj,nest){ nest=(!nest) ? '':'document.'+nest+'.' this.css=(n) ? eval(nest+'document.'+obj):eval(obj+'.style') this.moveIt=b_moveIt; } function b_moveIt(x,y){ this.x=x; this.y=y this.css.left=this.x this.css.top=this.y } var pageWidth,pageHeight function geoInit(){ oTest=new makeObj('divBottom') pageWidth=(ie)?document.body.offsetWidth-4:innerWidth; pageHeight=(ie)?document.body.offsetHeight-2:innerHeight; checkIt() onresize=resized if(ie) window.onscroll=checkIt; } function checkIt(){ //Вот тут я кое что изменил. Кому надо позиционировать слой относительно нижнего правого угла //оставтье скрипт в этом месте как в старом варианте: if(ie) oTest.moveIt(document.body.scrollLeft +gright,document.body.scrollTop+gbottom) else if(n){ oTest.moveIt(window.pageXOffset+gright, window.pageYOffset+gbottom) setTimeout('checkIt()',20) } } function resized(){ pageWidth=(ie)?document.body.offsetWidth-4:innerWidth; pageHeight=(ie)?document.body.offsetHeight-2:innerHeight; if(ie) checkIt() } onload=geoInit; //--> </SCRIPT> ------------------------------- 4) Всё!!! Счастливого запуска! |
|
|||||
Регистрация: Dec 2002
Адрес: Berlin
Сообщений: 444
|
ПАСИБА!!!
|
|
|||||
Регистрация: Aug 2003
Адрес: Казань
Сообщений: 63
|
Друзья, всё это прекрасно! Но я вот о чём подумал. А есть ли у кого скрипт, который работает чуть-чуть иначе. А именно, слой спускается не сразу при скролинге, а обладая инерцией, ждёт когда пользователь прекратит скролинг страницы и только после этого слой медленно спускается на свою позицию. А?
|
|
|||||
Регистрация: Jul 2004
Адрес: Украина Одесса
Сообщений: 2
|
Re: Сползающий слой. Хочу.
Цитата:
|
Часовой пояс GMT +4, время: 13:32. |
|
« Предыдущая тема | Следующая тема » |
|
|