我有一个功能完好的元素,它的行为与其应该一样。一旦用户滚动过去某个特定点,就会添加一个班级。当用户向后滚动时,该类将被删除。我的问题是,一旦添加了类,当我刷新页面时,不再添加该类,直到我再次滚动。刷新后在滚动中添加类并保持行为页面
这是间歇性的。 Firefox是导致问题不断出现的主要浏览器。 Chrome开启和关闭。
我已经包含了我的代码的一个非常简化的代码片段,但它不容易看到,因为它需要刷新。我搜索了一整天,查看了cookies,本地存储,classie.js。我确信有比这些更容易,更简单的解决方案。
这是一个类似的网站:https://bert.house/en/。请在Firefox中查看。页面左上方的导航按钮向下滚动,看看会发生什么。然后刷新,你会看到它回到它的原始状态,直到你再次滚动。
$(window).scroll(function() {
var box = $('.box');
var scroll = $(window).scrollTop();
if (scroll > 100) {
box.removeClass('box-NotScrolled');
box.addClass('boxScrolled');
} else {
if (box.hasClass('boxScrolled')) {
box.removeClass('boxScrolled');
box.addClass('box-NotScrolled');
}
}
});
.box {
position: fixed;
top: 5%;
left: 5%;
width: 200px;
height: 200px;
background-color: red;
}
.boxScrolled {
background-color: green;
}
.box-NotScrolled {
background-color: red;
}
<div class="box"></div>
<div style="height: 1000px"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
这不是一个大问题。这是一个困扰我的问题,因为必须有解决方法。任何帮助都会很棒。谢谢。
_“我搜索了一整天,看着饼干,本地存储,classie.js。我确信有一个比这些更容易,更简单的解决方案。“_Nope,这就是你将要使用的。 CSS和HTML不会“记住”任何东西。当你滚动时,我会设置一个localStorage项目,然后在页面加载时读取该项目,如果存在,通过JS添加类。 –
感谢您的回复。这说得通。我会去看看它。虽然没有做过任何本地存储。当用户到达确切点时,我需要设置localStorage项目...您有任何推荐的链接可以去吗?我已经看过的地方似乎太过先进,不适合我想做的事。再次感谢。 – Jenn
'localStorage.setItem('滚动',true);'当用户滚动时。然后在页面加载'if(localStorage.getItem('滚动')){// addclass}' –