滚动时的margin-left更改

时间:2013-10-03 09:19:42

标签: javascript html css

要从左向右滚动,我有这个小javascript,效果非常好。

window.onscroll=function() {
var scroll = window.scrollY;
$('#page').css('left', '-' + scroll + 'px');
}

但每次我向右滚动一次,然后向左滚动,内容的边距就会改变。 image

您可以看到两张图片的滚动条位于顶部。 第一个在滚动之前,第二个在滚动之后。

demo without pictures

2 个答案:

答案 0 :(得分:2)

添加position:fixed不会自动将元素定位到最左侧。您应为left添加初始#page值,以获得一致的结果,f.ex:

#page{ left:0 }

虽然您希望左侧有更多空间,但请尝试以下方法:

var init = 200, // the initial left margin
    $page = $('#page').css('left', init);
window.onscroll = function() {
    $page.css('left', init-window.scrollY);
};

答案 1 :(得分:1)

当css样式left = 0px时会发生这种情况。如果scroll = 0,请删除左侧样式 请参见示例http://jsbin.com/umAdeGI/2