一旦用户滚动1px,我试图自动滚动750px ,但达到750,我会滚动回正常,只有当我在页面顶部时,效果才会重新开始。
jQuery.noConflict()(function ($){
$(window).scroll(function (event) {
var body = $("html, body");
var scroll = $(window).scrollTop();
body.stop().animate({scrollTop:750}, '1500');
});
});
这是我的代码,但继续自动滚动到750px我怎么能停止事件并且只有在身体的顶部再次启动它?
答案 0 :(得分:2)
你只需要在动画调用周围添加一个if。
if(scroll == 0){
body.stop().animate({scrollTop:750}, '1500');
}
否则每次滚动它都会调用animate并返回750px位置
答案 1 :(得分:0)
据我了解,您希望仅在到达页面顶部时才触发滚动事件。因此,您可以在body
元素上切换类:
$(window).on('scroll', function(event) {
var scroll = $(window).scrollTop();
var $body = $('body');
if ($body.hasClass('onTop')) {
$("html, body").animate({
scrollTop: 750
}, '1500');
}
$body.toggleClass('onTop', scroll === 0);
}).scroll(); // trigger it on load or set it directly in HTML markup: <body class="onTop">