我的网站上有一个bootstrap轮播 这是缩短的HTML:
<div id="myCarousel" class="hp-top carousel fade" data-ride="carousel" data-interval="6000">
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
<li data-target="#myCarousel" data-slide-to="1"></li>
</ol>
<div class="carousel-inner">
<div id="first-slide" class="item active">
<img src="" alt="Chicago" />
<div class="carousel-caption">
<div class="carousel-caption-inner">
<p class="slider-text small"><span class="slider-padding">What makes</span> us <span class="slider-green">specialists?</span></p>
</div>
</div>
</div>
<div class="item">
<img src="" alt="Chicago" />
<div class="carousel-caption">
<div class="carousel-caption-inner">
<p class="slider-text small"><span class="slider-padding">What makes</span> us <span class="slider-green">distinctive?</span></p>
</div>
</div>
</div>
</div>
我创建了一个功能,可以在幻灯片移动后的几秒内滑动文本 这是代码:
<script type="text/javascript">
var carouselContainer = jQuery('.carousel');
var slideInterval = 6000;
jQuery( document ).ready(function() {
if (jQuery(window).width() > 480) {
function toggleCaption() {
jQuery('.carousel-caption').hide();
var caption = carouselContainer.find('.active').find('.carousel-caption');
caption.delay(1000).toggle("slide", {direction:'right'});
}
jQuery('#myCarousel').bind('slide.bs.carousel', function() {
jQuery('.carousel-caption').hide();
});
carouselContainer.on('slid.bs.carousel', function() {
toggleCaption();
});
}
});
</script>
现在一切正常,但是当你第一次加载页面时,最后一个横幅会在第一个横幅显示之前显示一秒钟。
我想知道这是否与我上面的功能有关
可能导致这种情况的任何想法?
答案 0 :(得分:1)
看起来您已经在doc ready中的条件内定义了一个函数。不要这样做。将它移到doc准备范围之外,如下所示:
<script type="text/javascript">
var carouselContainer = jQuery('.carousel');
var slideInterval = 6000;
jQuery(document).ready(function () {
if (jQuery(window).width() > 480) {
toggleCaption(); //replace function definition with call to function instead
jQuery('#myCarousel').bind('slide.bs.carousel', function () {
jQuery('.carousel-caption').hide();
});
carouselContainer.on('slid.bs.carousel', function () {
toggleCaption();
});
}
});
//MOVED function outside of document.ready:
function toggleCaption() {
jQuery('.carousel-caption').hide();
var caption = carouselContainer.find('.active').find('.carousel-caption');
caption.delay(1000).toggle("slide", { direction: 'right' });
}
</script>