所以我对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} );
});
}
我不知道该怎么做。任何帮助,将不胜感激。我甚至实现了预加载器。
答案 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'); });