2017-08-03 53 views
0

我知道这是一个常见问题,但我尝试了许多建议的解决方案,但无济于事。我试图实现的所有功能都是让图片在页面加载时淡入淡出(没有在瞬间消失之前短暂出现,并渐渐消失)。Jquery图像在淡入之前出现短暂闪烁

从我读过,我们建议隐藏首先使用CSS,图像,以便它不应将其加载,直到淡入发生:

#imgfade { 
    display: none; 
    } 

我知道这工作,因为如果我删除Jquery,图像不显示。 jQuery代码:

$("#imgfade").fadeIn(600); 

我也试过:

$("#imgfade").hide().fadeIn(600); 

它主要工作,但访问其他网站时,然后返回,闪烁发生。有时候往返前进会导致它工作8/10次,然后有时会闪烁。

我也试过这个CSS(用适当匹配的Jquery)无济于事:

#imgfade { 
opacity: 0; 
} 

我怀疑这可能是浏览器缓存呢?

我正在使用Bootstrap 3,但自定义CSS(如上所述)出现在引导(和其他)CSS页面加载后(在部分内)。

任何人都可以推荐一个完全傻瓜证明的方法来避免这种情况发生? 我也遇到了一些其他页面上的文字相同的问题。

非常感谢提前。

+0

你正确地做到了。整页重新加载会使其正常工作,但是当你离开然后再回来时,代码再次运行,从而使其从0中消失。如果它被隐藏,则快速修复将仅淡入。 –

+0

加载CSS文件之前,可能会加载HTML页面。尝试将'#imgfade {display:none}'移动到文档的''中,或将样式内联到图像本身。 – Blazemonger

+0

谢谢,很高兴知道。任何想法如何在返回时停止闪烁?我想知道是否有一个“黑客”或替代方法来防止此.. Blazemonger:显示:无代码是在文档的(为此),而不是在单独的CSS文件。 – BSUK

回答

0

我相信我已经找到了解决这个问题的方法,这个问题似乎每次都对我有效100%。
希望这可以帮助别人:

配售Jquery的淡入代码在非常结束HTML的(后/体,前/ HTML)似乎解决这一问题的某些原因。

我真的不明白为什么,但我只能猜测它与DOM加载顺序有关。也许这是在尝试淡入CSS之前给CSS提供正确读取的机会(确保div元素实际上是隐藏的)。