jQuery通过滚动切换.on()和.off()
我不知道该怎么做。我有一个按钮上的滚动效果。但我只想在用户位于页面顶部时启动它。当他离开“高度”时,我想把它转过来。如果他回到“高度”,我想把它打开 我试过这个jQueryjQuery通过滚动切换.on()和.off(),jquery,Jquery,我不知道该怎么做。我有一个按钮上的滚动效果。但我只想在用户位于页面顶部时启动它。当他离开“高度”时,我想把它转过来。如果他回到“高度”,我想把它打开 我试过这个jQuery $(document).ready(function(){ $('.navbar-toggle').click(function(){ $("html, body").animate({ scrollTop: 220 }, "slow"); }); }); var height = $
$(document).ready(function(){
$('.navbar-toggle').click(function(){
$("html, body").animate({ scrollTop: 220 }, "slow");
});
});
var height = $(window).height();
$(window).scroll(function() {
if ($(document).scrollTop() > height) {
$('navbar-toggle').off('click');
} else {
$('navbar-toggle').on('click');
}
});
但它不起作用,我不知道如何修复它。如果你们能帮我,那就太好了!:)
提前感谢您的代码中几乎没有错误。。 首先,你不应该这样做
$('navbar-toggle').off('click');
处理程序丢失,这意味着该元素的所有单击事件将被取消
另外,选择器中缺少点,它应该是$('.navbar toggle')
因此,我建议将函数保存到变量中,如下所示:
var myHandler = function(){
$("html, body").animate({ scrollTop: 220 }, "slow");
};
$(document).ready(function(){
var myHandler = function(){
$("html, body").animate({ scrollTop: 220 }, "slow");
};
$('.navbar-toggle').on('click', myHandler);
$(window).scroll(function() {
if ($(document).scrollTop() > 0) {
$('.navbar-toggle').off('click', myHandler);
} else {
$('.navbar-toggle').on('click', myHandler);
}
});
});
然后您可以轻松地执行以下操作:
$('.navbar-toggle').on('click', myHandler);
$('.navbar-toggle').off('click', myHandler);
但我只想在用户位于页面顶部时启动它
为此,您不需要计算高度,只需检查if($(document).scrollTop()>0)
最终的代码应该是这样的:
var myHandler = function(){
$("html, body").animate({ scrollTop: 220 }, "slow");
};
$(document).ready(function(){
var myHandler = function(){
$("html, body").animate({ scrollTop: 220 }, "slow");
};
$('.navbar-toggle').on('click', myHandler);
$(window).scroll(function() {
if ($(document).scrollTop() > 0) {
$('.navbar-toggle').off('click', myHandler);
} else {
$('.navbar-toggle').on('click', myHandler);
}
});
});
查看哦,是的!谢谢,这是一个很好的方法!