zShowBox : 图片放大展示   简单 舒服 快速 兼容性好

zShowBox.js

/*
 * zShowBox  (图片放大展示)
*/
function zShowBox(domChunk) {//为每张图片链接加上 class="zshowbox"var zcounter = 0;$(domChunk + ' a').each(function () {var a_href = $(this)[0].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').attr('id', 'zsb-' + zcounter); zcounter++; };});$(domChunk + ' a.zshowbox').click(function () {var current = $(this).attr('id').split('zsb-')[1],pagesize = zsb_getPageSize(),zsb_img_url = $(this).attr('href'),css_zsb_bg = '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 = 'z-index:99999;position:fixed;left:50%;top:50%;',css_zsb_img = '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;',css_zsb_p_n = 'display:none;cursor:pointer;position:absolute;top:50%;line-height:80px;margin:-40px 0 0 0;color:#eee;text-shadow:1px 3px 5px #000;font-size:40px;font-family:Arial,Tahoma;';if (typeof document.body.style.maxHeight === "undefined") { //if IE 6alert(IE6!太落后了……');return false;} else {$('body').append('<div id="zsb_bg" style="' + css_zsb_bg + '"></div><div id="zsb" style="' + css_zsb + '"><img id="zsb_img" style="' + css_zsb_img + '" /><p id="zsb_prev" style="left:-30px;' + css_zsb_p_n + '">&laquo;</p><p id="zsb_next" style="right:-30px;' + css_zsb_p_n + '">&raquo;</p></div>');$('#zsb_bg').fadeTo(600, 0.7);zsh_img('#zsb_img', zsb_img_url, pagesize, current, zcounter);$('#zsb_prev,#zsb_next').click(function () {if ($(this).attr('id') == 'zsb_prev') current--; else current++;$(this).parent().prev().css("background-image", 'url(' + loadingimg + ')');$('#zsb').find('img').remove().end().append('<img id="zsb_img" style="' + css_zsb_img + '" />');zsb_img_url = $('#zsb-' + current).attr('href');zsh_img('#zsb_img', zsb_img_url, pagesize, current, zcounter);return false;});$('#zsb_bg,#zsb_img').click(function () {$('#zsb_bg,#zsb_img').unbind('click');$('#zsb_bg,#zsb').fadeOut(400, function () { $(this).remove(); });return false;});}return false;});
}
function zsh_img(img_id, zsb_img_url, pagesize, current, zcounter) {$('#zsb_prev,#zsb_next').hide();//动态获取图片的宽度和高度的像素值// //IE下,ajax会缓存,导致onreadystatechange函数没有被触发,所以需要加一个随机数 $(img_id).attr('src', zsb_img_url+ '?t=' + Math.random()).load(function () {var img_w,img_h;var x = pagesize[0] - 100, y = pagesize[1] - 100;//imgReady  图片头数据加载就绪事件 - 更快获取图片尺寸imgReady(zsb_img_url, function (){img_w=this.width; img_h=this.height;});// img_w = $(this).width(), img_h = $(this).height();if (img_w > x) {img_h = img_h * (x / img_w);img_w = x;if (img_h > y) {img_w = img_w * (y / img_h);img_h = y;}} else if (img_h > y) {img_w = img_w * (y / img_h);img_h = y;if (img_w > x) {img_h = img_h * (x / img_w);img_w = x;}}var marginleft = -(img_w / 2 + 5) + 'px',margintop = -(img_h / 2 + 5) + 'px';img_w = img_w + 'px', img_h = img_h + 'px';$(this).css({ "width": img_w, "height": img_h }).fadeIn(600).parent().css({ "margin-left": marginleft, "margin-top": margintop }).prev().css("background-image", "none");if (current > 0){ $('#zsb_prev').show();}if (current < zcounter - 1){ $('#zsb_next').show();}});
}
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图片urlvar 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');
})();

图片头数据加载就绪事件 - 更快获取图片尺寸

/**
 * 图片头数据加载就绪事件 - 更快获取图片尺寸
 * @version    2011.05.27
 * @author    TangBin
 * @see        http://www.planeart.cn/?p=1121
 * @param    {String}    图片路径
 * @param    {Function}    尺寸就绪
 * @param    {Function}    加载完毕 (可选)
 * @param    {Function}    加载错误 (可选)
 * @example imgReady('http://www.google.com.hk/intl/zh-CN/images/logo_cn.png', function () {        alert('size ready: width=' + this.width + '; height=' + this.height);
    });
 */
var imgReady = (function () {var list = [], intervalId = null,// 用来执行队列tick = function () {var i = 0;for (; i < list.length; i++) {list[i].end ? list.splice(i--, 1) : list[i]();};!list.length && stop();},// 停止所有定时器队列stop = function () {clearInterval(intervalId);intervalId = null;};return function (url, ready, load, error) {var onready, width, height, newWidth, newHeight,img = new Image();img.src = url;// 如果图片被缓存,则直接返回缓存数据if (img.complete) {ready.call(img);load && load.call(img);return;};width = img.width;height = img.height;// 加载错误后的事件img.onerror = function () {error && error.call(img);onready.end = true;img = img.onload = img.onerror = null;};// 图片尺寸就绪onready = function () {newWidth = img.width;newHeight = img.height;if (newWidth !== width || newHeight !== height ||// 如果图片已经在其他地方加载可使用面积检测newWidth * newHeight > 1024) {ready.call(img);onready.end = true;};};onready();// 完全加载完毕的事件img.onload = function () {// onload在定时器时间差范围内可能比onready快// 这里进行检查并保证onready优先执行!onready.end && onready();load && load.call(img);// IE gif动画会循环执行onload,置空onload即可img = img.onload = img.onerror = null;};// 加入队列中定期执行if (!onready.end) {list.push(onready);// 无论何时只允许出现一个定时器,减少浏览器性能损耗if (intervalId === null) intervalId = setInterval(tick, 40);};};
})();

调用:

 zShowBox('.gridlist');
 

附加 loging

本文转自曾祥展博客园博客,原文链接http://www.cnblogs.com/zengxiangzhan/archive/2011/09/23/2185908.html:,如需转载请自行联系原作者

zShowBox (图片放大展示jquery版 兼容性好)相关推荐

  1. body div js 放大图片_jquery图片放大插件鼠标悬停图片放大效果

    都知道jquery都插件是非常强大的,最近分享点jquery插件效果,方便效果开发使用. 一.HTML代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHT ...

  2. 自写图片遮罩层放大功能jquery插件源代码,photobox.js 1.0版,不兼容IE6

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u010480479/article/details/27362147 阿嚏~~~ 话说本屌丝没啥开发 ...

  3. jQuery Lightbox图片放大预览

    简介:jQuery Lightbox图片放大预览代码是一款可以在用户点击页面中的小图片时,将该图片的高清版本以Lightbox的方式放大显示在页面的中间,提高用户的体验度. 效果展示 http://h ...

  4. html 图片放大缩小轮播,jQuery左右滚动支持图片放大缩略图图片轮播代码分享

    本文实例讲述了jQuery左右滚动支持图片放大缩略图图片轮播效果.分享给大家供大家参考.具体如下: 这是一款基于jQuery实现的左右滚动支持图片放大缩略图图片轮播效果,常用的jQuery图片左右轮播 ...

  5. jQuery插件Magnify放大镜实现javascript图片放大功能

    jQuery插件Magnify放大镜实现javascript图片放大功能 博客所有文章均属原创作品,如有转载,请注明作者:biuuu,来源:http://www.biuuu.com/?p=459 有时 ...

  6. jquery版的图片轮播加动画效果

    jquery版的图片轮播加动画效果 1.效果图展示: 2.代码呈上: <!DOCTYPE html> <html> <head><meta charset=& ...

  7. 推荐两款简单好用的图片放大jquery插件

    一.zoomfiy.js 推荐可以从这里下载 使用说明: 使用该jquery 插件 引入该插件的js:zoomfiy.js 或 min 引入该插件的css:zoomfiy.css 或 min 前后顺序 ...

  8. 图片放大显示的jQuery插件

    从网上下载了一个jquery的图片放大显示插件,效果如下 前台代码调用: 先引入js <script type="text/javascript" src="../ ...

  9. 14个jQuery图片放大编辑插件汇总

    基于Web的在线应用已经是一个逐步成熟的趋势,Web应用的丰富多样化,都是基于 JavaScript框架完成的,其中 jQuery 框架被越来越多的Web开发者青睐,它可以让你"少写,多做& ...

最新文章

  1. go build 编译报错 missing go.sum entry for module providing package
  2. java游戏开发--连连看-让程序运行更稳定、更高效
  3. 提高C++代码质量 - [083]不要返回局部变量的引用
  4. C#精华面试题及答案 三
  5. Java 图形用户界面 AWT事件处理
  6. vue 组件属性监听_详解vuex 中的 state 在组件中如何监听
  7. python修改文件名字数字_python实现多进程按序号批量修改文件名的方法示例
  8. DataTable操作相关实例
  9. 如何自学python-如何自学python语言
  10. 开发人员速查表-收集
  11. mysql80连接不上本地服务器_干货教程:如何在服务器上安装Mysql8.0
  12. jdbc代码_Mysql Java 驱动代码阅读笔记及 JDBC 规范笔记
  13. 在三维坐标中给出三个点,求三个点所在平面的圆心和圆心坐标
  14. armv6、armv7、armv7s、armv8、armv64及其i386、x86_64区别
  15. 集群通信组件Tribes之整体介绍
  16. neon浮点运算_ARM 浮点计算测试与分析
  17. 箱形图适用于哪种数据_Excel 数据可视化:箱形图全面解析!
  18. 3705-26-8,cyclo(Phe-Pro),CYCLO-L-PHENYLALANYL-L-PROLINE,Einecs 223-047-0
  19. gpio引脚介绍 树莓派3b_树莓派4的GPIO接口介绍
  20. 福昕 取消高亮 等注释

热门文章

  1. strtok(), strtok_s() 字符串分割函数
  2. C++对象继承中的内存布局
  3. define、const、typedef区别
  4. 关于优酷开放SDk之setOnAdCountListener和setOnNetworkSppedListener
  5. Serializable的作用
  6. Ubuntu18.04 root 登录
  7. python调用R语言,关联规则可视化
  8. UWP 检测网络状态
  9. C# 7.0 新特性:本地方法
  10. JMeter 监听器之保存响应到文件