javascript - transition的问题
大家讲道理
大家讲道理 2017-04-11 12:42:02
[JavaScript讨论组]

做一个轮播图,基本想法是这样:


通过改变src地址来实现轮播
在写过渡效果的时候遇到了问题(效果为淡入opacity:0→1)
主要代码如下:


slide.src = "images/banner" + index +".jpg";
slide.removeAttribute("style");
slide.style.cssText = "opacity:0;"
slide.style.cssText = "opacity:1;transition-property:opacity;transition-duration:1s;transition-timing-function:ease-in;"


这里写remove的想法是不想有淡出效果

现在的问题是在浏览器中打断点,一步步来,是有效果的,但是现实是没有过度效果的,why?

补充下:希望能用原生JS回答 萌新还没开始学库~

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(1)
巴扎黑

出于性能,浏览器会尽可能的把最近的需要渲染的动作整合到一起执行。

可以使用以下两种方式实现一种 nextTick,在上一次渲染结束后执行。

slide.style.cssText = "opacity:0;transition-property:opacity;transition-duration:1s;transition-timing-function:ease-in;"

// 1
requestAnimationFrame(function (){
    slide.style.cssText = "opacity:1;"
})

// 2
setTimeout(function (){
    slide.style.cssText = "opacity:1;"
}, 0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号