【发布时间】:2015-04-19 19:47:13
【问题描述】:
脚本经验非常有限。
我正在尝试让一个预加载器在第二个脚本循环通过它们之前覆盖我在引导轮播中加载的图像。
这个脚本是我能得到的。
<!-- Preloader -->
<script type="text/javascript">
//<![CDATA[
$(window).load(function() { // makes sure the whole site is loaded
$('#status').fadeOut(); // will first fade out the loading animation
$('#preloader').delay(50).fadeOut('slow'); // will fade out the white DIV that covers the website.
$('body').delay(50).css({'overflow':'visible'});
})
//]]>
</script>
和
<!-- Script to Activate the Carousel -->
<script type="text/javascript">
$('#preloader').delay(50).fadeOut('slow', function(){
$('.carousel').carousel({
pause: "none",
interval: 500
});
});
</script>
我需要的顺序是加载动画 div,覆盖在“#myCarousel”中加载的图像 > 图像已加载 > 覆盖 div 淡出 > 淡出调用:
$('.carousel').carousel({
interval: 500, //changes the speed
pause: "none",
})
图像在最后一张幻灯片上闪烁并停止。
在上面的例子中,它似乎工作了——预加载器工作,轮播也工作,但没有达到预期的速度; “500”的意思是半秒。它似乎也打破了暂停功能,事实上暂停设置为“无”似乎被忽略了。
在@Shikkediel 的帮助下,脚本现在显示为:
<script type="text/javascript">
$(window).on('load', function() {
$('#status').fadeOut()
.queue(function() {
$('#preloader').delay(50).fadeOut('slow', function() {
$('#myCarousel').attr('data-ride', 'carousel');
$('.item').first().addClass( 'active' );
$('body').delay(50).css({'overflow':'visible'});
$('.carousel').carousel({
});
});
$(this).dequeue();
});
});
</script>
– 速度和暂停现在在数据属性中设置,将它们设置在其中非常好。
但是,预加载器仍然没有预加载图像!
【问题讨论】:
-
可能是
$('.carousel').carousel({'loop': true, ... })?我不认为pause是一个选项,除非我正在查看不同的轮播。顺便说一下,fadeOut()方法是异步的。 -
有一个暂停 - getbootstrap.com/javascript/#carousel - 将此设置为“无”会停止轮播暂停,这会在我需要的最后一张幻灯片上停止。
-
是的,不同的。提一下就好了。我想问题出在它根本没有按预期工作吗?从问题上看不是很清楚。
-
对不起,我会尝试更多地理解问题并编辑问题。
-
我很感激您的意见,谢谢。我将更新问题以包括我的测试页。
标签: javascript jquery html css twitter-bootstrap