3

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

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 中也能正常工作?或者我可以通过某种编辑器运行我的代码?

4

1 回答 1

1

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

回到主题

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

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

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

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

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

于 2013-11-03T22:30:32.657 回答