首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >滞后淡入淡出作为背景

滞后淡入淡出作为背景
EN

Stack Overflow用户
提问于 2014-03-24 15:03:22
回答 2查看 866关注 0票数 0

我希望我的网页的背景图像随着下一个图像的消失而淡出,我这样做:

代码语言:javascript
复制
    var backgrounds = [];
    backgrounds[0] = './img/bg.jpg';
    backgrounds[1] = './img/bg2.jpg';
    backgrounds[2] = './img/bg3.jpg';



function changeBackground() {
    currentBackground++;
if(currentBackground > backgrounds.length-1) currentBackground = 0;

$('.bgContainer').fadeOut(1500,function() {
    $('.bgContainer').attr('src', backgrounds[currentBackground]);
    $('.bgContainer').fadeIn(3000);
});



    setTimeout(changeBackground, 5000);
}

它工作得很好,但每次下一幅图像在任何其他元素中消失,就会开始掉下帧,变得非常滞后。有什么办法可以减少帧滴吗?

代码语言:javascript
复制
.bgContainer{
position:fixed;
z-index: -1;
width:100vw;
height:100%;
top:0;
}

<img class="bgContainer" src = "./img/bg.jpg">
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-24 15:17:02

我不知道您是否可以使用css转换来实现浏览器兼容性,但您可以尝试如下:

代码语言:javascript
复制
.bgContainer {
    transition: opacity 1500ms ease-in-out;
}

代码语言:javascript
复制
$('.bgContainer').css('opacity', 0);

setTimeout(function() {
    $('.bgContainer').attr('src', backgrounds[currentBackground]);
    $('.bgContainer').css('opacity', 1);
}, 1500);

这样,您不是使用javascript来更改css属性,而是使用CSS3淡出您的背景不透明度。

要比javascript动画慢得多,但只能在现代浏览器上工作。ie10+

票数 1
EN

Stack Overflow用户

发布于 2014-03-24 15:12:59

使用css转换而不是jQuery。我发现移动设备尤其如此。

通过javascript或jQuery添加一个类,并应用该类所需的效果。

如果您想更多地了解CSS转换,请查看

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22613078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档