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 相关文章推荐
浅谈javascript 面向对象编程
Oct 28 Javascript
jquery访问ashx文件示例代码
Aug 11 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
Sep 28 Javascript
Vue自定义事件(详解)
Aug 19 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
Sep 06 Javascript
JavaScript中错误正确处理方式小结你用对了吗
Oct 10 Javascript
Vue中使用webpack别名的方法实例详解
Jun 19 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
Jun 30 Javascript
小程序实现页面顶部选项卡效果
Nov 06 Javascript
vue地址栏直接输入路由无效问题的解决
Nov 15 Javascript
Vue实现的父组件向子组件传值功能示例
Jan 19 Javascript
有趣的JavaScript隐式类型转换操作实例分析
May 02 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
虹吸式咖啡壶操作
2021/03/03 冲泡冲煮
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
php打开文件fopen函数的使用说明
2013/07/05 PHP
PHP is_subclass_of函数的一个BUG和解决方法
2014/06/01 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
jquery 批量上传图片实现代码
2010/01/28 Javascript
jquery1.4.2 for Visual studio 2010 模板文件
2010/07/14 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
js HTML5 Ajax实现文件上传进度条功能
2016/02/13 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
AngularJS页面传参的5种方式
2017/04/01 Javascript
JavaScript设计模式之观察者模式实例详解
2019/01/16 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
2020/05/24 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
解析Python中while true的使用
2015/10/13 Python
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
用Python登录好友QQ空间点赞的示例代码
2017/11/04 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
村优秀党员事迹材料
2014/01/15 职场文书
酒后驾驶检讨书
2014/01/27 职场文书
购房协议书
2014/04/11 职场文书
个人评语大全
2014/05/04 职场文书
中秋手机店促销方案
2014/06/16 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
财务人员入职担保书
2015/09/22 职场文书
完美处理python与anaconda环境变量的冲突问题
2021/04/07 Python
MySQL查询日期时间
2022/05/15 MySQL
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers