2012-11-01 57 views
1

我已经构建了一个使用lazyload.js在访问页面时淡入图像的站点。像这样......在哈希值变化时触发lazyload

window.onhashchange = function() { 
    if (location.hash) { 
    var hash = window.location.hash.substring(2); 
     switch (hash) { 
      case "about": 
       changeContent('about'); 
       break; 
      case "contact": 
       changeContent('contact'); 
       break; 
      default: 
     }; 

     $("img").lazyload({ 
      effect : "fadeIn", 
     }); 
    } else { 
    }; 
} 

的网站使用不同的页面建成,但我学习如何使用的location.hash,使网站的工作更像是一个页面中的应用程序。

不幸的是,当切换代码以使用onHashChange时,除了lazyload图像之外,所有东西都可以工作,它们仍然是白色的。

我asume这是因为页面已经不只是加载等lazyload不踢。

谁能提供如何改变与哈希值发生变化的内容时产生相同的效果的任何建议。

回答

0

hashchange事件中触发您在惰性加载图像上使用的事件。延迟加载默认事件为scroll,默认容器为window。你应该能够做这样的事情:

window.onhashchange = function() { 
    $(window).trigger("scroll"); 
} 

从你的问题,目前尚不清楚changeContent()函数所做的事情。如果它通过AJAX | H加载内容,则还必须将插件绑定到新加载的内容。