首先需要两张一样的图片,一张大图,一张小图,大图显示,当鼠标移入时,小图上出现一个滑块,可以滑动,大图也跟着显示,大图的显示区域和小图一样,当滑块滑到不同的位置,大图显示不同的区域,当鼠标移出时,滑块和大图都隐藏。

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>放大镜</title>
<style type="text/css">
*{
padding: 0px;
margin: 0px;
}
#left{
width:400px;
height:400px;
border:1px solid blue;
position: relative;
float:left;
background: url(xiao.jpg) no-repeat;
} #left #huakuai{
width:200px;
height:200px;
background:white;
position: absolute;
opacity: 0.6;
filter:alpha(opacity=60);
display: none;
}
#left #cover{
width:400px;
height: 400px;
position: absolute;
z-index: 3;
top:0px;
left:0px;
background: red;
opacity: 0;
filter:alpha(opacity=0);
/*相当于给左边的div加了一个盖子,鼠标直接作用在盖子上,不用作用滑块上,防止滑块的抖动*/
}
#right{
width:400px;
height:400px;
border:1px solid blue;
overflow: hidden;
float: left;
margin-left:20px;
position:relative;
display: none;
}
#right #right_img{
position: absolute;
top:0px;
left:0px;
/*根据鼠标的移动,图片的显示区域显示相应的位置*/
} </style>
<script type="text/javascript">
window.onload=function(){
var oleft=document.getElementById('left');//获得左边原图的div元素
var ohk=document.getElementById('huakuai');//获得滑块元素
var ocover=document.getElementById('cover');//获得盖子元素
var oright=document.getElementById('right');//获得右边div区域
var oright_img=document.getElementById('right_img');//获得右边图片区域 oleft.onmouseover=function(){//当鼠标移入左边的div时,
ohk.style.display='block';//滑块显示
oright.style.display='block';//右边div显示
}
oleft.onmouseout=function(){//鼠标移出,
ohk.style.display='none';//滑块隐藏
oright.style.display='none';//右边div隐藏
}
ocover.onmousemove=function(e){//鼠标在盖子上移动的事件
var ev=e||window.event;//兼容性
var m_left=ev.layerX||ev.offsetX;//兼容性获得鼠标的横坐标
var left=m_left-100;//表示滑块到div左边框的距离,鼠标在div中间
if(left<0){//如果滑块要超出左边框,另左边距等于0
left=0;
}
if(left>200){//如果滑块要超出右边框,另左边框为最大值200
left=200;
}
huakuai.style.left=left+'px';//将左边距赋值给小滑块 var m_top=ev.layerY||ev.offsetY;//同理设置垂直方向的值
var top=m_top-100;
if(top<0){
top=0;
}
if(top>200){
top=200;
}
huakuai.style.top=top+'px'; var right_left=left*-2;//因为大图为小图的2倍,所以乘以2,因为图片要向左上移动,位置像素值为负,所以再乘以-1
var right_top=top*-2;//同理,获得垂直方向的值
oright_img.style.left=right_left+'px';//赋值
oright_img.style.top=right_top+'px';
} }
</script> </head>
<body>
<div id="left">
<div id="huakuai"></div>
<div id="cover"></div>
</div>
<div id="right">
<img src="datu.jpg" id="right_img">
</div> </body>
</html>

图片如下:

最新文章

  1. hdu 4859 海岸线 Bestcoder Round 1
  2. 让IIS支持bootstrap 增加svg和woff格式文件的支持
  3. retrofit2的get和post
  4. 记录第一次搭建svn服务器
  5. as画柱型图的简单算法(关于柱型图宽和间距问题)
  6. Android Hook Dexposed原理小析
  7. iTextSharp 使用详解(转)
  8. Linux / UNIX create soft link with ln command
  9. Mars 是微信官方的终端基础组件,是一个使用 C++ 编写的业平台性无关的基础组件
  10. CSS3 transition规范的实际使用经验
  11. .net单元测试——常用测试方式(异常模拟、返回值测试、参数测试、数据库访问代码测试)
  12. WPF 自定义滚动条样式
  13. [PWA] 16. Clean IDB
  14. 0x05: post 守护进程(deamon) json 任务调度
  15. java日期处理总结(二)
  16. python中__init__.py文件的作用
  17. BZOJ1187 [HNOI2007]神奇游乐园(插头dp)
  18. 对比剖析Swarm Kubernetes Marathon编排引擎
  19. Kettle 部署
  20. shell 启动和停止脚本

热门文章

  1. HTMLPARSER.NET 参考资料
  2. 在DDMS中查看网络使用详情
  3. 将win7电脑变身WiFi热点
  4. [King.yue]Grid列赋值文本,隐藏Value
  5. chmod chgrp chown
  6. Select the best path in a matrix
  7. httpclient在抓取网页时出现速度慢的情况分析
  8. POJ2184Cow Exhibition (01背包变形)
  9. PC-用Windows XP自带的组策略加固操作系统
  10. Learning JavaScript Design Patterns The Observer Pattern