web 图片切换闪屏

我们直接进入高潮吧。

// update images
Element.addEventListener('click',function(e){
    if(_var){
        Element.scr = url_1
    }else{
         Element.scr = url_2
    }
})

我们发现直接修改src的项目,到了线上会发现,这NM会闪屏,SRC每次都加载,那就不用src吧。直接写到元素文档流里面试试。

let mmp = (a,b)=>{
    a.style.display = 'bock'
    b.style.display = 'none'
}
mmp(Element1,Element2)

看着代码貌似是解决了一样,试一下,mmp怎么不可以哇。我们来猜测下,是display的原因?来看下w3是怎么定义的:

some values (such as none or contents ) cause the element 
and/or its descendants to not generate any boxes at all   --wc.org

中文的意思是:display的值为‘none’或‘contents’,会导致设置的那个元素以及后代元素不会生成box盒子。

那么一次性加载并且不重新加载就可以解决问题了。

首先css不能设置display:none,只能隐藏,推荐一个方案,opacity和height设置0。

css

    opacity: 0;
    height: 0;

js

let ele_h = (a)=>{
    a.style.opacity = 0
    a.style.height = 0
}
let ele_s = (a)=>{
    a.style.opacity = 1
    a.style.height = 'auto'
}
let fun = (a,b)=>{
    ele_h(a)
    ele_s(b)
}

OK,解决了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,680评论 1 92
  • 一:在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的...
    Arno_z阅读 4,990评论 0 1
  • •前端面试题汇总 一、HTML和CSS 21 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? ...
    Simon_s阅读 6,568评论 0 8
  • 余秀华在她的诗里写,这个世界上总有这样的一个人,因为爱,哪怕隔着千山万水,也会漂洋过海来看你。 常逛的app里说,...
    简约trap阅读 4,326评论 0 0
  • 今天朋友问了我一个问题,这是一个看脸的世界吗? 本来我还想耐心跟她叨叨这个社会还是凭真本事,还是要靠人脉,还是要X...
    宛若婉君阅读 3,146评论 3 2