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框架的AJAX实例代码
Nov 03 Javascript
JavaScript Perfection kill 测试及答案
Mar 23 Javascript
JQuery入门——事件切换之hover()方法应用介绍
Feb 05 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
Jun 08 Javascript
简单分析javascript面向对象与原型
May 21 Javascript
简单实现Bootstrap标签页
Aug 09 Javascript
原生js实现放大镜效果
Jan 11 Javascript
微信小程序简单实现form表单获取输入数据功能示例
Nov 30 Javascript
Vue异步组件处理路由组件加载状态的解决方案
Sep 07 Javascript
TypeScript基础入门教程之三重斜线指令详解
Oct 22 Javascript
小程序实现搜索界面 小程序实现推荐搜索列表效果
May 18 Javascript
关于angular引入ng-zorro的问题浅析
Sep 09 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 不使用js实现页面跳转
2014/02/11 PHP
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
基于jQuery实现表单提交验证
2014/11/24 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
jquery带下拉菜单和焦点图代码分享
2015/08/24 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
JScript实现地址选择功能
2017/08/15 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
JavaScript中Object基础内部方法图
2018/02/05 Javascript
vue input输入框模糊查询的示例代码
2018/05/22 Javascript
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
2020/11/10 Javascript
使用Python的判断语句模拟三目运算
2015/04/24 Python
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
python连接数据库的方法
2017/10/19 Python
python多线程同步实例教程
2019/08/11 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
Pyecharts绘制全球流向图的示例代码
2020/01/08 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
利用HTML5的新特点实现图片文件异步上传
2014/05/29 HTML / CSS
计算机开发个人求职信范文
2013/09/26 职场文书
大三自我鉴定范文
2013/10/05 职场文书
大学毕业生个人自荐信范文
2014/01/08 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
建设幸福中国演讲稿
2014/09/11 职场文书
大学生学生会工作总结2015
2015/05/26 职场文书
收入证明怎么写
2015/06/12 职场文书
天气温馨提示语
2015/07/14 职场文书