jQuery万能放大镜插件(普通矩形放大镜)
插件链接:http://files.cnblogs.com/files/whosMeya/magnifier.js
1.在jquery下插入。
2.格式:magnifier("需要插入的位置",主图宽,主图高,"主图路径",遮罩层宽,遮罩层高,放大框宽)
例如:magnifier(".box",400,400,"1.jpg",200,200,400)
说明:1.需要插入的位置 格式为 jQuery中格式。如".box","#box","#box div"
2.宽高单位为px。(如需其他单位,在源码中修改)。
插件源码
/**
*放大镜
*/
function magnifier(fatherName,MainWidth,MainHeight,img_src,SelectWidth,SelectHeight,BigBoxWidth){
var bei = (BigBoxWidth/SelectWidth);
/**
* 创建主图盒子,添加主图
*/
$(fatherName).html("<div class='magnifierMainBox'></div><div class='magnifierBigBox'></div>")
$(".magnifierMainBox").css({
"position":"relative",
"width":MainWidth + "px",
"height":MainHeight + "px",
"border":"1px solid #eee",
"box-size":"border-box"
}).html("<img class='magnifierMainImg' src='"+img_src +"'/><div class='magnifierSelect'></div>");
$(".magnifierMainImg").css({
"width":"100%",
"height":"100%"
})
/**
* 创建主图遮罩层
*/
$(".magnifierSelect").css({
"display":"none",
"position":"absolute",
"width":SelectWidth + "px",
"height":SelectHeight + "px",
"background":"rgba(252,197,5,0.3)",
"cursor":"move"
});
/**
* 创建放大图盒子,放大图
*/
$(".magnifierBigBox").css({
"display":"none",
"background":"url("+img_src+")",
"width":BigBoxWidth + "px",
"height":BigBoxWidth*SelectHeight/SelectWidth + "px",
"border":"1px solid #eee",
"overflow":"hidden",
"position":"relative",
"left":MainWidth+"px",
"top":-MainHeight-2+"px",
"box-size":"border-box",
"z-index":"99",
"background-size":MainWidth*bei+"px "+MainHeight*bei+"px"
})
/**
* 移动
*/
$(".magnifierMainBox").mouseenter(function(){
$(".magnifierSelect").show();
$(".magnifierBigBox").show();
}).mousemove(function(e){
var e=e || window.event;
var _left = e.clientX + $("body").scrollLeft() - $(".magnifierMainBox").offset().left - SelectWidth/2;
var _top = e.clientY + $("body").scrollTop() - $(".magnifierMainBox").offset().top - SelectHeight/2;
if(_left<0){
_left=0;
}
if(_left>MainWidth-SelectWidth){
_left=MainWidth-SelectWidth;
} if(_top<0){
_top=0;
}
if(_top>MainHeight-SelectHeight){
_top=MainHeight-SelectHeight;
}
$(".magnifierSelect").css({
"left":_left + "px",
"top":_top + "px"
})
$(".magnifierBigBox").css({
"background-position":(-_left*bei)+"px "+(-_top*bei)+"px"
})
}).mouseleave(function(){
$(".magnifierSelect").hide();
$(".magnifierBigBox").hide();
})
}
demo1
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
.box{
height:400px;
width:400px;
margin-top:50px;
margin-left:100px;
}
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="magnifier.js"></script>
</head>
<body>
<div class="box"></div>
</body>
<script type="text/javascript">
magnifier(".box",400,400,"1.jpg",200,200,400)
</script>
</html>
效果如下:
若需要点击切换,在需要用到的位置直接调用。
如demo2
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="magnifier.js"></script>
<style type="text/css">
.box{
margin-left:100px;
margin-top:50px;
width:400px;
height:800px;
border:1px solid #444;
}
.boxtop{
height:400px;
width:100%;
}
.boxbottom img{
height:50px;
width:50px;
margin-left:20px;
}
</style>
<script type="text/javascript">
$(function(){
var kkk ="";
$(".box").html("<div class='boxtop'></div><div class='boxbottom'></div>")
for(var i=0;i<5;i++){
kkk += "<img src='"+(i+1)+".jpg'/>"
}
magnifier(".boxtop",400,400,"1.jpg",200,200,500) //调用
$(".boxbottom").html(kkk);
$(".boxbottom").children().click(function(){
magnifier(".boxtop",400,400,$(this).index()+1+".jpg",200,200,500)//调用
})
})
</script>
</head>
<body>
<div class="box"></div>
</body>
</html>
效果如下:
jQuery万能放大镜插件(普通矩形放大镜)的更多相关文章
- jquery插件课程2 放大镜、多文件上传和在线编辑器插件如何使用
jquery插件课程2 放大镜.多文件上传和在线编辑器插件如何使用 一.总结 一句话总结:插件使用真的还是比较简单的,引包,初始化,配置参数(json),配置数据(json),而后两步不是必须的.而且 ...
- jquery放大镜插件与样式
这是放大镜插件链接,我已经上传到我博客http://files.cnblogs.com/valiant1882331/%E6%94%BE%E5%A4%A7%E9%95%9C%E6%8F%92%E4%B ...
- jQuery放大镜插件
(function($) { $.fn.magnifier = function(options){ var options = $.extend({ bigWidth: 400, //大图高度 bi ...
- Jquery放大镜插件---imgzoom.js(原创)
Jquery放大镜插件imgzoom能够实现图片放大的功能,便于与原图进行比较. 使用方法: 1.引入jQuery与imgzoom,imgzoom.css <link rel="sty ...
- jquery cloudzoom 3.0,magiczoom 放大镜插件 破解 移除版权信息
jquery Cloud Zoom一款放大镜插件.但是无奈 官方下载的始终有版权信息,因此想到如下方法去掉版权信息,测试可行! 官方网址:http://www.starplugins.com/clou ...
- 非常强大的jQuery万能浮动框插件
支持hover, click, focus以及无事件触发:支持多达12种位置的定位,出界自动调整:支持页面元素加载,Ajax加载,下拉列表,提示层效果,tip类效果等:可自定义装载容器:内置UI不错的 ...
- [vue插件]基于vue2.x的电商图片放大镜插件
最近在撸一个电商网站,有一个需求是要像淘宝商品详情页那样,鼠标放在主图上,显示图片放大镜效果,找了一下貌似没有什么合适的vue插件,于是自己撸了一个,分享一下.小白第一次分享,各位大神莫见笑. vue ...
- jquery的常用插件
jquery的常用插件jquery的常用插件jquery的常用插件jquery的常用插件jquery的常用插件 放大镜: cloud-zoom(这个效果很炫) 图片查看: fancybox(灯箱) t ...
- 20 个具有惊艳效果的 jQuery 图像缩放插件
jQuery相对与Flash的魔力已经贯穿整个网络.尽管,Flash层被认为是用于网页设计的首选,然而随着jQuery的出现,以及他的酷似Flash的交互式特效使得网页更加的优雅——Flash开始靠边 ...
随机推荐
- HDU-6312-Game
题意: 一个集合里有1到n,两个人轮流从中取数,取出一个数的同时这个数的因子也被取走.取走最后一个数者为胜.判断是否先手必胜. 思路: 一道挺有意思的博弈题.一开始在纸上列出了n为1到6的情况,发现都 ...
- python读取配置文件报keyerror-文件路径不正确导致的错误
- 在其他模块使用反射读取配置文件报错,但是在反射模块中读取GetData.check_list又是正确的 反射模块如下: # get_data.py from API_AUTO.p2p_projec ...
- python中字典dic详解-创建,遍历和排序
原文地址:http://www.bugingcode.com/blog/python_dic_create_sort.html 在python的编程中,字典dic是最典型的数据结构,看看如下对字典的操 ...
- 严谨与特色并行——WSDM 2015大会见闻记
2015大会见闻记" title="严谨与特色并行--WSDM 2015大会见闻记"> 第8届ACM网络搜索与数据挖掘会议(ACM International Co ...
- leetcode_315_逆序对问题
题目描述 本题来自于Leetcode的算法题库第315题,具体题目描述如下: 给定一个nums整数数组 ,按要求返回一个counts新数组 .数组 counts 有该性质: counts[i]的值是 ...
- Android空包签名
空包签名 搜狗.优亿等Android市场,上传应用需要提供一个与要上传的应用相同签名的空包.这个空包是相应官方市场提供的,下载好之后需要使用命令行进行签名.具命令如下: 1 jarsigner -ve ...
- Linux Command Backup
User Structure linux command review 列出所有信号 找到名字后,kill 或者用ps找到 kill同名进程 每隔一秒高亮显示网络链接数的变化情况 启动关闭制定网卡 关 ...
- 强制迁移、合区 APP太强势伤害用户同时是否违法?
APP太强势伤害用户同时是否违法?" title="强制迁移.合区 APP太强势伤害用户同时是否违法?"> 对于经常混迹在国内各大手游的玩家来说,"合区& ...
- rsync 增量同步总是多两行数据
从google云机器rsync日志到本地,并通过logstash格式化后存入elasticsearch,但在实施过程中发现,每次rsync后通过查看elasticsearch,都会将上次已同步的数据再 ...
- Java 在PDF中添加表格
本文将介绍通过Java编程在PDF文档中添加表格的方法.添加表格时,可设置表格边框.单元格对齐方式.单元格背景色.单元格合并.插入图片.设置行高.列宽.字体.字号等. 使用工具:Free Spire. ...