Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.04.2012, 10:22
Интересующийся
Отправить личное сообщение для TRos Посмотреть профиль Найти все сообщения от TRos
 
Регистрация: 10.04.2012
Сообщений: 25

Как сделать блок, исчезающий вверху страницы?
Здравствуйте. Задался целью сделать кнопку для автоматического перехода на самый верх странички (как Вконтакте). Реализовал через блок, который вначале скрыт, а при прокрутке появляется. И все бы хорошо, но при возвращении на самый верх страницы кнопка не исчезает и продолжает висеть сбоку, раздражая взгляд Путем исканий пришел к следующей функции (смысл в том, что если позиция прокрутки равняется нулю, то блоку #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
Scrollingindex.html:35
(anonymous function)index.html:54
onscroll
Блок с кнопкой не появляется
Ответить с цитированием
  #2 (permalink)  
Старый 10.04.2012, 11:00
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сравнение ==
Присваивание =
Ответить с цитированием
  #3 (permalink)  
Старый 10.04.2012, 13:30
Интересующийся
Отправить личное сообщение для TRos Посмотреть профиль Найти все сообщения от TRos
 
Регистрация: 10.04.2012
Сообщений: 25

Изменил - теперь Хром не ругается вообще, но и кнопка тоже не появляется
Ответить с цитированием
  #4 (permalink)  
Старый 10.04.2012, 13:41
Интересующийся
Отправить личное сообщение для TRos Посмотреть профиль Найти все сообщения от TRos
 
Регистрация: 10.04.2012
Сообщений: 25

На всякий случай приведу стиль блока с кнопкой:
#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>
Ответить с цитированием
  #5 (permalink)  
Старый 10.04.2012, 14:09
Аспирант
Отправить личное сообщение для Викториан Посмотреть профиль Найти все сообщения от Викториан
 
Регистрация: 09.04.2012
Сообщений: 65

Повесь на ссылку адрес с рещеткой (чтобы наверх переходил) и проверяй на клике, если позиция прокрутки равна 0, значит ты вверху, то есть кнопку можно скрыть) А при скролле отображай снова.
Ответить с цитированием
  #6 (permalink)  
Старый 10.04.2012, 19:02
Интересующийся
Отправить личное сообщение для TRos Посмотреть профиль Найти все сообщения от TRos
 
Регистрация: 10.04.2012
Сообщений: 25

Так я так и делаю Проблема в том, что кнопка не появляется при прокрутке...
Ответить с цитированием
  #7 (permalink)  
Старый 10.04.2012, 19:43
Интересующийся
Отправить личное сообщение для TRos Посмотреть профиль Найти все сообщения от TRos
 
Регистрация: 10.04.2012
Сообщений: 25

Немного изменил функцию:
function Scrolling()
{
  if (scroll <= 1)
{document.getElementById('top').style.display = 'none';}
  else
{document.getElementById('top').style.display = 'block';};
};


Теперь кнопка при прокрутке опять появляется, но при возвращении наверх никак не хочет исчезать
Ответить с цитированием
  #8 (permalink)  
Старый 12.04.2012, 08:59
Интересующийся
Отправить личное сообщение для TRos Посмотреть профиль Найти все сообщения от TRos
 
Регистрация: 10.04.2012
Сообщений: 25

Ура! После долгих мучений решил проблему сам вот таким способом (может кому пригодится):
<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 Может кто-нибудь че посоветует...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать реакцию на изменение любого элемента формы. Mik Events/DOM/Window 3 28.07.2011 08:52
Как убрать hover? Либо как сделать стрелки статичными? krusty36 Элементы интерфейса 1 13.07.2011 09:20
подскажите, как сделать индикатор «до начала загрузки страницы»? SergAG Элементы интерфейса 7 31.05.2011 19:53
Как сделать так, чтобы JS при нажатии на кнопку не выполняла запрос со страницы. JSProgrammer Элементы интерфейса 3 18.05.2010 20:18
Как сделать печать страницы (с фонами)? khusamov Общие вопросы Javascript 3 20.07.2009 14:22