Jquery实现图片放大镜效果的思路及代码(自写)
2023-06-13 09:15:06 时间
网上一大堆限制多,文档也难看懂,而且麻烦~自己写了个。大笑
算法:
第一步:
放大图片的位置=鼠标所在的容器的宽或者高除以容器自身的高度和宽度,求出鼠标在容器中移动的百分比
第二部:
得到百分比之后
x=-(x百分比*图片的宽度-显示容器的宽度/2);
y=-(y百分比*图片的高度-显示容器的高度/2);
两个参数,x和y,就是大图的位置了,后面加了个显示容器的大小/2是为了保证图片显示在中间。
效果图:
代码:
复制代码代码如下:
算法:
第一步:
放大图片的位置=鼠标所在的容器的宽或者高除以容器自身的高度和宽度,求出鼠标在容器中移动的百分比
第二部:
得到百分比之后
x=-(x百分比*图片的宽度-显示容器的宽度/2);
y=-(y百分比*图片的高度-显示容器的高度/2);
两个参数,x和y,就是大图的位置了,后面加了个显示容器的大小/2是为了保证图片显示在中间。
效果图:
代码:
<!DOCTYPEHTML>
<html>
<head>
<title>商品信息</title>
</head>
<style>
html,body,img,a,div{
margin:0px;
padding:0px;
border:0px;
font:12px/150%Arial,Verdana,"宋体";
color:rgb(102,102,102);
}
div:after{
clear:both;
content:".";
height:0;
visibility:hidden;
diplay:block;
}
div{
zoom:1;
}
.main-body{
text-align:center;
padding:15px;
}
.head-box{
height:400px;
border:#CCC1pxsolid;
}
.head-box-left{
width:300px;
height:390px;
/*border:#CCC1pxsolid;*/
float:left;
padding:3px;
position:relative;
}
.head-box-right{
width:500px;
height:390px;
border:#CCC1pxsolid;
float:left;
margin-left:10px;
}
.goods-max-img{
width:300px;
height:300px;
display:block;
border:#CCC1pxsolid;
position:relative;
cursor:move;
}
.goods-img-list{
width:300px;
height:80px;
margin-top:10px;
}
.goods-change{
display:block;
float:left;
width:17px;
height:54px;
background:url("../web/imgs/goods-change-btn.png");
}
.change-prev{
margin-right:5px;
margin-left:2px;
}
.change-prev:HOVER{
background-position:-34px0px;
}
.change-next{
margin-left:5px;
background-position:-17px0px;
}
.change-next:HOVER{
margin-left:5px;
background-position:-51px0px;
}
.goods-img-list-box{
width:250px;
height:54px;
/*border:1px#CCCsolid;*/
border:0px1px;
float:left;
position:relative;
overflow:hidden;
}
.goods-img-list-boxul{
margin:0px;
padding:0px;
position:absolute;
top:1px;
left:0px;
width:500px;
}
.goods-img-list-boxulli{
display:block;
float:left;
width:50px;
height:50px;
border:#CCC1pxsolid;
margin-left:3px;
}
.goods-img-list-boxullia{
display:block;
width:100%;
height:100%;
text-decoration:none;
}
.preview-box{
position:absolute;
top:0px;
width:500px;
height:500px;
background-color:white;
border:#CCC1pxsolid;
left:310px;
display:none;
overflow:hidden;
}
</style>
<scripttype="text/javascript">
$(function(){
$(".goods-max-img").mousemove(function(event){
$(".preview-box").show();
//计算百分比
varx=event.screenX;
vary=event.screenY;
x-=$(this).offset().left;
y=y-$(this).offset().top-65;
//得出比例
x=(x/300).toFixed(2);
y=(y/300).toFixed(2);
//250容器的大小/2
x=-($("#preview-img").width()*x-250);
y=-($("#preview-img").height()*y-250);
$("#preview-img").css("top",y+"px");
$("#preview-img").css("left",x+"px");
document.title=x+","+y;
});
$(".goods-max-img").mouseout(function(){
$(".preview-box").hide();
});
});
</script>
<body>
<divclass="main-body">
<!--头部信息-->
<divclass="head-box">
<!--头部左侧信息-->
<divclass="head-box-left">
<!--商品大图-->
<aclass="goods-max-img">
<imgwidth="100%"height="100%"alt="加载中..."src="http://pic.desk.chinaz.com/file/201211/5/shierybizi7.jpg">
</a>
<divclass="preview-box">
<divstyle="width:500px;height:500px;overflow:hidden;">
<imgid="preview-img"style="position:absolute;"alt="加载中..."src="http://pic.desk.chinaz.com/file/201211/5/shierybizi7.jpg">
</div>
</div>
<!--大图结束-->
<!--图片列表-->
<divclass="goods-img-list">
<ahref="javascript:void();"class="goods-changechange-prev"title="上一张"></a>
<divclass="goods-img-list-box">
<ul>
<li><ahref="javascript:void()">8</a></li>
<li><ahref="javascript:void()">7</a></li>
<li><ahref="javascript:void()">6</a></li>
<li><ahref="javascript:void()">5</a></li>
<li><ahref="javascript:void()">3</a></li>
<li><ahref="javascript:void()">3</a></li>
<li><ahref="javascript:void()">2</a></li>
</ul>
</div>
<ahref="javascript:void();"class="goods-changechange-next"title="下一张"></a>
</div>
<!--图片列表结束-->
</div>
<!--头部左侧信息结束-->
<divclass="head-box-right"></div>
</div>
<!--头部信息结束-->
<!--主体内容-->
<divclass="body-content">
</div>
<!--主体内容结束-->
</div>
</body>
</html>
相关文章
- jquery监听浏览器刷新_jQuery刷新浏览器页面大小
- jquery选择器用法_jQuery属性选择器
- jQuery 发布 1.9 正式版,最后支持 IE 6/7/8
- jquery jssdk分享报错解决方法详解编程语言
- prototype与jquery下Ajax实现的差别
- Jquery实战_读书笔记1—选择jQuery
- jQuery温习篇强大的JQuery选择器
- Jquery从头学起第四讲jquery入门教程
- jQuery.extend函数详解
- JQuery返回布尔值Is()条件判断方法代码
- jQuery.clean使用方法及思路分析
- jquery中如何获得服务器控件实现思路
- jquery如何把参数列严格转换成数组实现思路
- jquery实现二级/三级/多级联动菜单的思路及代码
- jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
- jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
- jQuery弹性滑动导航菜单实现思路及代码
- 你的jqueryajax无效和你的jquery引入路径有关
- 基于jquery的文章中所有图片width大小批量设置方法
- UpdatePanel和jQuery不兼容局部刷新jquery失效
- jquery购物车实时结算特效实现思路
- Jquery图片延迟加载插件jquery.lazyload.js的使用方法
- jQuery常用操作方法及常用函数总结