新手在这里..我正在努力让我的静态背景变成旋转木马……我现在的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轻松完成吗?或者我应该将我的html内容包装在带引导程序的旋转木马中?我无法找到如何做到这一点的好例子.提前致谢.
解决方法
jsBin demo
我会使用覆盖身体的绝对定位DIV来做到这一点.
使用新图像淡入DIV,然后将相同的图像设置为正文并隐藏DIV,如:
(灰色是身体,SOrange是DIV)
通过预先递增计数器来实现当前图像阵列的增量.
使用剩余运算符%可以实现循环修复,以防止计数器超出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/