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

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

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. 老男孩Python视频教程:第一周

    认识和尝试Python 备注:老男孩Python视频教程,视频来自网络,在此分享,侵删 对我来说,第一周视频主要解答了以下疑问: 1. Python的三大特点是什么? 答:解释型.动态类型(运行期间才 ...

  2. 在cmd中运行android.bat报出空指针异常

    因启动SDK manager和启动AVD manager 都发生闪退现象,网上很多方法都无法解决 又在cmd 中执行运行 D:\Program Files\Android_SDK\sdk\tools& ...

  3. Servlet实践--留言板-v1

    功能介绍: 由三个jsp页面组成,在doGet中根据请求URL中的请求参数不同,跳转到不同的页面: 页面1:显示整个留言板列表 页面2:创建留言页面(包括用户.主题.内容和上传文件) 页面3:在查看单 ...

  4. 禁止mui事件tab切换内容左右滑动

    mui('.mui-slider').slider().setStopped(true);

  5. fiddler+android抓包工具配置使用

    今天临时增加一个工作,手机需要抓包,查看了不同的抓包工具,最后确定使用fiddler抓包工具进行操作,这里以android为例记录一下工具的配置和使用操作. fiddler的安装 网上有很多fiddl ...

  6. navigator.userAgent浏览器检测(前端基础系列)

    对于前端来说,浏览器检测已经不陌生了,在做一些页面是,需要针对不同的浏览器进行处理不同的逻辑,最简单的就是区分pc和移动端的浏览器,或是android 和ios下的浏览器. 一.浏览器检测的由来?  ...

  7. 【new File(String Path)加载资源问题】

    2017-12-17   15:07:38  [原创-wx] 一.我们在用IO流加载资源的时候,创建文件资源 1 File file = New File("String Path" ...

  8. Model中内部类meta详解

    Django 模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性. 以下对此作一总结: Model 元数据就是 "不是一个字段的任何数据" -- 比如排序选项 ...

  9. archsummit2017见闻和思考

    前几天参加了archsummit的北京站.2天的日程安排的十分紧凑,大多数时间同时有多场专题分享,选择想要听的专题就成了首要的事情,按照感兴趣的,可能用到的,启发思考的原则选择了几场适合自己的专题,这 ...

  10. SQL-PL/SQL基础

    SQL的4GL,对流程控制的支持不够,Oracle的PL/SQL是3GL.加入了流程控制.变量等支持能够在数据库层面上进行程序的设计. PL/SQL的特点 1.支持事务控制和SQL. 2.数据类型在S ...