将body / div的背景位置居中到Viewport的中间位置

时间:2012-12-10 10:51:07

标签: javascript

我的身高为1000像素,屏幕高度为100像素。我希望显示占据整个<div>宽度和<body>高度的<body>。那个<div>有一个background-image,我希望它显示在视口的中间。我怎样才能使用Javascript实现这一目标。

我使用了以下概念,但它在移动设备中对我不起作用

  ele.style.backgroundPosition = document.body.scrollTop + 
                                 (window.innerHeight / 2) - heightOfImage;

1 个答案:

答案 0 :(得分:0)

最简单的解决方案可能是固定定位<div />并在其上设置背景图像,并设置z-index,使其显示在页面上的所有其他元素下。

示例:http://jsfiddle.net/gztRa/

如果你确实想要使用JavaScript路线(如果我能帮助它,我个人不会这样做),你将不得不做这些事情:

  1. 连接到滚动元素的滚动事件
  2. 每次触发时,请调整滚动位置,如下所示:
  3. 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/