Javascript仿京东放大镜的效果


Posted in Javascript onMarch 01, 2017

随便找一个图片吧。小伙伴们,想怎么玩就怎么玩(注意路径),亲自测试,绝对没问题。

话不多说,请看代码:

<html>
<head>
<meta charset="utf-8">
<style type="text/css">
body,div{margin: 0; padding: 0;}
#zhuti{ 
margin:50px;
position: relative;
}
#small{
width: 300px;
height: 187px;
border: 1px solid #000;
}
#big{
border: 1px solid #666;
overflow: hidden;
width: 300px;
height: 187px;
position: absolute;
left: 310px;
top: 0px;
display: none; /*默认隐藏*/
}
#jingtou{
width: 50px;
height: 50px;
background: #666;
opacity: 0.4;
position: absolute;
display: none; /*默认隐藏*/
}
#bigimg{
position: absolute;
}
</style>
</head>
<body>
<div id="zhuti">
<div id="small">
<div id="jingtou"></div>
<img src="img/ktm_small.jpg">
</div>
<div id="big">
<img src="img/ktm_big.jpg" id="bigimg">
</div>
</div>
<script type="text/JavaScript">
//封装一个函数(id形式参数)
function $(id) {
return document.getElementById(id);
}
var small =$('small');
var big =$('big');
var jingtou =$('jingtou');
var zhuti =$('zhuti');
var bigimg =$('bigimg');
//监视鼠标(镜头)
small.onmouseover = function(){
big.style.display='block';
jingtou.style.display='block';
}
small.onmouseout = function(){
big.style.display='none';
jingtou.style.display='none';
}
//挡鼠板移动的时候
small.onmousemove = function(event){
//获得当前坐标 //减去镜头宽度的一半
var left = event.clientX - zhuti.offsetLeft -jingtou.offsetWidth/2;
var top = event.clientY -zhuti.offsetTop - jingtou.offsetHeight/2;
//进行判断语句(固定0的位置)
//向左走
if(left<=0){
left =0;
}
//向上走
if(top<=0){
top =0;
}
//向右走
if(left >= small.offsetWidth-jingtou.offsetWidth){
left = small.offsetWidth-jingtou.offsetWidth;
}
//向下走
if(top >= small.offsetHeight-jingtou.offsetHeight){
top = small.offsetHeight-jingtou.offsetHeight;
}
//小图的比例
var smallX = left / (small.offsetWidth - jingtou.offsetWidth);
//var smallX = left / (small.offsetWidth - jingtou.offsetWidth);
var smallY = top / (small.offsetHeight - jingtou.offsetHeight);
//var smallY = top / (small.offsetHeight - jingtou.offsetHeight);
var bigX = -smallX * (bigimg.offsetWidth - big.offsetWidth); 
var bigY = -smallY * (bigimg.offsetHeight - big.offsetHeight);
//求a和b的值
bigimg.style.left = bigX + 'px';
bigimg.style.top = bigY + 'px';
//镜头距离左边的位置==鼠标距离左边的位置
jingtou.style.left = left +'px';
jingtou.style.top = top +'px';
}
</script>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
jquery控制listbox中项的移动并排序
Nov 12 Javascript
javasctipt如何显示几分钟前、几天前等
Apr 30 Javascript
javascript操纵OGNL标签示例代码
Jun 16 Javascript
浅谈JavaScript的全局变量与局部变量
Jun 10 Javascript
JS中使用DOM来控制HTML元素
Jul 31 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
Sep 24 Javascript
基于vue的fullpage.js单页滚动插件
Mar 20 Javascript
微信小程序中显示html格式内容的方法
Apr 25 Javascript
vue :src 文件路径错误问题的解决方法
May 15 Javascript
微信小程序CSS3动画下拉菜单效果
Nov 04 Javascript
6种JavaScript继承方式及优缺点(小结)
Feb 06 Javascript
JS co 函数库的含义和用法实例总结
Apr 08 Javascript
Ajax实现不刷新取最新商品
Mar 01 #Javascript
Angular1.x复杂指令实例详解
Mar 01 #Javascript
JS中使用 after 伪类清除浮动实例
Mar 01 #Javascript
Angular1.x自定义指令实例详解
Mar 01 #Javascript
轻松学习Javascript闭包
Mar 01 #Javascript
js图片延迟加载(Lazyload)三种实现方式
Mar 01 #Javascript
node.js实现回调的方法示例
Mar 01 #Javascript
You might like
php中随机显示图片的函数代码
2011/06/23 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
ThinkPHP调试模式与日志记录概述
2014/08/22 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
通用JS事件写法实现代码
2009/01/07 Javascript
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
Javascript 作用域使用说明
2009/08/13 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
2013/08/02 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
2015/11/20 Javascript
浅谈js中调用函数时加不加括号的问题
2016/07/28 Javascript
老生常谈JavaScript 函数表达式
2016/09/01 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
jquery日历插件e-calendar升级版
2016/11/10 Javascript
vue代码分割的实现(codesplit)
2018/11/13 Javascript
ES6基础之默认参数值
2019/02/21 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
python监控文件或目录变化
2016/06/07 Python
Python对字符串实现去重操作的方法示例
2017/08/11 Python
从0开始的Python学习016异常
2019/04/08 Python
python字符串中匹配数字的正则表达式
2019/07/03 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
Python 炫技操作之合并字典的七种方法
2020/04/10 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
2021/03/05 HTML / CSS
自我鉴定写作要点
2014/01/17 职场文书
初中化学教学反思
2014/01/23 职场文书
初中学校军训方案
2014/05/09 职场文书
学生检讨书怎么写
2014/10/09 职场文书
孙振耀退休感言
2015/08/01 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
Flask response响应的具体使用
2021/07/15 Python
python开发制作好看的时钟效果
2022/05/02 Python