自从上次折腾了《图片放大展示zShowBox“草”代码》后,我的博客就用上了改进后的 zShowBox,本来打算是兼容 IE6 的,但是要兼容 IE6 代码多了三分之一,加上想到微软自己都在为 IE6 倒计时,所以决定放弃 IE6 的兼容。
因为这类效果的插件、代码很多,而且效果很赞,也很小巧。不过用自己折腾的代码还是比较有成就感的,所以即使我折腾的 zShowBox 效果很“土”很普通、名字起的也非常庸俗,但还是用之。
这次先放出代码版,以后考虑做成简单的插件吧,不过对WP的插件没去了解过,有时间有兴趣时再折腾。另外,我不会对 zShowBox 增加额外功能(如同一页面的图片翻页功能),因为我需要的是最简单的功能,而且要这些效果的插件一大堆也非常优秀专业。
zShowBox 0.3
by ZWWoOoOo (https://zww.me)
Copyright (c) 2011 ZWWoOoOo
MIT-style license
========================================
Demo:
----------------
1. demo
2. 本博客有图片的文章,如《WordPress主题发布: Chocolate》《三陪+山陪: 云、山和翎翎》
Download:
----------------
Google Code
Features:
----------------
。迷你型图片点击放大展示
。原始js文件只有3.2k + 一个 loading 图片
。IE6不支持,因为懒就Alert直接弹出敬告,请看最下面的图。
。自动查找带链接的图片,只要图片的连接是原图地址的就会有效果
Install:
----------------
1. 把压缩包解压到当前所用主题目录
2. 在 header 加载 jQuery 库和 zShowBox js 文件,例如:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/zshowbox/zshowbox.js"></script> <script type="text/javascript"> jQuery(document).ready(function(){ zShowBox('#content'); //根据自己主题的文章所在设置选择器 }); </script>
这是我自娱自乐的作品,如果有朋友喜欢的话荒淫使用 + 改进,下面是源码。
jQ 核心源码:
/* * zShowBox 0.3 (图片放大展示) * by ZWWoOoOo (https://zww.me/) * Copyright (c) 2011 ZWWoOoOo * MIT-style license */ function zShowBox(domChunk) { //为每张图片链接加上 class="zshowbox" $(domChunk+' a').each(function(){ var a_href = $(this).attr('href').toLowerCase(); var file_type = a_href.substring(a_href.lastIndexOf('.')); if (file_type == '.jpeg' || file_type == '.jpg' || file_type == '.png' || file_type == '.gif' || file_type == '.bmp'){$(this).addClass('zshowbox')}; }); $(domChunk+' a.zshowbox').click(function(){ var pagesize=zsb_getPageSize(), zsb_img_url=$(this).attr('href'), css_zsb_bg='style="z-index:9999;overflow:hidden;position:fixed;left:0;top:0;width:100%;height:100%;background:#000 url('+loadingimg+') no-repeat center center;"', css_zsb='style="z-index:99999;position:fixed;left:50%;top:50%;"', css_zsb_img='style="display:none;border:5px solid #777;border-radius:6px;-moz-border-radius:6px;-webkit-border-radius:6px;box-shadow:1px 1px 5px #333,-1px -1px 5px #333;-moz-box-shadow:1px 1px 5px #333,-1px -1px 5px #333;-webkit-box-shadow:1px 1px 5px #333,-1px -1px 5px #333;"'; if (typeof document.body.style.maxHeight === "undefined") { //if IE 6 alert('zShowBox不支持IE6!请你们放过IE6吧,它太老了,就让它安心的去吧……'); return false; } else { $('body').append('<div id="zsb_bg" '+css_zsb_bg+'></div><div id="zsb" '+css_zsb+'><img id="zsb_img" '+css_zsb_img+' src="'+zsb_img_url+'" /></div>'); $('#zsb_bg').fadeTo(600,0.7); $('#zsb_img').load(function(){ var x = pagesize[0] - 100; var y = pagesize[1] - 100; var imgwidth=$(this).width(), imgheight=$(this).height(); if (imgwidth > x) { imgheight = imgheight * (x / imgwidth); imgwidth = x; if (imgheight > y) { imgwidth = imgwidth * (y / imgheight); imgheight = y; } } else if (imgheight > y) { imgwidth = imgwidth * (y / imgheight); imgheight = y; if (imgwidth > x) { imgheight = imgheight * (x / imgwidth); imgwidth = x; } } var marginleft=-(imgwidth/2)+'px', margintop=-(imgheight/2)+'px'; imgwidth=imgwidth+'px', imgheight=imgheight+'px'; $('#zsb_bg').css("background-image","none").next().css({"width":imgwidth,"height":imgheight,"margin-left":marginleft,"margin-top":margintop}).children('img').css({"width":imgwidth,"height":imgheight}).fadeIn(600); }); $('body').click(function(){ $('#zsb_bg,#zsb').fadeOut(400,function(){$(this).remove();}); $('body').unbind('click'); return false; }); } return false; }); } function zsb_getPageSize(){ var de = document.documentElement; var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight; arrayPageSize = [w,h]; return arrayPageSize; } var loadingimg = (function loadingimg(){ //获取loading图片url var i=0,got=-1,url,len=document.getElementsByTagName('script').length; while(i<=len && got==-1){ url=document.getElementsByTagName('script')[i].src; got=url.indexOf('/zshowbox.js'); i++; } return url.replace('/zshowbox.js','/zshowbox-loading.gif'); })();
如果是IE6,会直接弹出敬告……如下图
折腾完。
- 本文标题:zShowBox 代码版(v0.3)
- 本文链接:https://zww.me/archives/25442
- 发布时间:2011年04月15日 10:18
- 版权声明:除非注明,文章均为 zwwooooo 原创,转载请以链接形式标明本文地址!
哇咔咔~~沙发沙发!!!!
@Alex Gao
你的速度真快
我又犯二了...看完第一段想试下效果,果断点进了小张的淘宝店
@Veezy
对于图片链接不是图片地址当然就不放大了,呵呵
@Veezy
欢迎经常犯2
效果蛮好的,jQuery & ZWW 威武
当图片弹出来了,后面的页面可否设置为不能再上下滚动,这样是否更好
@akasuna
其实你本来就不需要去滚动,图片不会超出浏览窗口,所以这些不必要的代码就不加了,小巧为上。
支持不支持IE6
@软件盒子
放过IE6吧...
@软件盒子
你这句话要合理停顿才能看明白啊:支持 不支持IE6
@Alex Gao
或许他的意思是我回复的意思:支持 不支持IE6
@zwwooooo
嗯 要有意群停顿才能看懂
演示打开图片比较慢呢。
@Demon
要等大图片打开呢,不是说本身的图片弹出
IE6就安心去吧~~~
@IM路人
对啊
代码收走,顶你出个插件出来
@winy
这简单的功能应该不难吧,还不知道插件怎么写呢
@zwwooooo
支持插件流
demoDe图片是亮点啊
@无冷
这个必须的
安装出现 插件的头部错误。
@无冷
- - 这是代码版,不是插件
@无冷
@zwwooooo
我看着直接就安装了,
@无冷
所以要养成认真看文章的习惯。
@zwwooooo
直接就奔着代码去了
DEMO的两张图风格真是迥异呐!!
@低版本
反差够大吧
很是强大,支持~
@恋上苹果
谢谢支持
呵呵,蓝色理想,好多这种代码。
ISayMe: 点击图片后 屏幕变暗,然后只出现一个 小灰点,什么情况? 然后再点击一下 屏幕又还原了
我不会用 我看了主题 不是id=content 而是class=content 没有id=content这个东西.该怎么办?请问
额 看错了 有id=content这个东西但是点击图片之后就一个小黑点.再点击一下恢复
@ISayMe
看了下你所用的主题,这样
zShowBox('#content div.content');
@zwwooooo
经本地wordpress测试 还是那个情况 感谢博主了 看来我的主题的问题和您的代码无缘了
@ISayMe
如果你会调试就能找到原因了,你那主题本身很多js
用不上,看看也爽
@孤风
围观一下
你的博客很火!
@99爷们儿
不火啊
@zwwooooo
有这么多人回复你 羡慕啊
lightbox 在高网速好闪眼睛。。。。赶紧换
@HzlzH
你对这个简单效果的有兴趣?
很不错的效果啊,我感觉比插件的好多了~不过用了林木木的simplebox代码版,就懒得折腾了~
@奚少
我喜欢简单点,而且有时即使自己的代码不怎样也比较喜欢用自己的。
请你们放过IE6吧
@Louis Han
对啊,ie6没错,是使用者的错
还是那个3d果女的图像
@囧啊囧
懒得找图片
又有新作品了,不错
支持一下
@C瓜哥
玩玩