$(window).scroll(function() {
hash = $('.layer:in-viewport').attr('id');
if ( currentHash != hash ) { // fires it only one time when in-viewport
if ( history && history.pushState ) { // if method is available
window.history.pushState(hash, hash, url);
}
}
currentHash = hash;
});
$(".layer img").lazyload({
effect: "fadeIn",
});
Я просто хотел отметить, что я пытаюсь использовать плагин Lazy Load для jQuery при вертикальной прокрутке страницы, чтобы лениво загрузить все мои изображения.Я использую новый метод HTML5 pushState()
, чтобы изменить URL-адрес на конкретное имя контейнера (содержащего изображения), который в данный момент отображается в окне просмотра.
В любом случае, похоже, что плагин Lazy Load для jQuery не совместим с методом pushState()
, потому что сейчас плагин у меня не работает.Он просто загружает первое изображение, но затем перестает делать свое дело.
Как только я удаляю строку window.history.pushState(hash, hash, url);
, плагин работает нормально.Не выдается никаких ошибок, так что отладка и поиск решения для этого действительно сложно.
Есть идеи на этот счет?Что я мог сделать здесь?
edit:
Вот пример из реальной жизни, хотя jsBin не поддерживает метод pushState, поэтому ошибка не возникает на самой странице ...
http://jsbin.com/obaged/3/edit
А вот реальные примеры файлов, так что ошибка может быть проверена ... http://cl.ly/1b2K2W050V0k0d2V0z0e Просто раскомментируйте строку, которую я упомянул выше, чтобы увидеть, как она работает и не работает!