Javascript 用于动画滚动的jQuery延迟加载

Javascript 用于动画滚动的jQuery延迟加载,javascript,jquery,lazy-loading,Javascript,Jquery,Lazy Loading,我想使用我的网站,但有一个小问题:我用JS滚动内容(用X-px动画内容),所以我不使用滚动条。不幸的是,在这种情况下不会触发延迟加载。你知道怎么做吗 我的网站水平滚动,所有内容div-s彼此浮动,只有当前内容可见,所有其他内容都显示在上:无 这是我的网站的一张不太专业的图片:我用黑色标记了可见区域,用红色标记了活动部分 我所能想到的就是在内容滑动时插入,然后使用AJAX添加图像或整个内容(如果这是您的目标)。插件通常会关注大多数用例,因此延迟加载可能对您不利。我只需编写自己的简单延迟加载脚本:

我想使用我的网站,但有一个小问题:我用JS滚动内容(用X-px动画内容),所以我不使用滚动条。不幸的是,在这种情况下不会触发延迟加载。你知道怎么做吗

我的网站水平滚动,所有内容
div
-s彼此浮动,只有当前内容可见,所有其他内容都显示在
上:无

这是我的网站的一张不太专业的图片:我用黑色标记了可见区域,用红色标记了活动部分


我所能想到的就是在内容滑动时插入,然后使用AJAX添加图像或整个内容(如果这是您的目标)。插件通常会关注大多数用例,因此延迟加载可能对您不利。

我只需编写自己的简单延迟加载脚本:

$(function(){
  $('img').each(function(){
    var $this = $(this)
    $this.data('origImg',$this.attr('src'))
    $this.removeAttr('src') // or set a placeholder img
  })
  var $window = $(window), $container = $('#sliding_content')
  window.lazyLoad = function () {
    $container.find('img:not([src])').each(function(){
      var $this = $(this), left = $this.offset().left
      if (!(left < 0) && !(left > $window.width()))
        $this.attr('src',$this.data('origImg'))
    })
  }
})
$(函数(){
$('img')。每个(函数(){
变量$this=$(this)
$this.data('origImg',$this.attr('src'))
$this.removeAttr('src')//或设置占位符img
})
变量$window=$(window),$container=$(“#滑动内容”)
window.lazyLoad=函数(){
$container.find('img:not([src])).each(function(){
var$this=$(this),left=$this.offset().left
如果(!(左<0)和(!(左>$window.width())
$this.attr('src',$this.data('origImg'))
})
}
})
然后当div设置动画时,调用
lazyLoad()

让我知道这是否适合您。:)

好吧,几个小时后我决定坐牢。这不是最好的解决方案,但总比什么都没有好,因为我对AJAX一无所知

我对AJAX不太在行,这就是为什么我试图找到类似的解决方案:(我想这将是一次学习经历。)始终珍惜学习新东西的机会。函数使用起来非常简单。我对JS有点不熟悉,所以我应该为
origImg
写点什么吗?或者其他地方?我编辑了上面的代码。只需将
containerSelector
替换为具有水平滚动条的元素的选择器即可。它不起任何作用,
img
标记缺少
src
属性,Firebug不会给出任何错误…哎呀,很抱歉。修正了。好的,试试看。我测试过了。如果它仍然不起作用,你能发布你的水平滚动的CSS吗?你能澄清你目前是如何通过JS滚动内容的吗?为什么不改为设置滚动位置的动画?