我知道我可以使用"点击" event并使jquery滚动到某个div,如下所示:
('a').click(function(){
$('html, body').animate({
scrollTop: $( '#div' ).offset().top
}, 500);
return false;
});
我想要做的是检测一个滚动,然后根据窗口的高度,使jquery滚动到不同的位置。
我尝试了以下部分工作,但是一旦触发了animate事件,它就不允许我滚动回顶部。
function goToByScroll(id){
$('html,body').animate({
scrollTop: $("#"+id).offset().top},
'slow');
}
$( document ).ready(function() {
$(window).scroll(function() {
if ($(this).height() < 990) {
goToByScroll('about');
}else if($(this).height() < 500){
goToByScroll('contact');
}
});
});
任何想法?! 感谢
答案 0 :(得分:0)
我真的不知道你在做什么,但你的javascript条件错了。
因此,如果您将< 990
置于第一个条件中,则所有高度&lt; 990将会达到这个结果,如果是,它将永远不会进入第二个。
请参阅此更新的代码。
function goToByScroll(id){
$('html,body').animate({
scrollTop: $("#"+id).offset().top},
'slow');
}
var lastScrollTop = 0;
$(window).scroll(function(event){
var scrollTop = $(this).scrollTop();
if (scrollTop > lastScrollTop){
// downscroll code
if (scrollTop < 500) {
goToByScroll('contact');
}else if(scrollTop < 990){
goToByScroll('about');
}
} else {
// upscroll code
if (scrollTop > 990) {
goToByScroll('about');
}else if(scrollTop > 500){
goToByScroll('contact');
}
}
lastScrollTop = scrollTop;
});