Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   DHTML/JS/CSS (http://www.flasher.ru/forum/forumdisplay.php?f=24)
-   -   Сползающий слой. Хочу. (http://www.flasher.ru/forum/showthread.php?t=60339)

getaka 07.07.2004 14:48

Сползающий слой. Хочу.
 
Друзья, кто знает Java скрипт, который управлял был слоем <div> таким образом, чтобы при скролинге страницы этот слой медленно сползал на свою абсолютную по отношению к окну позицию. Я видел у кого-то такие сползающие менюшки. Подскажите, пожалуйста.

kazakov_gin 07.07.2004 15:35

На скрипт, писал не я, и может быть что-нибудь лишнее :rolleyes: , так что сам разбирайся
Код:

<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>


getaka 07.07.2004 22:09

Ладненько, спасибочки. Будем посмотреть.

getaka 09.07.2004 12:25

Ещё раз спасибочки большое. Скрипт проверил, работает! Убрал лишнее function exit() последную строку убрал и сам создал <div>. И ещё кое какую мелочь подправил с переменными. Спасибо!!!

Илья К 09.07.2004 12:53

Для особо ленивых
 
Цитата:

Оригинал написал(а) getaka
Ещё раз спасибочки большое. Скрипт проверил, работает! Убрал лишнее function exit() последную строку убрал и сам создал <div>. И ещё кое какую мелочь подправил с переменными. Спасибо!!!
Слушай, если не тудно, брось, плиз, очищенный вариант.:)

getaka 10.07.2004 14:43

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) Всё!!! Счастливого запуска! :cool:

Илья К 10.07.2004 21:21

ПАСИБА!!!:)

getaka 10.07.2004 23:27

Друзья, всё это прекрасно! Но я вот о чём подумал. А есть ли у кого скрипт, который работает чуть-чуть иначе. А именно, слой спускается не сразу при скролинге, а обладая инерцией, ждёт когда пользователь прекратит скролинг страницы и только после этого слой медленно спускается на свою позицию. А?

Ируся 15.07.2004 15:12

Re: Сползающий слой. Хочу.
 
Цитата:

Оригинал написал(а) getaka
Друзья, кто знает Java скрипт, который управлял был слоем <div> таким образом, чтобы при скролинге страницы этот слой медленно сползал на свою абсолютную по отношению к окну позицию. Я видел у кого-то такие сползающие менюшки. Подскажите, пожалуйста.


Часовой пояс GMT +4, время: 13:44.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.