如何将我的脚本应用于通过无限滚动加载的图像

How to apply my script to images as they load via infinite scroll?

本文关键字:滚动 无限 加载 图像 我的 脚本 应用于      更新时间:2023-09-26

http://seans.ws,对于我的博客,我编写了一个脚本来查看图像的大小,如果它比默认容器大小宽,它会计算出需要多少负边距才能将其与其他内容居中。

这很好用,但我通过无限滚动加载了图像,并且它们的脚本没有操作。

我的无限滚动js:http://static.tumblr.com/q0etgkr/ytzm5f1ke/infinitescrolling.js

$(window).load(function() {
    var centerBigImages = $(function() {
        $('img').css('marginLeft', function(index, value){
        if($(this).width() > 660) {
            return -($(this).width() - 660)/2;            
        }
        return value;
    });
});
centerBigImages();

我在IE中看了一下这个DOMNodeInsert等效项?,但它有点超出我的js newb头:(

在您正在使用的 infite 滚动的缩小脚本上运行 JS-美化器后,我能够找到日语文档。运行谷歌翻译,从我所看到的,你应该能够在调用SendRequest()方法时传递一个回调函数作为第一个参数,我相信你为无限滚动调用它。

在这种情况下,您应该能够传递centerBigImages()作为第一个参数:

SendRequest(centerBigImages, ...your other parameters);

更新:

再翻找一会儿,我找到了这个未缩小的剧本版本。不幸的是,代码注释是日语的,但我想您也可以在这些注释上运行谷歌翻译以获取一些其他信息。

我最近一直在玩这个想法,因为我刚刚开始为我的 tumblr 博客(使用无限滚动)自定义一些代码。这有点绕圈子,我不确定现在或将来对 DOMSubtreeModified 的支持程度如何,但我想我会发布一般兴趣。

var triggerChange = function(event) {
    //do stuff
    monitorChanges();
};
var monitorChanges = function() {
    //Notice the use of 'one' so modifications I make in doStuff does not also cause infinite loop
    jQuery('#outer').one('DOMSubtreeModified', triggerChange);
}
monitorChanges();

在这里最好的小提琴展示:http://jsfiddle.net/zf7rG/5/