jquery插件实现图片延迟加载

前几天上QQ的在线视频网站,看到上面的影片列表页的图片有这样一种效果:当向下拉动滚动条时下面的图片才开始加载,就是说它不会一下子把所有的图片都加载出来,拉动滚动条后用户看到了才会显示,这是一个很不错的用户体验。减少了页面加载的时间了,也减轻了服务器的压力,看了一下javascript源码,里面写的了lazyload,我就百度了一下,找到了一个jquery的实现这种效果的插件:jquery.lazyload,一个很不错的插件。

比如你打开一个比较大或者长的网页,那么Lazy load能够实现先加载您所看到区域的图片,等你滚动到哪里,就加载那里的图片。

如果你是图片网站,而且一个页面要加载很多图片,这个插件是个很不错的选择。

如何使用,引用如下js:

<script src="jquery.js" type="text/javascript"></script>
<script src="jquery.lazyload.js" type="text/javascript"></script>

在你的页面中加入如下的javascript:

$("img").lazyload();

这将会使所有的图片都延迟加载。插件还有几个配置项可供设置。

当然对于一些用户来说就上面的功能远远是不能达到要求的,下面我们看看是如何设置灵敏度的。我们可以设置阀值来控制 这个功能比较人性化吧。

$(“img”).lazyload({ threshold : 200 });

把阀值设置成200 意思就是当图片没有看到之前先load 200像素。当然了你也可以通过设置占位符图片和自定事件来触发加载图片事件

$("img").lazyload({
	placeholder : "img/grey.gif",
	event : "click"
});

我们还可以通过定义effect 参数来定义一些图片显示效果

$("img").lazyload({
	placeholder : "img/grey.gif",
	effect : "fadeIn"
});

下载地址: source, minified or packed

发现的几个可以查询搜索引擎收录的网站

1、脚本之家:百度近日收录量查询,可以很方便的查询任何网站的本日收录、本周收录、一年内的收录等。当然需要点击一下按钮,它会把所有的收录页面都显示出来。而且可以现在你网站的链接,算是外链吧,链接地址:百度收录查询

2、天空友情链接:收录查询,可以很方便的查询主流搜索引擎的收录数和反向链接数,但一次只能查一个,比较遗憾,但相比其他的网站,界面广告少,看着舒服。链接地址:收录查询

3、站长帮手:功能比较强大,可查询主流搜索引擎的收录数和反向链接数,还可查百度快照日期、网站首页site是否在百度第一位,功能算是比较全的了,而且一次可以查询很多个,但广告比较多,看着眼花。链接地址:网站收录查询

4、中国站长之家:功能一般,而且还有限制,一天只能查询20个域名,查询间隔也有限制,最多一次可以查询两个网站,但网站会把你每天的查询记录记下来,可以查看网站的收录历史,还算有点用处。链接地址:搜索引擎收录查询

5、推荐一个GreaseMonkey脚本,如果你用的是firefox浏览器的话,推荐你使用这个脚本查询网站收录,打开网站即可显示收录数和反向链接数。脚本介绍地址:http://www.junstyle.com.cn/post/gmscript-se-shoulu-link.html

就发这几个了,应该还有很多站长站提供这些功能,各取所需了,以后发现好的再加上!

 

想交换友情链接的进来看看

博客开了一年多了,写的文章也不多~,自愧文笔太差,想起来了就随便写点,刚才看可怜的PR还是1,所以想交换一点友情链接,最好是博客了,有兴趣的可以在下面留言,在你的站做好我博客的链接,我看到后会链接上您的站的。

链接瞄文字:junstyle’s blog
本博客地址:http://www.junstyle.com.cn

把无线路由器当成无线AP使用的两种方法

        买了个无线路由器,折腾了一晚上,想和原有的带无线路由的猫连起来(猫的无线路由是破解的,尝试了很多次,猫的无线用来上网速度很慢,也不稳定,才买了这个无线路由)。买了之后有点后悔,两个东东堆在那里,很占空间,要是买一个无线路由猫就好了,网上看了一下,比较贵,好像都要两百以上。只有凑合着用了。以下为把路由器设置为无线AP的方法,当然也可以不设置为无线AP实现无线上网,但我设置后总是不能自动获取网关,就算手动设置网关重启后也会变为空的。以下为网上看到的方法:

        原有一家用路由器A,后另加一个无线路由器B,使之实现无线功能,设置方法有两种:

        第一种方法:假设A路由器的IP地址为192.168.1.1,并且开启DHCP功能,先登入到B路由器中,将设置项为LAN设置为与路由器A不同的网段,如:192.168.2.1,之后将开启DHCP项复选框关闭,接保存,重启路由器。将一网线,一头接于A路由器LAN端口中其中一口,另一头接于B路由器LAN端口中其中一口,使接于B端路由器的电脑IP获取设置为自动获取,使用IPCONFIG命令查看B路由端IP地址为192.168.1网段的IP,之后,PING电信DNS为通,即可使用。
 
        第二种方法为:将B路由器内LAN设置中路由器的IP地址设置为与A路由器IP地址为同一网段如:192.168.1.2,并且开启DHCP自动获取功能,之后,将一网线一头接于A路由器LAN端口中其中一口,另一端接于B路由器WAN端口,即可。B路由器的WAN口设置为手动拨号(手动拨号应该是最省资源了)。

用jQuery和jQuery UI做的自定义404页面

用jQuery和jQuery UI做的404错误页面效果,裂开和振动的效果,蛮逼真的,点击下面的图片查看效果:

HTML & CSS

首先建一个简单的html页面,当然你自己运用这个404页面的时候可以加一些自己的东西,例如,网站首页链接、网站导航等,这里我们为了演示就简单些了:

<html>
<head>
    <title>404 - File Not Found - Reynoldsftw.com</title>
    <script src="js/jquery-1.3.2.min.js"></script>
    <script src="js/jquery-ui-1.7.2.custom.min.js"></script>
    <script src="js/jquery-background.js"></script>
    <script src="js/controller.js"></script>
    <LINK href="css/style.css" rel="stylesheet" type="text/css">
</head>
<body>
    <div id="error_code">404</div>
    <div id="error_status">File Not Found</div>
    <div id="error_message">We're sorry you are seeing this page, please don't break the site again!</div>
    <div id="crack"></div>
    <div id="crack_overlay"></div>
</body>
</html>
有几个DIV里面放文本内容,两个空的DIV将会放图片。一个是裂开的图片,一个是用于覆盖在第一个图片上面的PNG图片,下面是这两个图片DIV的CSS样式:
#crack{z-index:1;position:absolute;width:200px;height:600px;background-image:url(../images/crack.png);left:520px;top:0px;}
#crack_overlay{z-index:1000;position:absolute;width:200px;height:600px;background-image:url(../images/crack_over.png);background-position:0px-1100px;left:520px;top:0px;}</div>

这里要注意:覆盖层的z-index要比其它的层大,这样才能遮住其它的层。

jQuery and jQuery UI

这里用到了jQuery UI里面的”shake”,”bounce”和”pulsate”效果。这里把效果的速度设置的比较小,为了看起来效果更好,这里用了随机的间隔时间。

var coord = -1125;

$(document).ready(function() {
	setTimeout("shake()", 2000);
});

function reveal()
{
	setTimeout("moreCrack(coord)", 200);
}

function shake()
{
	coordcoord = coord + 50;
	if(coord < -125)
	{
		$("#crack").effect("shake", {distance: 1}, 40, reveal);
		$("#error_code").effect("bounce", {distance: 5}, 50);
		$("#error_status").effect("pulsate", {times: 2}, 50);
	} else {
		$("#crack_overlay").hide();
	}
}

function randomXToY(minVal,maxVal,floatVal)
{
	var randVal = minVal+(Math.random()*(maxVal-minVal));
	return typeof floatVal=='undefined'?Math.round(randVal):randVal.toFixed(floatVal);
}

function moreCrack(coord)
{
	$("#crack_overlay").animate({backgroundPosition:"(0 " + coord + ")"});
	setTimeout("shake()", randomXToY(3500, 5000));
}

下载源码包

10个漂亮的Opera浏览器的快速拨号页背景

如果你使用Opera浏览器,以下是10个Opera浏览器快速拨号页的背景图片

Colored lights
10 Great Opera Speed Dial Backgrounds
By Oleg Melnychuk.

Blue swirls
10 Great Opera Speed Dial Backgrounds
By Fredrik Andersson.
Read More »

在浏览器上玩NES Games

        国外的开发者Nox用javascript写了一个NES模拟器(JSNES),它可以让你在web浏览器上玩NES的游戏,真是太强大了。可以进这个地址试试看,不能在IE上面玩。作者这样说的:

I highly recommend you use Google Chrome to play JSNES. Thanks to its high performance canvas element, and a clever optimisation by Connor Dunn, it runs at full speed on modern computers. Mac builds are also available. Otherwise, it just about runs on Firefox 3.5 or Safari 4, but it’s hardly playable.

        强烈建议大家在Google Chrome上面玩JSNES,这样才能获取最高的性能优势,当然也可以在firefox3.5和Safari4上面玩,但是运行起来很吃力,我刚才尝试了一下,确实比较慢,CPU飙升-_-,但用Chrome玩起来还是比较流畅的。以下为两个游戏截图。

可以点这个地址进入试玩:http://benfirshman.com/projects/jsnes/

GreaseMonkey脚本:显示每个网站的收录数和外链数及PR、Alexa

更新:
2010-02-02 : 修正了有的设置项无效的bug
2009-10-16 : 全面重写代码,设置选项更丰富,可设查询项,可设是否自动启动,可设快捷键(初始快捷键F9);alexa加入昨日排名、一周平均和三月平均;百度加入首页快照日期、首页在百度中的位置;PR并入Google项;感谢jok的建议!
2009-09-18 : 修正Alexa显示的问题(alexa网站改变了html),同时加入脚本更新功能,点击右上角的问号即可查看脚本是否有新版本
2009-09-11 : 修正获取PR出现乱码的问题
2009-09-07 : 增加排除sogou页面的指令,以前忘记排除,以至于输入sogou的验证码老是提示错误
2009-09-01 : 优化显示效果,改为圆角矩形
2009-08-28:修改显示的CSS样式,保证在某些网站不变形
2009-08-23:加入PR和Alexa显示

前段时间总是折腾firefox,装上一些插件后,感觉使用起来很不错,装上了GreaseMonkey,就可以随心所欲的折腾当前打开的网页了,可惜没研究过firefox的插件是怎么做的,但用GreaseMonkey写上几个脚本还是很容易的。其实就是javascript脚本,但可以用GM里面内置的几个方法。那个向任何链接发起请求的方法很爽,不会出现跨域问题了,也不用使用代理页面来发起请求了,直接就可以获取任何链接的源码,但也出现了一个编码的问题,gb2312的页面有时候会出现中文乱码的问题,比较头疼。

今天发一个显示每个网站的收录数和外链数、还有PR、Alexa的脚本。安装脚本后会在每个页面的右上角显示这些信息,包括的搜索引擎有百度、谷歌、雅虎、搜狗、搜搜、有道和必应。搜狗的查询次数多了的话会提示输入验证码,这个会有提示的,点击链接进去输入验证码就OK了。脚本已经发布到userscripts.org(一个专门发布GM脚本的网站),脚本链接地址:http://userscripts.org/scripts/show/56095,点击进去后会有安装按钮或者直接点击此处安装,安装后就可以使用了,当然前提是你已经安装了GreaseMonkey,脚本源码地址:http://userscripts.org/scripts/review/56095。欢迎提出建议!以下为显示效果:

Internet Explorer 无法打开 Internet 站点xxx 已中止操作的解决办法

某些时候用IE打开页面时出现如下的错误警告窗口:

—————————
Windows Internet Explorer
—————————
Internet Explorer 无法打开 Internet 站点
http://www.junstyle.com.cn

已中止操作

—————————
确定
—————————

当点击确定页面就无法打开了,出现了一个错误的页面。这可能是因为你的javascript脚本在页面还没有载入完毕的时候改变了dom的结构,也就是用appendChild()向body里面添加了内容(子元素),导致body的结构错误,IE就无法显示网页了,当然在firefox中不会出现这个错误,一切正常。在IE中错误的用了如下的方法:

<!DOCTYPE html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
	<div>
	<script type="text/javascript">
	document.body.appendChild(document.createElement("div"));
	</script>
	</div>
</body>
</html>

你可以用如下代码代替这个添加div的操作:

document.body.insertBefore(document.createElement(&amp;quot;div&amp;quot;), document.body.childNodes[0]);

使用insertBefore方法就不会出现前面的那个错误。

一步步学习调用Google Map Api(三):自定义地图类型

使用google map提供的api可以实现自定义地图类型,如显示卫星地图、街景地图等,这几个地图类型都是google内置的几种地图,当然你也可以自定义一种地图类 型,如路况、自己的地铁线路等地图信息,下面我们用google的地图数据来讲一下自定义地图类型的使用方法。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
	<title>Google 地图 JavaScript API 示例: 简单的地图</title>
	<script src="http://ditu.google.cn/maps?file=api&amp;v=2&amp;key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA&amp;hl=zh-CN" type="text/javascript"></script>
	<script type="text/javascript">
	function initialize() {
		var baseTileLayer = new GTileLayer(null, 12, 19);
		baseTileLayer.getTileUrl = function(tile, zoom){return "http://mt2.google.cn/mt/v=cn1.11&amp;hl=zh-CN&amp;s=Galileo&amp;x="+tile.x+"&amp;y="+tile.y+"&amp;z="+zoom;};
		var baseMapType = new GMapType([baseTileLayer], new GMercatorProjection(23), "自定义地图", {shortName: "自定义地图", alt: "自定义地图,junstyle"});

		var map = new GMap2(document.getElementById("map_container"), {mapTypes:[baseMapType]});
		map.addControl(new GLargeMapControl());
		map.addControl(new GScaleControl());
		map.setCenter(new GLatLng(39.917, 116.397), 14);
	}
	</script>
</head>
<body onload="initialize()" onunload="GUnload()">
	<div id="map_container" style="width: 500px; height: 300px"></div>
</body>
</html>

1、先定义一个平铺层var baseTileLayer = new GTileLayer(null, 12, 19); 第一个参数版权信息这里设为null,可以自己new一个,12表示最小缩放级别,19表示最大缩放级别。 baseTileLayer.getTileUrl = function(tile, zoom){return “http://mt2.google.cn/mt/v=cn1.11&hl=zh-CN&s=Galileo& x=”+tile.x+”&y=”+tile.y+”&z=”+zoom;},然后设置getTileUrl这个属性,它是一个方法,来 获取用于平铺层的图片地址,这个地址是根据缩放级别和经纬度来确定的,我这里调用的是google的图片数据,用的是google的链接。你如果要弄自己 的自定义地图,那就需要调用自己的图片了,这里比较重要。

2、定义一个地图类型。var baseMapType = new GMapType([baseTileLayer], new GMercatorProjection(23), “自定义地图”, {shortName: “自定义地图”, alt: “自定义地图,junstyle”}),把baseTileLayer作为参数传给它。

3、定义地图了。和以前定义地图差不多,但多了一个参数:{mapTypes:[baseMapType]},就是第二步定义的mapType。

这样一个自定义地图类型就完成了。