javascript - css3过渡效果
阿神
阿神 2017-04-10 18:10:32
[JavaScript讨论组]

我想点击下面的每个li
让的的data-pic里的图片路径显示到popbox
但是在他们切换的时候会图片会一闪一闪的
我给popbox加了个过渡的效果
transition:all 0.3 ease,不过初始没点过的还会一闪一闪
但点过了的就有过渡效果,这个要怎么才能解决?

<p class="popbox"></p>
<ul class="ul1">
    <li data-pic='xx.png'></li>
    <li data-pic='xx.png'></li>
    <li data-pic='xx.png'></li>
    <li data-pic='xx.png'></li>
    <li data-pic='xx.png'></li>
    <li data-pic='xx.png'></li>
    <li data-pic='xx.png'></li>
    <li data-pic='xx.png'></li>
</ul>
阿神
阿神

闭关修行中......

全部回复(5)
巴扎黑
$("li").on("click",function(){
    var Img = new Image();
    Img.src = $(this).attr("data-pic");
    Img.onload = function (){
        $(".popbox").empty().append(Img).hide().fadeIn();
    }
})

http://runjs.cn/code/4nyycv30

阿神

不是所有的属性都支持css3动画,background-image就是是不支持,看mdn上的这里

PHPz

没点击过的图片,浏览器没有下载过,第一次加载是要下载的,自然慢些,应该是在你的CSS过渡效果完成之后才下载好的吧。。。

点击过的图片,浏览器已经下载过了,可以立即从缓存里面拿到图片渲染,所以会先渲染图片,再执行那个CSS动画。

你可以试试把图片预加载出来再尝试点击。

最简单的预加载图片的办法,写几个Img标签隐藏起来或者大小设置为0

PHPz

正好遇到这个问题,可参考
http://www.w3cplus.com/css3/using-multi-...

巴扎黑

1楼是标准答案,JS权威指南上有说过这个问题。

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

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