jquery - 如何淡化循环背景图像?

标签 jquery html css twitter-bootstrap

菜鸟在这里..我正在尝试让我的静态背景变成轮播..我当前的 html 看起来像这样:

<body>
    <div class="pageContent">
    </div>
</body>

和我的 CSS:

body {
    background: url('http://placehold.it/1600x1200') no-repeat center center fixed;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
}

所以我想让背景现在循环图像并保持响应..这可以使用 CSS3 轻松完成吗?或者我应该用 Bootstrap 将我的 html 的内容包装在轮播中吗?我找不到一个很好的例子来说明如何做到这一点。提前致谢。

最佳答案

jsBin demo

Full page gallery fade

我会使用 absolute 定位的 DIV 覆盖 body。 使用新图像淡入 DIV,然后将相同的图像设置为 body 并隐藏 DIV,如: (灰色是BODY,SOrange是DIV)

Responsive background fade gallery logic

当前图像Array的自增是通过++counter预增来实现的。

循环修复是使用 Remainder Operator% 来实现的,以防止计数器超过 Array 中的图像数量。

循环本身是在 .fadeTo() 回调函数中完成的,只需对 loopBg() 函数进行新的迭代即可。

这是所需的 CSS:

*{margin:0;padding:0;} /* Global reset */
html, body{height:100%;width:100%;}
body, #bg{ background: #000 none 50% / cover; }
#bg{
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  right:0;
  width:100%;
  height:100%;
}

还有 jQ:

var images = [
  "bg0.jpg",
  "bg1.jpg",
  "bg2.jpg"
];
var $body = $("body"),
    $bg = $("#bg"),
    n = images.length,
    c = 0; // Loop Counter

// Preload Array of images...
for(var i=0; i<n; i++){
  var tImg = new Image();
  tImg.src = images[i];
}

$body.css({backgroundImage : "url("+images[c]+")"}); 

(function loopBg(){
  $bg.hide().css({backgroundImage : "url("+images[++c%n]+")"}).delay(2000).fadeTo(1200, 1, function(){
    $body.css({backgroundImage : "url("+images[c%n]+")"}); 
    loopBg();
  });
}());

编辑:如果您想保持背景变化但内容可滚动,只需将 overflow:auto; 添加到 #page 就像在这个演示中一样:http://jsbin.com/huzayiruti/1/

关于jquery - 如何淡化循环背景图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25799055/

相关文章:

html - 跨浏览器 CSS 3 文本渐变

jQuery 文件上传 - GAE 删除上传的 blob

javascript - $.getScript返回status canceled应用程序不执行回调函数?

Jquery - 查找具有类名的最接近的父级

html - 如何从一个网页中提取元素以显示在另一个网页上

javascript - 如何重新加载 iframe 的父级而不重新加载它

html - 即使在使用 word-wrap 之后,flex item 也会因长单词而溢出容器

javascript - 通过 JavaScript 将输出显示到多个类

Javascript 通过 AJAX 实现 Bootstrap Modal

CSS 选择第二个后代