1

我不想实现滑块插件,而是使用 CSS/jquery 来交替 DIV 的背景图像(淡入/淡出或幻灯片效果)。目前我的代码如下:

HTML

<div class="block backpic">
</div>

CSS

.block {

    display: block;
        margin-right: auto;
    margin-left: auto;
    clear: both;
    box-sizing: border-box;
    padding-left: 20px;
    padding-right: 20px;
    width: 100%;
    overflow: hidden;
}


.backpic {
    height: 638px;
    background-image: url(../images/picture1.jpg);
    background-size: cover;
}

我应该怎么做才能用第二张图片交替图片1?非常感谢您的帮助

4

3 回答 3

7

使用 jQuery 淡出元素,而不是更改它的background-image属性,然后再次淡入:

$('.block').fadeOut(300, function(){

  $(this).css('background-image', 'url(path/to/other/image.jpg)')

  $(this).fadeIn(300);

});

如果您想要类似幻灯片的动画循环,请使用 JavaScriptsetInterval方法让代码在一定的毫秒数后重复:

var images = [

  'path/to/image1.jpg',
  'path/to/image2.jpg',
  'path/to/image3.jpg'

];

var index = 0;

setInterval(change_up, 1000);

function change_up(){

  index = (index + 1 < images.length) ? index + 1 : 0;

  $('.block').fadeOut(300, function(){

    $(this).css('background-image', 'url('+ images[index] + ')')

    $(this).fadeIn(300);

  });
}

这是一个例子

于 2013-09-29T21:20:24.203 回答
0

尝试使用偶数和奇数选择器

    .block:nth-child(odd) {
background-image:
 height: 638px;
    background-image: url(../images/picture1.jpg);
    background-size: cover;
}

.block:nth-child(even) {
background-image:
 height: 638px;
    background-image: url(../images/pictureNew.jpg);
    background-size: cover;
}
于 2013-09-29T21:19:48.353 回答
0

有一个核心滑块类

.slider{
   opacity:1
   -webkit-transition:opacity 500ms;
   -moz-transition:opacity 500ms;
   -ms-transition:opacity 500ms;
   transition:opacity 500ms;
}

.hideSlide{
   opacity:0
}

这将导致不透明度的淡化。然后,您可以使用隐藏幻灯片类更改不透明度,并在透明时更改背景图像。然后删除隐藏幻灯片类,它将淡入。

或者,您可以将一堆 div 叠放在一起,以 500 毫秒、1000 毫秒、1500 毫秒等递增的长度淡出,以将它们展示给查看者。

于 2013-09-29T21:45:35.940 回答