owl 页面加载时轮播闪烁
owl carousel flashing on page load
我有几个 owl 轮播 运行。当它第一次加载时,轮播以全宽闪烁,直到 jquery 开始,然后调整所有内容的大小。无论如何要阻止这个?这是我的代码:
Html
<?php $k='1'; do { ?>
<div id="owlslide<?php echo $k;?>">
<?php do { ?>
<div class="owlItem ">
<-- some other stuff -->
</div>
<?php } while();?>
</div>
<?php $i++; } while();?>
Jquery (owl)
$(document).ready(function(){
<?php $i='1'; do { ?>
$("#owlslide<?php echo $i;?>").owlCarousel({
autoPlay: false, //Set AutoPlay to 3 seconds
paginationNumbers: true,
itemsCustom : [
[0, 1],
[450, 1],
[600, 2],
[700, 2],
[1000, 3],
[1200, 4],
[1400, 4],
[1600, 5]
],
});
<?php $i++; }while($cara = mysql_fetch_assoc($catCara)); ?>
});
您可以在 CSS 中使用 display: none;
隐藏轮播项目,然后在轮播初始化后通过将处理程序绑定到 initialized.owl.carousel[ 来显示它们=17=] 事件。我发现最好将它与具有加载器 gif 的占位符结合使用,以进一步减少页面跳转。
var carousel = $('#owlslide');
carousel.on({
'initialized.owl.carousel': function () {
carousel.find('.item').show();
carousel.find('.loading-placeholder').hide();
}
}).owlCarousel(options);
请注意,您必须在初始化轮播之前绑定处理程序。
$('.item').trigger('initialized.owl.carousel').show();
如果您使用的是 OwlCarousel2,该插件会在完成轮播项目渲染后将 CSS class .owl-loaded
附加到 .owl-carousel
。只需在容器上设置 display: none
并在附加的 class.
上重置 display: block
即在您的 CSS 文件中:
.owl-carousel {
display: none;
}
.owl-carousel.owl-loaded {
display: block;
}
加载时隐藏图片,加载完成后自动显示!
.owl-carousel.loading{
display:none;
}
仍然不是最佳解决方案,但如果将不透明度设置为 0,它将在某种程度上起作用,并且所有项目都不会在页面加载时出现。
.owl-carousel:not(.owl-loaded){
opacity: 0;
}
.owl-carousel:not(.owl-loaded){
opacity: 0;
visibility:hidden;
height:0;
}
试试这个。
尊敬的开发人员,您好,
我正在使用 Bootstrap 4 框架,所以我在 .owl-carousel class 旁边添加了一个 .d-block class,然后我添加了a .d-none 在所有clild元素中,除了第一个(我希望第一个从一开始就可见)。
因此在初始化时,您需要 运行 jQuery:
var heroslider = $('#hero-slider');
heroslider.on('initialize.owl.carousel', function(event) {
$('#top-news').find(".owl-dot").eq(0).addClass("active");
heroslider.find(".slider-item").removeClass('d-none');
});
heroslider.owlCarousel({
loop: false,
rewind: true,
responsiveClass: true,
margin: 0,
dots: true,
smartSpeed: 900,
autoHeight: true,
autoplay: true,
autoplayTimeout: 8000,
autoplayHoverPause: true,
responsive:{
0:{
items:1,
nav:false
},
600:{
items:1,
nav:false
},
1000:{
items:1,
nav:false
}
}
});
创建一个遮罩或一个空 div 以隐藏整个滑块 block/div 并添加功能以隐藏遮罩并在 owl 轮播 [=11= 的 iniliatize 事件上显示滑块
$('.my-carousel').owlCarousel({
items: 1,
lazyLoad: true,
onInitialized: showSlider
});
// Call back function onInitialized
function showSlider(e) {
$(".my-carousel-mask").hide();
$(".my-carousel-gallery").show();
}
我有几个 owl 轮播 运行。当它第一次加载时,轮播以全宽闪烁,直到 jquery 开始,然后调整所有内容的大小。无论如何要阻止这个?这是我的代码:
Html
<?php $k='1'; do { ?>
<div id="owlslide<?php echo $k;?>">
<?php do { ?>
<div class="owlItem ">
<-- some other stuff -->
</div>
<?php } while();?>
</div>
<?php $i++; } while();?>
Jquery (owl)
$(document).ready(function(){
<?php $i='1'; do { ?>
$("#owlslide<?php echo $i;?>").owlCarousel({
autoPlay: false, //Set AutoPlay to 3 seconds
paginationNumbers: true,
itemsCustom : [
[0, 1],
[450, 1],
[600, 2],
[700, 2],
[1000, 3],
[1200, 4],
[1400, 4],
[1600, 5]
],
});
<?php $i++; }while($cara = mysql_fetch_assoc($catCara)); ?>
});
您可以在 CSS 中使用 display: none;
隐藏轮播项目,然后在轮播初始化后通过将处理程序绑定到 initialized.owl.carousel[ 来显示它们=17=] 事件。我发现最好将它与具有加载器 gif 的占位符结合使用,以进一步减少页面跳转。
var carousel = $('#owlslide');
carousel.on({
'initialized.owl.carousel': function () {
carousel.find('.item').show();
carousel.find('.loading-placeholder').hide();
}
}).owlCarousel(options);
请注意,您必须在初始化轮播之前绑定处理程序。
$('.item').trigger('initialized.owl.carousel').show();
如果您使用的是 OwlCarousel2,该插件会在完成轮播项目渲染后将 CSS class .owl-loaded
附加到 .owl-carousel
。只需在容器上设置 display: none
并在附加的 class.
display: block
即在您的 CSS 文件中:
.owl-carousel {
display: none;
}
.owl-carousel.owl-loaded {
display: block;
}
加载时隐藏图片,加载完成后自动显示!
.owl-carousel.loading{ display:none; }
仍然不是最佳解决方案,但如果将不透明度设置为 0,它将在某种程度上起作用,并且所有项目都不会在页面加载时出现。
.owl-carousel:not(.owl-loaded){
opacity: 0;
}
.owl-carousel:not(.owl-loaded){
opacity: 0;
visibility:hidden;
height:0;
}
试试这个。
尊敬的开发人员,您好,
我正在使用 Bootstrap 4 框架,所以我在 .owl-carousel class 旁边添加了一个 .d-block class,然后我添加了a .d-none 在所有clild元素中,除了第一个(我希望第一个从一开始就可见)。
因此在初始化时,您需要 运行 jQuery:
var heroslider = $('#hero-slider');
heroslider.on('initialize.owl.carousel', function(event) {
$('#top-news').find(".owl-dot").eq(0).addClass("active");
heroslider.find(".slider-item").removeClass('d-none');
});
heroslider.owlCarousel({
loop: false,
rewind: true,
responsiveClass: true,
margin: 0,
dots: true,
smartSpeed: 900,
autoHeight: true,
autoplay: true,
autoplayTimeout: 8000,
autoplayHoverPause: true,
responsive:{
0:{
items:1,
nav:false
},
600:{
items:1,
nav:false
},
1000:{
items:1,
nav:false
}
}
});
创建一个遮罩或一个空 div 以隐藏整个滑块 block/div 并添加功能以隐藏遮罩并在 owl 轮播 [=11= 的 iniliatize 事件上显示滑块
$('.my-carousel').owlCarousel({
items: 1,
lazyLoad: true,
onInitialized: showSlider
});
// Call back function onInitialized
function showSlider(e) {
$(".my-carousel-mask").hide();
$(".my-carousel-gallery").show();
}