javascript - 幻灯片背景图片

标签 javascript jquery html css

我有 3 张图片使用 JavaScript 使它们从左向右滑动以作为 html 的正文背景,但图片只是出现,我需要做些什么才能让它们顺利滑动。

仅供引用:我在预览中添加了一个 div。

听说是 JSFiddle

var bgArr = [
  "http://foxarc.com/en/cfxs/images/masks.jpg",
  "http://foxarc.com/en/cfxs/images/brushes.jpg",
  "http://foxarc.com/en/cfxs/images/text.jpg"
];
var i = 0;

// Start the slide show
setInterval(function() {
  $("#demo").css("background-image", "url(" + bgArr[i] + ")");
  (i < bgArr.length - 1) ? i++ : i = 0
}, 2000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div
       id="demo" 
       style="text-align:center; 
          width:90%; 
          height:310px; 
          overflow:hidden; 
          border-style:dashed; 
          border-width:1px;">
    <p style="margin-top:83px;"></p>
</div>

最佳答案

我认为最好的解决方案是在 body 中创建 2 个 div

<div class="background-1"></div>
<div class="background-2"></div>

把它们放在下面

body {
    position: relative;
    background: transparent;
    overflow-x: hidden;
}
.background-1, .background-2 {
    position: absolute;
    z-index: -1;
    width: 100%;
    height: 100%;
}

然后创建一个自定义 slider

$(document).ready(function(){
    var bgArr = ["http://foxarc.com/en/cfxs/images/masks.jpg",
                 "http://foxarc.com/en/cfxs/images/brushes.jpg",
                 "http://foxarc.com/en/cfxs/images/text.jpg"]; 

    var i = 0;

    var $bg1 = $('.background-1').css('background-image', 'url('+bgArr[0]+')')
                                 .css('left', '0%');
    var $bg2 = $('.background-2').css('background-image', 'url('+bgArr[1]+')')
                                 .css('left', '-100%');

    var bgSlide = function($bg) {
        $bg.animate({ left: '+=100%' }, 600, function(){ 
            if(parseInt($bg.css('left')) > 0) {
                $bg.css('left', '-100%');
                (i < bgArr.length-1) ? i++ : i=0;
                $bg.css("background-image", "url("+bgArr[i]+")");
            }                           
        } );
    }

    setInterval(function() {                
        bgSlide($bg1);
        bgSlide($bg2);                          
    }, 2000);
});

示例:jsfiddle

关于javascript - 幻灯片背景图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31136358/

相关文章:

javascript - 如何判断 ES6 类是否有给定名称的 getter?

javascript - 使用 IndexedDB 保存图片

html - h1 标签小于 h2,都在 section 标签内

python - 将用户信息保存在 HTML python 中的任何地方

javascript - 翻译docker yaml文件时出现不规则符号

javascript - 使用 mocha 测试调用内部 Promise 的函数

Javascript if 语句未按预期工作

javascript - 基本动态选择列表 PHP 和 AJAX Jquery

jquery - 如何在全日历中添加类(class)

html - 改变 parent 与 child ?