我的身体高度是 1000px,屏幕高度是 100px。我想显示一个占据整个<body>
宽度和<body>
高度的<div>
。该<div>
有一个background-image
,我想让它显示在视口的中间。我如何使用Javascript来实现这一点。
使用了以下概念,但它在移动设备中对我不起作用
ele.style.backgroundPosition = document.body.scrollTop +
(window.innerHeight / 2) - heightOfImage;
解决方案可能是设置一个固定位置的<div />
,上面设置背景图像,并且设置z索引,使其显示在页面上的所有其他元素下。
示例:http://jsfiddle.net/gztRa/
如果你真的想走 JavaScript 路线(如果我能在这里提供帮助,我个人不会这样做),你将不得不按照以下思路做一些事情:
- 挂接到正在滚动的元素的滚动事件
- 每次触发时,请按如下所示调整滚动位置:
var verticalPosition = document.body.scrollTop + (window.innerHeight / 2) - heightOfImage;
ele.style.backgroundPosition = 'center ' + verticalPosition + 'px';
请注意添加'px'
,因为这很重要。"中心"后面还有一个空格,所以你最终应该得到看起来像这样的东西:ele.style.backgroundPosition = 'center 50px'
.
示例(使用 Zepto 或 jQuery):http://jsfiddle.net/7aqgG/7/