[英]Using Bootstrap 3 Carousel to change background image, any ideas for smooth fade transition?
如何在以下脚本中对background-image
属性进行更改以平滑过渡?
function carousel_background() {
// gets bootstrap 3 carousel first/active image on load.
$(window).load(function() {
var load_img = 'url(' + $('.active img').attr("src") + ')';
console.log(load_img);
$('#background-img').css('background-image', load_img);
});
// gets carousel next active image
$("#carousel-example-generic").on('slid.bs.carousel', function() {
var active_img = 'url(' + $('.active img').attr("src") + ')';
console.log(active_img);
$('#background-img').css('background-image', active_img);
});
}
也改变.on(slid.bs.carousel到.on(slide.bs.carousel使图片更改的时间更加同步,但后来我改变了这个“active_img”成为上一张图片。
我试图实现类似于这个网站的一些东西https://pro.beatport.com/
您可以使用css transition
属性。 请注意,在撰写本文时,对旧浏览器上的转换属性的支持有点缺乏,但可以使用适当的供应商前缀进行补充。
( 演示 )
.active img {
transition: background-image 1s linear;
}
尝试将它们堆叠在一起而不是向下堆叠。 然后使用javascript更改每个图像的图像z-index。 然后在所有图像上设置css转换。
如果你想看一下,管理到sus就会在“幻灯片”上消失,然后淡入“滑动” https://jsfiddle.net/tnxtd2ho/
所有虽然同步仍然是一秒钟慢。
// get carousel "slide" active image
$("#carousel-example-generic").on('slide.bs.carousel', function() {
var active_img = 'url(' + $('.active img').attr("src") + ')';
// fades out active image
$('#background-img').css('background-image', active_img).animate({ opacity: 0 }, { duration: 1000 });
});
// get carousel "slid" active image
$("#carousel-example-generic").on('slid.bs.carousel', function() {
var active_img = 'url(' + $('.active img').attr("src") + ')';
// fades in "slid" active image
$('#background-img').css('background-image', active_img).animate({ opacity: 0.3 }, { duration: 300 });
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.