滚动停止视差效果在 Safari 中不起作用

Scrollstopping parallax effect not working in Safari

本文关键字:Safari 不起作用 视差 滚动      更新时间:2023-09-26

我的网站具有停止滚动视差效果。我用来停止滚动的代码是:

if ( parseInt($("div#bg").css("top"), 10) <= -0 ) {
    $('#content').css('top', (-0) + 'px');
    $('#logo').css('margin-top', (-142) + 'px');
}

这在Chrome,Firefox和Opera中工作正常,但在Safari中则不然。在 Safari 中使用不同的代码吗?我知道 Safari 在滚动方面有一个错误,但我找不到答案。有没有解决方法可以使它也可以在 Safari 中工作?或者某种编辑器,我可以通过它运行我的代码?

第一件事:你的布局有一些问题,因为我什至没有在Safari上看到你的作品库。我确实看到,您的所有图库元素都是主div中的单个元素,没有容器,这可能会导致非常难以控制的情况。

回到正题

parseInt($("div#bg").css("top"), 10) 

返回 NaN,我想这可能是您的问题。#bg 的顶部值设置为"auto",因此 parseInt() 将返回 NaN,因为第一个(以及所有其他字符:D)是 CHAR 而不是数字。

该代码在Chrome上运行,因为它的javascript引擎更具弹性,但它实际上不应该在那里工作,也不应该在其他浏览器中工作。

建议:你见过斯克罗尔吗?这是一个用于视差效果的开源jquery库。它写得很好,看起来它真的可以在这里度过你的一天。

http://prinzhorn.github.io/skrollr/