【发布时间】:2017-12-27 19:17:29
【问题描述】:
我有一个带有背景图片的英雄部分。我希望通过在滚动上编辑background-position 属性来创建视差效果。我有一个 JavaScript 文件,如下所示:
$(document).ready(function () {
$(window).on('scroll', function () {
// Parallax effect
parallax.effect(); // TODO: rename this function
});
});
// Global variables
var currentWindowPos = $(window).scrollTop();
var parallax = {
// Variables
element: $('.hero.hero-bg'),
bgPosition: 0,
// Functions
effect: function () {
$(parallax.element).css({
'background-position': '0 -' + parseInt(360 + (currentWindowPos * .025)) + 'px'
});
}
};
我已经删除了其他动态效果,例如在页面滚动到某个点后向导航栏添加类。我可以在 Chrome 中看到该元素正在获取动态 background-position 属性,但图像似乎没有做任何事情。
在 Chrome 中,如果我手动进入开发者工具并添加 background-position 属性并使用箭头键增加或减少文本字段中的值,我可以看到图像上下/左右移动。
同样在 Chrome 中,如果我尝试取消勾选 element.style 部分中的 CSS 属性,它不会被删除,就像其他属性被禁用后一样。请看下文。
有人可以解释为什么会出现这个问题吗?有人可以提供解决方案吗?
这是 cmets 中的人的JSFiddle。
提前致谢。
【问题讨论】:
-
你能分享你的jsfiddle或代码来详细了解问题吗?
-
已编辑。请查看更新后的问题。
-
现在你想要什么??你想要整个 div 的背景图片??
-
你可以做 background-position :center !important
标签: javascript jquery css google-chrome