使用JQuery调整大小和重新对齐图像并不适用于首次加载

时间:2014-10-22 23:53:53

标签: javascript jquery wordpress preloader masonry

所以我对Jquery相对缺乏经验。我做的是从主题森林购买wordpress主题,它有一个投资组合部分,应该作为砖石或网格布局。在第一次加载时都没有正确加载。主题使用同位素,我认为这个链接解释了需要做什么:http://isotope.metafizzy.co/appendix.html#imagesloaded

以下是我认为调用此功能的代码,可在此处查看该网站https://www.roseryflowers.com/bridal-gallery/

jQuery(document).ready(function($) {
/*--  Portfolio --*/
if ($('.portfolio-items').length > 0) {
    $container = $('.portfolio-items');
    $container.isotope({filter: '.element'});
    $(window).trigger('resize');
    $('.portfolio-links a').click(function(e){
        e.preventDefault();
        var $this = $(this);
        if ($this.hasClass('active')) {
            return false;
        }
        $this.parents('.portfolio-links').find('.active').removeClass('active');
        $this.parent().addClass('active');
        $this.addClass('active');

        var selector = $this.attr('data-filter');
        $container.isotope( {filter: selector} );
    });
}

我不知道该怎么做。任何帮助,将不胜感激。我甚至实现了预加载器。

2 个答案:

答案 0 :(得分:0)

来自Isotope的文档

  

卸载的图像可能会导致同位素布局失效并导致项目元素   重叠。 imagesLoaded解决了这个问题。 imagesLoaded的作品   在加载所有子图像后触发回调。

     

在所有图像加载后初始化同位素

var $container = $('#container').imagesLoaded( function() {
 $container.isotope({
    //options
  });
});

这可能是问题

还有一点关于......

修改

你的包装标签是“.portfolio-items”然后试试这个

var $container = $('.portfolio-items').imagesLoaded(function () {

  if ($('.portfolio-items').length > 0) {
    $container = $('.portfolio-items');
    $container.isotope({ filter: '.element' });
    $(window).trigger('resize');
    $('.portfolio-links a').click(function (e) {
        e.preventDefault();
        var $this = $(this);
        if ($this.hasClass('active')) {
            return false;
        }
        $this.parents('.portfolio-links').find('.active').removeClass('active');
        $this.parent().addClass('active');
        $this.addClass('active');

        var selector = $this.attr('data-filter');
        $container.isotope({ filter: selector });
    });
  }
});

您需要确保将ImagesLoaded添加到项目https://github.com/desandro/imagesloaded

答案 1 :(得分:0)

从您的页面中删除imagesloaded.js文件,然后使用

更改该行
$(window).trigger('resize');

$(window).load(function(){ $(window).trigger('resize'); });