lazyload若干问题及解决思路

由于照片页面照片太多,所以加了lazyload,用上之后发现有不少问题,

js的$冲突

如果出现$冲突的错误, 建议用noConflict()方法将jquery对$的所有权释放.
在手册中对noConflict()的说明如下:

noConflict()方法让渡变量 $ 的 jQuery 控制权。
该方法释放 jQuery 对 $ 变量的控制。
该方法也可用于为 jQuery 变量规定新的自定义名称。
提示:在其他 JavaScript 库为其函数使用 $ 时,该方法很有用。

也就是把jQuery占用的全局变量$jQuery返回给其它的js库.
在lazyload的使用中, 原本写法是:

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

现在我们就可以改写成:

var jq=jQuery.noConflict();
jq(function(){
	jq("img.lazy").lazyload({
		effect:"fadeIn"
	});
});

图片无法加载的未知错误

我从主页点进照片页面后, 满屏菊花转, 图片一直不出来, 重新点一次才正常, 这个问题的原因暂不明确, 我估计是由于我主页使用了预加载的原因.
但是总不能让读者都手动重新点一次, 所以我想到用js让页面自动刷新一次, 这样一来问题就解决了, 虽然该方法简单粗暴, 但是暂时我也没想出别的好办法. 毕竟预加载对提速作用还是很大的, 不舍得去掉.
在使用lazyload的界面头部加上如下js代码:

function autorefresh(){ 
	url = location.href;  
	var num = url.split("?");
	if(num[1] != 1){ 
		url += "?1";  
		self.location.replace(url);  
	} 
} 
onload=autorefresh

这样一来, 打开页面后会自动刷新一次, lazyload便正常运作了.

ajax冲突

最后, lazyload与ajax也冲突, 因此在使用了comment-ajax的页面, lazyload是失效的, 建议择其一而使用.

LIKE OR SHARE IT:

admin发表于Code目录下,标签为,转载请保留链接

TOP DOWN
发表评论

您必须 [ 登录 ] 才能发表留言!

  1. 沙 发 xsinger

    ?沙发

    一月 10, 2014 15:53:34
  2. 板 凳 牧风

    可以用sea.js这种模块加载的东东,可以避免全局量污染,还可以按须加载哟

    一月 10, 2014 16:55:46
  3. 地 板 蝴蝶泪

    代码这玩意看着头痛!

    一月 10, 2014 20:31:06
  4. 地 毯 Lar

    考完恭喜~

    一月 10, 2014 21:10:42
  5. 地 面 跑调的包子

    还是原来的博客,还是熟悉的代码,全网知名的程序媛妹纸小蝴蝶终于满血复活。

    一月 11, 2014 11:00:01
  6. 地 下 axiu

    对代码越来越无力了~~~

    一月 11, 2014 21:33:44
  7. 7 楼 第十一颗行星

    我也遇到jq冲突的问题啦,搞的连“回到顶部”都实现不了,正郁闷呢

    一月 16, 2014 22:50:21
  8. 8 楼 Muno

    最近正在“扁平化”一个原来的主题,然后发现自己除了会写css,其它的都不会了…深刻地体会到为啥自己理综总是100分了…

    一月 18, 2014 17:19:12
  9. 9 楼 nolan

    我记得有jquery的lazeload插件.可以试试.那个基于jq的兼容性应该没有问题. >_< 一直在用公司博客的倍感郁闷…老资料都没了

    一月 19, 2014 13:27:23
  10. 10 楼 xsinger

    其实我也用了lazyload~不过没你高级啦,,用这个感觉图片加载慢了?另外边栏的【你们】也改了哦~

    一月 19, 2014 19:25:10
  11. 11 楼 郑永

    技术活。。。

    一月 20, 2014 20:46:36
  12. 12 楼 Android

    技术帖评论往往比较少。。。

    一月 28, 2014 16:33:51
  13. 13 楼 麦田一根葱

    我说怎么不能用了,原来如此。感谢小蝴蝶

    二月 17, 2014 12:52:01
  14. 14 楼 zero

    jq的那个lazyload其实有很多的,一般来说我们讨论的是最出名的那个(不一定是最好的),其实还有很多更简单的

    三月 17, 2014 11:30:48
  15. 15 楼 克济

    话说我的博客也加了这个,不过为什么一直没有效果,奇怪。

    四月 6, 2014 09:10:20
  16. 16 楼 LimitSY

    话说 如果。在ajax新加载的内容中重新加载lazyload的js的话 可以搞定么?

    四月 23, 2014 15:31:25