Как сделать блок, исчезающий вверху страницы?
Здравствуйте. Задался целью сделать кнопку для автоматического перехода на самый верх странички (как Вконтакте). Реализовал через блок, который вначале скрыт, а при прокрутке появляется. И все бы хорошо, но при возвращении на самый верх страницы кнопка не исчезает и продолжает висеть сбоку, раздражая взгляд :( Путем исканий пришел к следующей функции (смысл в том, что если позиция прокрутки равняется нулю, то блоку #top присваивается значение скрытый, в других случаях - кнопка видимая):
function Scrolling() { if (self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop = 0) {document.getElementById('top').style.display = 'none';} else {document.getElementById('top').style.display = 'block';}; }; Но она, естественно не работает :) Подскажите где что неправильно, пожалуйста. З.Ы.: Вызов функции идет через <body onscroll = "Scrolling()"> З.З.Ы.: Консоль Хрома кричит: Код:
Uncaught ReferenceError: Invalid left-hand side in assignment |
Сравнение ==
Присваивание = |
Изменил - теперь Хром не ругается вообще, но и кнопка тоже не появляется :cray:
|
На всякий случай приведу стиль блока с кнопкой:
#top {position: fixed; margin-top: 280px; display: none; cursor: pointer;} и HTML: <body onscroll = "Scrolling()"> <div id="top" ><a href="#up"><img src="Up.png" title="Перейти на начало страницы" alt="Наверх" /></a></div><a name="up"></a> |
Повесь на ссылку адрес с рещеткой (чтобы наверх переходил) и проверяй на клике, если позиция прокрутки равна 0, значит ты вверху, то есть кнопку можно скрыть) А при скролле отображай снова.
|
Так я так и делаю :) Проблема в том, что кнопка не появляется при прокрутке...
|
Немного изменил функцию:
function Scrolling() { if (scroll <= 1) {document.getElementById('top').style.display = 'none';} else {document.getElementById('top').style.display = 'block';}; }; Теперь кнопка при прокрутке опять появляется, но при возвращении наверх никак не хочет исчезать :( |
Ура! :) После долгих мучений решил проблему сам вот таким способом (может кому пригодится):
<script type="text/javascript"> function getTop() { return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop); }; function Scrolling() { if (getTop() == 0) {document.getElementById('top').style.display = 'none';} else {document.getElementById('top').style.display = 'block';} }; <body onscroll = "Scrolling()"> <div id="top"><a href="#up" onClick="scroll(0,0); return false"><img src="Up.png" title="Перейти на начало страницы" alt="Наверх" /></a></div><a name="up"></a> Единственная печаль - все это не работает под IE :( Может кто-нибудь че посоветует... |
Часовой пояс GMT +3, время: 00:56. |