将主体/div的背景位置居中到视口的中间



我的身体高度是 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 路线(如果我能在这里提供帮助,我个人不会这样做),你将不得不按照以下思路做一些事情:

  1. 挂接到正在滚动的元素的滚动事件
  2. 每次触发时,请按如下所示调整滚动位置:

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/

最新更新