我有一个小网站,它利用了巧妙的滚动技巧和 jQuery 的 .addClass()
基本上,该站点会检查您是否滚动过某个点,然后在元素上设置类,使其具有额外的转换或动画。
在 Chrome 23.x 中,代码没有问题;
但是在 Mac 上基于 Webkit 的浏览器中,以及其他操作系统中的 Chrome 27.x+(我收到的最低错误报告)中,当类被删除时,元素“重复”。
该错误从未出现在 Firefox 中
这是Javascript
<script>
$(window).scroll(function () {
navi = $('#navi').height();
logo = $('#navi .logo img').height();
user = $('#user').height();
if ($(window).scrollTop() >= navi - logo) {
if (!$('#navi').hasClass("active")) {
$('#navi').addClass("active");
}
} else {
$('#navi').removeClass("active");
}
if ($(window).scrollTop() >= user) {
if (!$('#user').hasClass("active")) {
$('#user').addClass("active");
}
} else {
$('#user').removeClass("active");
}
});
</script>
我不是 100% 认为 Javascript 有问题。可能是 Webkit 中的 CSS 导致了这个问题,无论哪种方式都让我很伤心。
这是预期结果的Youtube 视频,这里是“Dupe”错误的截图(我在 Linux 中运行 Chrome 23.x,所以我让朋友截取了截图)
该页面可以在dev.brokengear.net找到/门禁者
进一步挖掘后,由于它是基于 Tile 的渲染系统,某些浏览器的伪影似乎是一个问题。