显示同位素负载更多功能的图像所需的建议

时间:2017-01-18 22:33:10

标签: javascript jquery image isotope

我有以下情况,希望对你有所帮助。以下是完整示例的链接:https://jsfiddle.net/7kpfqLr6/25/

让我解释一下。我想在加载更多按钮之前设置图像的数量。问题是,正如您所看到的,第一个同位素项目是文本项。所有其他项目都是图像。现在,当我将图像数量设置为6时,它会显示6个同位素项目(第一个文本项目+5个图像)。是的,这是合乎逻辑的,我明白这一点。但是我想让它在第一个项目后显示6个图像。怎么做?我可以指望你的帮助吗?

谢谢。

$(document).ready(function() {

  // init Isotope
  var $container = $('.isotope-items-wrap').isotope({
    itemSelector: '.isotope-item',
         transitionDuration: '0.5s',
         masonry: {
            columnWidth: '.grid-sizer'
         }
  });

  //****************************
  // Isotope Load more button
  //****************************
  var initShow = 6; //number of images loaded on init & onclick load more button
  var counter = initShow; //counter for load more button
  var iso = $container.data('isotope'); // get Isotope instance

  loadMore(initShow); //execute function onload

  function loadMore(toShow) {
    $container.find(".hidden").removeClass("hidden");

    var hiddenElems = iso.filteredItems.slice(toShow, iso.filteredItems.length).map(function(item) {
      return item.element;
    });
    $(hiddenElems).addClass('hidden');
    $container.isotope('layout');

    //when no more to load, hide show more button
    if (hiddenElems.length == 0) {
      $("#load-more").hide();
    } 
    else {
      $("#load-more").show();
    };

  }

  //append load more button
  $container.after('<div class="margin-top-30 text-center"><button id="load-more" class="btn btn-primary margin-top-5"> Load More</button></div>');

  //when load more button clicked
  $("#load-more").click(function() {
    if ($('#filters').data('clicked')) {
      //when filter button clicked, set initial value for counter
      counter = initShow;
      j$('#filters').data('clicked', false);
    } else {
      counter = counter;
    };

    counter = counter + initShow;

    loadMore(counter);
  });

});

1 个答案:

答案 0 :(得分:1)

您可以声明以下值:

var initShow = 7; 

然后在初始加载后将其更改为6.

$("#load-more").click(function() {
    if ($('#filters').data('clicked')) {
      //when filter button clicked, set initial value for counter
      counter = initShow;
      j$('#filters').data('clicked', false);
    } else {
      counter = counter;
    };
    initShow = 6;
    counter = counter + initShow;

    loadMore(counter);
  });

如果6 images加载6 images click,则初始加载会显示button和其他if (step < 1) { accSteps.push(parseInt(step)); } for (i = 0; i < accSteps.length && step < 1; i++) { zOutput++; document.getElementById("zVal").innerHTML = zOutput; }

我希望有所帮助。