放大镜

lyxdw 2018-04-24 原文

放大镜

<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<title>放大镜</title>
<script src=”./jquery-1.8.3.min.js”></script>
<style>
*{margin:0;padding:0;list-style:none;}
.Left{
width: 400px;
height: 400px;
border:1px solid red;
position:relative;
}
.Right{
width: 400px;
height: 400px;
border:1px solid green;

position:absolute;
left:410px;
top:0;

overflow: hidden;

display:none;
}
.Right img{
position:absolute;

}
.small{

background:url(./img/bg.png);
position:absolute;
top:0;
left:0;
display:none;
}
.item{
width:400px;
height:110px;
/*border:1px solid red;*/
margin-top:10px;
}
.item li{
width:100px;
height:100px;
border:1px solid red;
float:left;
margin-left:20px;
}
.item li img{
width:100px;
}

</style>
</head>
<body>
<div class=”Left”>
<img src=”./img/3.jpg” alt=”” width=400>
<div class=”small”></div>
</div>
<div class=”item”>
<ul>
<li>
<img src=”./img/2.jpg” alt=””>
</li>
<li>
<img src=”./img/3.jpg” alt=””>
</li>
</ul>
</div>
<div class=”Right”>
<img src=”./img/3.jpg” alt=””>
</div>
<script>
// 蒙版比例 .right的宽/原图的宽*.left的宽度

// 鼠标移入 让蒙版显示
$(‘.Left’).mouseover(function(){
$(‘.small’).css(‘display’,’block’);
$(‘.Right’).css(‘display’,’block’);

// 计算蒙版的大小
var sW=$(‘.Right’).width()/$(‘.Right img’).width()*$(‘.Left’).width();
var sH=$(‘.Right’).height()/$(‘.Right img’).height()*$(‘.Left’).height();
// 设置蒙版的宽高
$(‘.small’).width(sW);
$(‘.small’).height(sH);
})
// 添加移动事件
$(‘.Left’).mousemove(function(e){
// 获取鼠标的位置
var Sx=e.pageX;
var Sy=e.pageY;

// 让鼠标在small的中心点 鼠标当前的位置-small宽高的一半
var Nx=Sx-$(‘.small’).width()/2;
var Ny=Sy-$(‘.small’).height()/2;

// 计算横向最大的偏移位置 .left宽度-.small的宽度
var maxL=$(‘.Left’).width()-$(‘.small’).width();
// 判断 当small当前的偏移位置>small的最大偏移值的时候=最大偏移值
if(Nx>maxL){
Nx=maxL;
}
// 判断 当samll的当前偏移位置<=0 small的偏移位置=最小偏移位置
if(Nx<=0){
Nx=0;
}
// 计算向下的最大偏移位置 .left高度-small的高度
var maxT=$(‘.Left’).height()-$(‘.small’).height();
// 判断 当samll当前的偏移位置>=最大位置的时候 smalll的偏移位置=最大偏移位置
if(Ny>maxT){
Ny=maxT;
}
// 判断向上最小偏移位置
if(Ny<=0){
Ny=0;
}
// 设置蒙版的位置
$(‘.small’).css({left:Nx+’px’,top:Ny+’px’});

// 让大图跟着小图位置的偏移而偏移 缩放比例2.5倍 1–>1*2.5 100–>100*2.5
var maxImgX=Nx*2.5;
var maxImgY=Ny*2.5;
// 设置大图的偏移
$(‘.Right img’).css({left:-maxImgX+’px’,top:-maxImgY+’px’});
})

// 移出事件
$(‘.Left’).mouseout(function(){
// 让right和蒙版隐藏
$(‘.small,.Right’).css(‘display’,’none’);

})

// 切换图片功能
$(‘.item li img’).click(function(){
// 获取当前点击图片的src的值
var Src=$(this).attr(‘src’);
// 将src的值给 .left .right下的img标签
$(‘.Left img’).attr(‘src’,Src);
$(‘.Right img’).attr(‘src’,Src);

})
</script>
</body>
</html>

发表于 2018-04-24 19:49 ManShow2zz 阅读() 评论() 编辑 收藏

 

版权声明:本文为lyxdw原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lyxdw/p/8933255.html

放大镜的更多相关文章

随机推荐

  1. 代码编辑器横评:为什么 VS Code 能拔得头筹

    摘要: 为什么 VS Code 这么火… Fundebug经授权转载,版权归原作者所有。 2015 […]...

  2. BIM工程信息管理系统-详细设计

     详细设计说明书 1引言 1.1编写目的 编写详细设计说明书的目的就是为程序员写出实际的程序代码提供依据。它是 […]...

  3. CAD输出图至Word

    问题:将CAD画的图输出至Word 解决方法: CAD画好图形后,鼠标左键点击开始点,拉区域,对角线形式点结束 […]...

  4. 【测试新人必备】测试报告如何编写?

        作为一个曾经是测试萌新的我,在首次接收到一个任务时总有一种忐忑慌张激动紧张期望的复杂情绪~~忐忑慌张紧 […]...

  5. POI导出EXCEL经典实现

     1.Apache POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API […]...

  6. Linux(CentOS7.1)修改默认yum源为国内的阿里云yum源

    阿里云配置详解 CentOS服务器初始化设置其实不分阿里云或其它服务器了,操作配置过程与步骤也差不多,下面和小 […]...

  7. 打专业课程的“好”主意

    我希望我的这个专业千万不要学物理,不然我会更难,其他的英语,高数,线代,体育等都想学,尽量学会他们,学好他们, […]...

  8. spring:spring再总结(ioc、aop、DI等)

    IOC(Inversion of Control),即“控制反转”,不是一种技术而是一种思想 1、IOC的理解 […]...

展开目录

目录导航