【发布时间】:2018-01-03 17:21:05
【问题描述】:
我不确定原因,但这个特定功能似乎不适用于 Safari/iOS 和 Chrome 浏览器:
$(window).on('load',function(){
$('#preloader').fadeOut(800).hide();
$('#preload').fadeIn(800).css('display', 'initial').show();
});
我目前在</head> 标记之前插入了脚本。谁能解释为什么会这样?
更新:
$(window).on('load', function() {
$('#preloader').fadeOut(800).hide();
$('#preload').fadeIn(800).css('display', 'initial').show();
});
.preloader-wrap {
width: 100%;
height: auto;
display: block;
margin: 0 auto;
text-align: center;
line-height: 0;
}
#preloader {
margin: 40px 0;
padding: 0;
border: 0;
width: 45px;
height: 45px;
}
#preload {
display: none;
}
img {
width: 100%;
height: auto;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="http://static.tumblr.com/4m2ikeh/q2Poxnx2k/jquery-3.2.1.min.js"></script>
<div class="preloader-wrap">
<img src="https://cdn.ndtv.com/vp/static/images/preloader.gif" id="preloader" />
</div>
<div id="preload">
<img src="https://78.media.tumblr.com/708bb6dcdaf359fd2ea83d11a0b5b4b8/tumblr_oyslstg5xk1unhdoco10_r1_1280.jpg">
</div>
【问题讨论】:
-
改用
$(document).ready()是否有效? -
@Barmar 没有。除非我使用
$(window).on('load',function(),否则此预加载功能不会激活;但即便如此,尽管它确实适用于 Firefox,但fadeOut和fadeIn调用似乎无法在 Safari 或 Chrome 中执行...... -
当您在同一元素上同时拥有
fadeOut()和hide()时,我不明白您要做什么。fadeOut()是慢慢隐藏,hide()是立即隐藏。 -
而
fadeIn()、css('display', 'initial')和show()都显示了元素。 -
在 OS X 上的 Chrome 中为我工作。
标签: javascript jquery function google-chrome safari