当前位置: 首页 > 面试题库 >

尝试使用CSS和JQUERY循环播放幻灯片中的多个背景图像

姜兴业
2023-03-14
问题内容

我在div中放置了三个背景图像。我试图使它们全部在一个淡入淡出的计时器上循环。我实际上在这里找到了类似的问题,但是我无法使它们起作用。无论如何,这是相关代码:

的HTML

<div id="slideshow">    
</div>

的CSS

#slideshow{
position:relative;
top:0;
width:100%;
height:635px;
background:
    url("car4.jpg"),
    url("city.jpg"),
    url("host3.jpg");
background-repeat:no-repeat;
background-size:100%;
}

我希望这样做CSS,但是我想这是必要的JQUERY; 我没有很多经验。但是没关系。

我真的很感谢您的帮助。让我知道是否能给您更多信息。谢谢。

***我尝试了CSS动画,但没有得到结果。这是我将其更改为:

#slideshow{
   position:relative;
   top:0;
   width:100%;
   height:635px;
   background:url("car4.jpg");
   background-repeat:no-repeat;
   background-size:100%;
   animation-name: one;
   animation-duration: 4s;
}
@keyframes one {
from {background: url("car4.jpg");}
to {background: url("city.jpg");}
}

这看起来是正确的,但是它仍然只显示原始图像“ car4.jpg”。谢谢


问题答案:

尝试从css background-image值创建数组,淡入,淡出第一背景图像;
从数组中删除褪色的背景图像,将删除的背景图像放置在数组的最后一个索引处; 将背景图像值重置为以逗号连接的数组;淡入,淡出,现在首先索引背景图像;
循环淡入,淡出所有背景图像; 递归调用function,以尝试创建“无限”淡入,淡出“ slideshow”的显示效果

$(function() {

  // set `$.fx.interval` at `0`

  $.fx.interval = 0;

  (function cycleBgImage(elem, bgimg) {

// `elem`:`#slideshow`

// set, reset, delay to `1000` after background image reset

elem.css("backgroundImage", bgimg)

  // fade in background image

  .fadeTo(3000, 1, "linear", function() {

    // set `delay` before fadeing out image

    // fade in background image

    $(this).delay(3000, "fx").fadeTo(3000, 0, "linear", function() {

      // split background image string at comma , creating array

      var img = $(this).css("backgroundImage").split(","),

        // concat first background image to `img` array,

        // remove first background image from `img` array

        bgimg = img.concat(img[0]).splice(1).join(",");

      // recursively call `cycleBgImage`

      cycleBgImage(elem, bgimg);

    });

  });

  }($("#slideshow")));

});


body {

  width: 400px;

  height: 400px;

}

/* set `#slideshow` parent background color */

.slideshow {

  background: #000;

  display:block;

  width:inherit;

  height:inherit;

}

#slideshow {

  width: 100%;

  height: 100%;

  display: block;

  opacity: 0.0;

  background-color: #000;

  /*

     set background images as `url(/path/to/image)` here,

     separated by commas

  */

  background-image: url("http://lorempixel.com/400/400/cats/?1"),

    url("http://lorempixel.com/400/400/animals/?2"),

    url("http://lorempixel.com/400/400/nature/?3"),

    url("http://lorempixel.com/400/400/technics/?4"),

    url("http://lorempixel.com/400/400/city/?5");

  background-size: cover, 0px, 0px, 0px;

/* set transtitions at 3000ms

  -webkit-transition: background-image 3000ms linear;

  -moz-transition: background-image 3000ms linear;

  -ms-transition: background-image 3000ms linear;

  -o-transition: background-image 3000ms linear;

  transition: background-image 3000ms linear;

    */

}


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">

</script>

<div class="slideshow">

  <div id="slideshow"></div>

</div>


 类似资料:
  • 问题内容: 如何在JavaScript中进行无限循环?我正在尝试制作幻灯片,可以正常工作,但是无法循环播放。我什至不能让它循环两次。 我现在正在使用的代码是 没有for的东西在那里,它确实经历了一次。当我输入for时,它要么使Firefox锁定,要么仅循环一次。我确信这是一件非常简单的事情,即使必须循环1,000,000次或进行其他操作(而不是无限循环),这对我来说也很好。 另外,我不想使用jQu

  • 播放幻灯片秀 自动依顺序显示每张图像。 选择频道或图像时按下按钮,再选择选项选单的[幻灯片秀]。 提示 显示图像时若按下START(开始)按钮,即会开始幻灯片秀。 幻灯片秀可与音乐同时播放。详细内容请参阅(相片) > [幻灯片秀] > [同时播放音乐与幻灯片秀]。

  • 播放幻灯片秀 自动依顺序显示每张图像。选择图标并按下START(开始)按钮后,即会开始播放幻灯片秀。显示之内容可能会因选择之图示而异。 提示 亦可透过操作接口或选项选单,启动幻灯片秀。 亦可进入(相片) > (相片设定),改变显示图像的速度。

  • 我制作了一个jquery幻灯片,下面是代码: HTML CSS jQuery “下一个”按钮工作,但当我点击“上一个”图像消失!有人能帮我吗? 这是小提琴。

  • 本文向大家介绍JS实现的多张图片轮流播放幻灯片效果,包括了JS实现的多张图片轮流播放幻灯片效果的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现的多张图片轮流播放幻灯片效果。分享给大家供大家参考,具体如下: 更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特

  • 我正在尝试用Java编写一个幻灯片放映程序,并希望使实现尽可能简单。 目标是显示一系列幻灯片,每个幻灯片都有导航按钮,此外还有依赖于幻灯片内容的其他按钮。(显示文本的幻灯片将有,而带有图像的幻灯片将没有此按钮。)