Ленивая загрузка изображений в горизонтальном слайдере

9

Я lazyloading изображений на этом сайте с jquery lazyload и treshold: https://bm-translations.de/#leistungen

//Lazyload Images with Threshold https://www.appelsiini.net/projects/lazyload
$(function() {
    $("img.lazy").lazyload({
        threshold : 400
    });
}); 

So Images src заменяется на data-original. Когда я перейду к элементу, он должен изменить его на src, как он.

Но по какой-то причине его загрузка изображений в слайдере начальной загрузки слишком медленная (, когда я нажимаю на нее или ее автоопределение некоторых изображений, загруженных с помощью), как вы можете видеть. Как отрегулировать этот код, чтобы его работала и для этого?

Ползунок имеет общую структуру: https://www.w3schools.com/bootstrap/bootstrap_carousel.asp

Карусель JS:

$('#myCarousel').carousel({
        interval: 9000,
    });

    // handles the carousel buttons
    $('[id^=carousel-selector-]').click( function(){
      var id_selector = $(this).attr("id");
      var id = id_selector.substr(id_selector.length -1);
      id = parseInt(id);
      $('#myCarousel').carousel(id);
      $('[id^=carousel-selector-]').removeClass('selected');
      $(this).addClass('selected');
    });

    // when the carousel slides, auto update
    $('#myCarousel').on('slide.bs.carousel', function (e) {
      var id = $('.item.active').data('slide-number');
      id = parseInt(id)+1;
      $('[id^=carousel-selector-]').removeClass('selected');
      $('[id=carousel-selector-'+id+']').addClass('selected');
    });

Я пробовал это, но потом он больше не скользил:

$('#myCarousel').carousel({
        interval: 9000,
        scroll: {
            onBefore: function( data ) {
              var $current = data.items.visible.first(),
                  visible = data.items.visible,
                  src = visible.data('src');

              visible.attr('src', src);
            }
        }
    });

Как это исправить, так что либо он ленивый по загрузке перед щелчком/автозагрузкой, либо, по крайней мере, для lazyload всех изображений карусели с порогом?

  • 0
    Вы пропускаете запятую через интервал: interval: 9000,
  • 0
    спасибо, вы правы, но не решили проблему. Я уточнил вопрос или есть что-н. еще не ясно? Я спрашиваю, поскольку я действительно хочу, чтобы это заработало.
Показать ещё 6 комментариев
Теги:
lazy-loading
jquery-lazyload

1 ответ

2

Я предлагаю вам использовать плагин owl.carousel.js". Это намного лучше и имеет больше возможностей.

$('.owl-carousel').owlCarousel({
    items:1,
    lazyLoad:true,
    loop:true,
    margin:10,
    autoplay:true,
    autoplayTimeout:3000,
    autoplayHoverPause:true,
});
<link href="https://owlcarousel2.github.io/OwlCarousel2/assets/owlcarousel/assets/owl.carousel.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://owlcarousel2.github.io/OwlCarousel2/assets/owlcarousel/owl.carousel.js"></script>
<div class="owl-carousel owl-theme">
    <img class="owl-lazy" data-src="https://placehold.it/350x250&text=1" data-src-retina="https://placehold.it/350x250&text=1-retina" alt="">
    <img class="owl-lazy" data-src="https://placehold.it/350x250&text=2" data-src-retina="https://placehold.it/350x250&text=2-retina" alt="">
    <img class="owl-lazy" data-src="https://placehold.it/350x250&text=3" alt="">
    <img class="owl-lazy" data-src="https://placehold.it/350x250&text=4" alt="">
    <img class="owl-lazy" data-src="https://placehold.it/350x250&text=5" alt="">
    <img class="owl-lazy" data-src="https://placehold.it/350x250&text=6" alt="">
    <img class="owl-lazy" data-src="https://placehold.it/350x250&text=7" alt="">
    <img class="owl-lazy" data-src="https://placehold.it/350x250&text=8" alt="">
    <img class="owl-lazy" data-src="https://placehold.it/350x250&text=9" alt="">
    <img class="owl-lazy" data-src="https://placehold.it/350x250&text=10" alt="">
    <img class="owl-lazy" data-src="https://placehold.it/350x250&text=11" alt="">
</div>
  • 0
    Я второй этот вариант. Сова или гладкая карусель. Карусели Bootstrap просто не хватает универсальности. Вы можете сделать намного больше с другими упомянутыми, включая встроенную отложенную загрузку.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню