花了很长时间撸了个网站,观点,其中需要一个图片放大功能,网上找了半天发现都没有中意的,最后无奈之下自己写了一个,演示地址,演示图片:

自我感觉效果还不错,现在分享开来给大家看看,哪里不好还请多多指教,谢谢大家。

css 部分:

.zoomify-dialog-pic {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(0,0,0,0.35);
z-index: 99999;
display: none;
} .zoomify-dialog-pic .dialog-body { position:absolute;
width: 100%;
max-width: 250px;
max-height: 300px;
margin-top:-150px;/*div 高度的一半*/
margin-left:-125px;/*div 宽度的一半*/
top:50%;
left:50%;
padding:10px;
border-radius:5px;
background: white;
} .zoomify-dialog-pic .dialog-body img {
width: 100%;
} .magnifier {
cursor: -moz-zoom-out;
cursor: -webkit-zoom-out;
cursor: zoom-out;
cursor:url('icon/magnifier.ico'),auto;
} .un-magnifier {
cursor: -moz-zoom-in;
cursor: -webkit-zoom-in;
cursor: zoom-in;
cursor:url('icon/unmagnifier.ico'),auto;
}

  

说明下,上面 css 的 cursor:url 请放到自己的图片服务器上,万恶的 IE 不支持本地

js 部分:

var ROOT = $("input[name='globalPath']").val();

function zoomOut(orginImg,times){

    var obj=$(".zoomify-dialog-pic .dialog-body");
var img=$(".zoomify-dialog-pic .dialog-body img"); var imgW=$(orginImg).width();
var imgH=$(orginImg).height(); var newH=imgH*times;
var newW=imgW*times; var bodyH=$("body").height();
var bodyW=$("body").width(); if(newW>bodyW){
newW=bodyW-40;
obj.css("padding","5px");
} if(newH>bodyH){
newH=bodyH-40;
obj.css("padding","5px");
} //图片新高度、宽度
img.css("width",newW+"px");
img.css("height",newH+"px"); //容器新高度、宽度,因为图片放大了,所以容器也必须放大
//不要用 padding 属性,ie 下不支持
var padding=parseInt(obj.css("padding-top")); cWith=newW+padding*2;
cHeight=newH+padding*2; obj.css("max-width",cWith+"px");
obj.css("max-height",cHeight+"px"); obj.css("margin-left",(cWith/2)*-1+"px");
obj.css("margin-top",(cHeight/2)*-1+"px");
} function insertPic(url){
html='<div class="zoomify-dialog-pic">'+
'<div class="dialog-body">'+
'<img src="'+url+'" class="un-magnifier">'+
'</div>'+
'</div>';
return html;
} $(".page-content-l").on('click','p img',function(){ var url=$(this).attr('src');
html=insertPic(url);
$("body").append(html); zoomOut(this,1.2);
$(".zoomify-dialog-pic").show();
}); $("html").on('click','.zoomify-dialog-pic',function(){
$(this).remove();
}); $(".page-content-l").on("mouseover mouseout","p img",function(event){
if(event.type == "mouseover"){
$(this).addClass("magnifier");
}else if(event.type == "mouseout"){
$(this).removeClass("magnifier");
}
});

  代码是毫无保留公开,绝对可以使用的,喜欢给我点个赞,也可以加我的 qq 群交流:284205104,谢谢您的阅读。

图片放大功能如何做?jquery实现的更多相关文章

  1. 图片放大功能插件及jquery.extend函数理解

    前端时间,产品提出社区评论中的图片需要有放大功能.感觉可以共用,所以就想整合一个插件,过程中也借鉴了一些例子. 分析下自己的代码思路: var scaleImg = function(opts) { ...

  2. jQuery.YesShow - 图片轮播插件(带图片放大功能)

    jQuery.YesShow - 图片轮播插件(带图片放大功能) 使用简单,原文件只要这样就可以了:<div id="yes">         <ul> ...

  3. jqzoom插件图片放大功能的一些BUG

    建议使用cloud-zoom插件,jqzoom插件就不要使用了 点击查看——图片放大镜——jQuery插件Cloud Zoom 刚开始使用的是jqzoom插件,但问题太多了,就不说插入到页面中使用了, ...

  4. Typora配置双击图片放大功能

    在Typora中,默认没有点击图片放大功能,本文就教大家如何配置该功能. 我的环境版本 Typora版本:0.11.13 LightBox版本:2.11.3 下载LightBox 可以从Github下 ...

  5. jquery图片放大功能简单实现

    图片放大在某些例如商品细节放大图比较常见,本文写了一个图片放大的示例适合日常应付,有需求的朋友可以参考下 <div class="jqzoom"> <img sr ...

  6. JavaScript 点击图片放大功能

    <!doctype html> <html> <head> <meta charset="utf-8" /> <title&g ...

  7. html实现点击图片放大功能

    话不多说,直接上代码 <html> <head> <style> .over {position: fixed; left:0; top:0; width:100% ...

  8. 使用Layer完成图片放大功能

    序言:在写这个功能之前也用了zoom.js,zoom.js用起来简单引用js然后设置图片属性就可以放大.但是放大后的图片模糊.没有遮罩.在放大图片时其它图片布局会受到影响,当然如果觉得这些都是小问题的 ...

  9. 微信sdk 图片上传 两种方法 上传一张显示一张 并附带微信图片放大功能和删除功能

    html <!--上传图片--> <div class="upload-mod"> <div class="up-box" id= ...

随机推荐

  1. ESLint 的正式使用感受

    介绍ESLint ESLint 是一个代码规范和错误检查工具,有以下几个特性 所有东西都是可以插拔的.你可以调用任意的rule api或者formatter api 去打包或者定义rule or fo ...

  2. linux内核模块编程实例

    linux内核模块编程实例 学号:201400814125 班级:计科141 姓名:刘建伟 1.确定本机虚拟机中的Ubuntu下Linux的版本 通过使用命令uname -a/uname -r/una ...

  3. Python连接MySQL数据库中各种坑

    第一个坑 要想连接数据库,我们必须拥有MySQL-python这个模块,首先,我在安装这个模块的时候就到了第一个大坑. 常规安装方法:进入cmd 使用 pip install MySQL-python ...

  4. Java数据结构和算法(七)——链表

    前面博客我们在讲解数组中,知道数组作为数据存储结构有一定的缺陷.在无序数组中,搜索性能差,在有序数组中,插入效率又很低,而且这两种数组的删除效率都很低,并且数组在创建后,其大小是固定了,设置的过大会造 ...

  5. Scala入门系列(八):面向对象之trait

    基础知识 1 将trait作为接口使用 此时Trait就与Java中的接口非常类似,不过注意,在Scala中无论继承还是trait,统一都是extends关键字. Scala跟Java 8前一样不支持 ...

  6. iOS生成Bundle包及使用

    什么是Bundle文件? 简单理解,就是资源文件包.我们将许多图片.XIB.文本文件组织在一起,打包成一个Bundle文件.方便在其他项目中引用包内的资源. Bundle文件的特点? Bundle是静 ...

  7. Mysql----关于内联,左联,右联,全联的使用和理解

    准备工作:新建两张表 表一:student 填充内容:编号,姓名,班级 表二:school 填充内容:编号,班级,专业 这两张表建好了,意为班级选课表,两张表没有任何主外键的关系,下面进行内联,左联, ...

  8. DEBUG技巧-设定合适的日志级别

    有些技能只有踩过坑的人才能够掌握,能用来避免后来的坑,很多时候是用凌晨的时间换来的,我们通常把他叫做经验. 故事 这个一个关于springmvc的坑的故事. 某天晚上本打算一个小功能分分钟搞定上线,但 ...

  9. 阿里云部署Docker(6)----解决删除&lt;none&gt;镜像问题

    转载请注明来源,本博客原创作者为:http://blog.csdn.net/minimicall?viewmode=contents 在Docker使用中,常常会碰到删除镜像不成功.反而让镜像变成了& ...

  10. 《Javascript_Dom 编程艺术》(第2版)读书笔记

    第1章 Javascript 简史 Dom : 平稳退化.渐进增强,以用户为中心的设计 第2章 Javascript 语法 1.程序设计语言分为:解释性(javascript)和编译型(java,C+ ...