我正在创建一个博客,并尝试使用$(window).scroll(function()
,但有些东西会阻止它工作。
当用户向下滚动时,我尝试将名为scrolled
的类添加到正文中。有什么想法会阻止它正常工作吗?控制台不会对此提出任何错误。
JS
$(document).ready(function($) {
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 100) {
$("body").addClass("scrolled");
} else {
$("body").removeClass("scrolled");
}
});
});
现场预览
答案 0 :(得分:2)
删除溢出:添加到容器的auto属性。这将有效。
答案 1 :(得分:0)
你的函数需要一个$
参数,但是你没有传递任何东西,所以它被覆盖了,你应该这样做:
$(document).ready(function() {
$(window).scroll(function() {
var scroll = $(window).scrollTop();
if (scroll >= 100) {
$("body").addClass("scrolled");
} else {
$("body").removeClass("scrolled");
}
});
});
答案 2 :(得分:0)
更好的JS:
$(function() {
$(window).on('scroll', function() {
$('body').toggleClass('scrolled', $(this).scrollTop() >= 100);
});
});
在您的网站上,即使我通过控制台应用,我也看不到任何与.scrolled
相关联的CSS。
答案 3 :(得分:0)
这是一个有效的速记解决方案,fiddle
$(function() {
$(window).scroll(function() {
var scroll = ($(this).scrollTop() > 100) ? $("body").addClass("scrolled") : $("body").removeClass("scrolled");
});
});
此外,如果您正在使用jQueryUI,那么您可以使用switchClass()
为类更改过程添加一些动画,例如
var scroll = ($(this).scrollTop() >= 100) ? $("body").switchClass("default","scrolled", 1000) : $("body").switchClass("scrolled","default", 1000);
*注意:另外,不要忘记在文档中包含jQuery / jQueryUI库。