![]() |
|
||||||||||
|
|||||
|
Регистрация: 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
|
Цитата:
|
![]() |
Часовой пояс GMT +4, время: 18:24. |
|
|
« Предыдущая тема | Следующая тема » |
|
|