开始先打个岔。作为一名敲代码的人员,我已经两个多月没有折腾博客了,可以翻翻我“折腾博客”目录下面的文章。而一位名叫求索阁的朋友,前天和今天都在我的留言板里留言我说没折腾博客,原来我的懒惰影响到大家的不满啦…赶紧发个准备放到自己写的主题里面的小效果出来,不然再被人骂就很丢人了!(自己写的主题估计今年年底都出不来,没什么创意…)
回归主题。很多博主喜欢在首页弄读者墙,或者在文章底部放置一排,作用相同,都是为了吸引访客多多留言,好让自己的名字上榜。效果如下:
因为图片很小,很难看清别人头像显示的是什么。如果有个鼠标移动图片上面,图片放大,是不是很炫?看看我写的DEMO吧。jQuery能很容易的写出这个效果。
HTML和CSS代码我就不解释了,只把jQuery代码做个解释。
$(function(){
$(".head img").hover(function(){
$(this).stop(true)//防止鼠标移动过快导致多图放大
.parents("li").addClass("zin").end()//找到img的祖先元素,加上"zin"这个类
.animate({left:-20,top:-20,width:80,height:80},200);//执行图片放大动作,200是图片放大速度
},function(){
$(this).stop(true)
.parents("li").removeClass("zin")
.end().animate({left:0,top:0,width:40,height:40},200);
});
});
这段代码肯定你拿回去要修改的,直接复制肯定是不行的,所以有什么问题留言吧,我尽量帮你解决。
animate这个动作是我最先写出来的,因为很简单。而.stop(true)是为了鼠标快速移动图片后,图片连续放大,加了这个后,你把鼠标在头像上面快速的晃动,头像都不会变大的,只有鼠标停住最后一张图片才会放大。而最关键的是中间的加z-index属性,因为图片放大,会被旁边的图片遮住,所以肯定要调整z-index的数值,让当前的图片显示在最上面。我之前一直都往img上面加z-index,后来CSS群里的朋友说应该是往li上加,还帮加了这样一段代码,真是太感谢了!
提醒一句,最外面的div(我这里是head)不能加overflow:hidden,不然图片放大都被外面的层遮住了,所以我定义了.head{height:110px;}固定高度。反正这个div一般都是固定内容,所以固定高度是没有问题的。
接下来是抛砖引玉啦,其实这个效果只是我一个大效果里面的一部分而已。我遇到了一个困难,head里面必须加overflow:hidden,而我又想图片放大,有解决的方法么?
最后想说的是,图片放大效果很多地方都可以使用,不一定只有WordPress里面的读者墙,而且jQuery让他放大的动作更加优雅,所以我很是喜欢!希望大家可以借鉴到博客或者其他类型网站上面。
PS:20101010更新头像不清晰问题,原因我是放置的图片是35px的,而放大图片是80px,现在已经把图片大小修正为80px,很清晰的效果了。