Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 即使在加载所有图像之前,也要使lightbox工作_Javascript_Jquery_Html - Fatal编程技术网

Javascript 即使在加载所有图像之前,也要使lightbox工作

Javascript 即使在加载所有图像之前,也要使lightbox工作,javascript,jquery,html,Javascript,Jquery,Html,我把它用作我的灯箱,我的问题是,我的页面上有很多图像(缩略图)要加载,当它加载时,我点击其中一个加载的图像,灯箱就不工作了。因此,它将转到另一页上的jpeg文件,而不是模式窗口 即使所有图像都已加载,我如何制作我的lightbox。顺便说一下,我把这个放在我的WordPress上,但我不想使用插件。我也在使用FoundationPress 这是我用来启动灯箱的代码 $(document).ready(function(){ $('a.gallery').featherlight({

我把它用作我的灯箱,我的问题是,我的页面上有很多图像(缩略图)要加载,当它加载时,我点击其中一个加载的图像,灯箱就不工作了。因此,它将转到另一页上的jpeg文件,而不是模式窗口

即使所有图像都已加载,我如何制作我的lightbox。顺便说一下,我把这个放在我的WordPress上,但我不想使用插件。我也在使用FoundationPress

这是我用来启动灯箱的代码

$(document).ready(function(){
  $('a.gallery').featherlight({
    targetAttr: 'href'
  });
});
我有图像加载脚本,但我在我的砖石上使用它。如何将lightbox脚本放入已加载图像的插件中

(function() {

// Main content container
var $container = $('.grid');

var $grid = $('.grid').masonry({
  // options
  columnWidth: '.grid-sizer',
  itemSelector: '.grid-item',
  percentPosition: true

});

// layout Masonry after each image loads
$grid.imagesLoaded().progress( function() {
  $grid.masonry('layout');
});

// Infinite Scroll
$container.infinitescroll({

    navSelector  : '.pagination',    // selector for the paged navigation 
    nextSelector : '.pagination a.next',  // selector for the NEXT link (to page 2)
    itemSelector : '.grid-item',     // selector for all items you'll retrieve
    loading: {
            msg: null,
            msgText: '<i class="fa fa-circle-o-notch fa-spin"></i>',
            finishedMsg: '<i class="fa fa-check"></i>',
            img: null
      }
    },


    // Trigger Masonry as a callback
    function( newElements ) {
        // hide new items while they are loading
        var $newElems = $( newElements ).css({ opacity: 0 });
        // ensure that images load before adding to masonry layout
        $newElems.imagesLoaded(function(){
            // show elems now they're ready
            $newElems.animate({ opacity: 1 });
            $container.masonry( 'appended', $newElems, true );
        });

});

})();
(函数(){
//主内容容器
var$container=$('.grid');
变量$grid=$('.grid')。砌体({
//选择权
columnWidth:“.grid sizer”,
itemSelector:“.grid项”,
位置:正确
});
//在每个图像加载后布局砌体
$grid.imagesLoaded().progress(函数()){
$grid.mashine(“布局”);
});
//无限卷轴
$container.infinites卷({
导航选择器:'.pagination',//分页导航的选择器
下一个选择器:'.pagination a.next',//下一个链接(到第2页)的选择器
itemSelector:'.grid item',//将检索的所有项目的选择器
装载:{
msg:null,
msgText:“”,
finishedMsg:“”,
img:null
}
},
//触发器作为回调
函数(新元素){
//在加载新项目时隐藏它们
var$newElems=$(newElements).css({opacity:0});
//确保在添加到砌体布局之前加载图像
$newElems.imagesLoaded(函数(){
//显示元素现在他们准备好了
$newElems.animate({opacity:1});
$container.mashing('added',$newElems,true);
});
});
})();

我不确定我是否正确理解了您想要的解决方案,但您可以使用

这是专门为像砖石插件布局这样的用例设计的, 检查所有图像是否已完成加载,然后执行函数/其他脚本

例如:

$('#your-container').imagesLoaded( {
  },
  function() {
    $('a.gallery').featherlight({
      targetAttr: 'href'
    });
  }
);

希望这能有所帮助?

你能再多看一些代码吗?事实上,就这些。我有其他代码,但与灯箱无关。例如,我有masonrly插件和图像加载插件,但我在不同的页面上使用它。但是它们在一个scripts.js中。这有帮助吗?如果它不工作,可能会出现JavaScript错误。你在你的网络浏览器中检查控制台了吗?实际上它是工作的,但是在所有图像加载之后。我有这么多的缩略图。加载所有缩略图后,它就可以工作了。但在加载所有图像之前,它不会。这里是链接。在加载所有图像之前,单击页面底部的图像,您将了解我的意思。另外,请不要环顾该网站,因为它目前正在维护:)我会试试这个。我想做的是能够点击缩略图和灯箱将工作,甚至在所有的图像加载。问题是,我认为,它是在脚本之前先加载图像,因此,在图像全部加载之前没有脚本。这样灯箱就坏了。这是我的页面,顺便说一句,我有一个用于砌石的imagesloaded脚本。我怎样才能把它整合到我的灯箱里?我更新了上面的脚本。不,这是正确的顺序:让图像加载,然后最后启动脚本。脚本始终位于底部。有了无限卷轴和灯箱,我需要回到你身边。现在一切都好了吗?似乎是这样。还有什么不适合你?不,还是不适合。未加载图像时,图像仍会转到新页面,而不是lightbox。你试过匿名模式吗?可能您的浏览器已经缓存了所有图像,并且在您单击图像时已经加载了这些图像。我知道我的页面上有很多图片。如果我使用lazy-loader,这对我有帮助吗?我只是想解开这个谜。肯定有解决办法。