2014-01-20 5 views
0

ив написал простой скрипт, который Isnt работая намерениями:вопрос Javascript с если заявления

var prevscroll = 0; 
$(document).scroll(function(){ 

    var currscroll = $(document).scrollTop(); 
    if(currscroll > prevscroll){ 
     $("header").toggle(); 
     prevscroll = currscroll; 
    } 
    if(currscroll < prevscroll){ 
     $("header").toggle(); 
     prevscroll = currscroll; 
    } 
}); 

Когда страница прокручивается вниз, его означало, чтобы скрыть заголовок и только показать его, если его прокручивать вверх, однако случается так как я прокручиваю вниз его щелчок. : |

Я думаю, что могу просто заметить глупую ошибку! из-за того, что он будет продолжать мерцать, поскольку предыдущий свиток продолжает расти.

+1

Каждый раз, когда это условие возвращает true, вы переключаете внешний вид, заставляя его мигать. Вам нужно указать либо 'hide()', либо 'show()' в зависимости от того, прокручиваетесь ли вы вверх или вниз. – Goose

ответ

2

Вы не можете использовать toggle() так, как вы это делаете, потому что событие прокрутки вызывается много раз, поэтому если оно вызывается более одного раза с тем же значением для вашего оператора if, тогда оно будет мерцать, затем выключено, затем затем, каждый раз, когда вы звоните .toggle(). Вам нужно явно скрыть или показать, когда ваше условие выполнено.

Я не совсем понимаю, что именно вы пытаетесь сделать с prevscroll, но, возможно, это то, что вы хотите:

var prevscroll = 0; 
$(document).scroll(function(){ 

    var currscroll = $(document).scrollTop(); 
    if(currscroll > prevscroll){ 
     $("header").hide(); 
     prevscroll = currscroll; 
    } 
    if(currscroll < prevscroll){ 
     $("header").show(); 
     prevscroll = currscroll; 
    } 
}); 

Это скроет в любое время заголовка вы прокрутки вниз дальше и показать заголовок, как только вы начнете прокрутку вверх.

+0

Дох, я как-то поймал после того, как я отправил! Спасибо, что ответили – user2979139

+0

. Я использую prevscroll для проверки того, какое направление прокручивается, чтобы скрыть навигационную панель на мобильных телефонах при прокрутке вниз, но затем показывается при прокрутке, вместо того, чтобы иметь статическую панель справа вверху. (если это имело смысл) – user2979139

Смежные вопросы