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 相关文章推荐
struts2 jquery 打造无限层次的树
Oct 23 Javascript
JavaScript Event学习第十章 一些可替换的事件对
Feb 10 Javascript
location.search在客户端获取Url参数的方法
Jun 08 Javascript
js实现对table动态添加、删除和更新的方法
Feb 10 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
Jun 25 Javascript
微信小程序录音与播放录音功能
Dec 25 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
Oct 25 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
Nov 16 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
Sep 10 Javascript
vue实现评价星星功能
Jun 30 Javascript
JS实现鼠标按下拖拽效果
Jul 23 Javascript
JS如何判断对象是否包含某个属性
Aug 29 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
使用apache模块rewrite_module (转)
2007/02/14 PHP
PHP通用分页类page.php[仿google分页]
2008/08/31 PHP
PHP中使用数组指针函数操作数组示例
2014/11/19 PHP
php截取字符串函数分享
2015/02/02 PHP
php简单实现短网址(短链)还原的方法(测试可用)
2016/05/09 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
PHP APP微信提现接口代码
2018/09/30 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
js鼠标滑过弹出层的定位IE6bug解决办法
2012/12/26 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
全面解析Bootstrap表单使用方法(表单控件)
2015/11/24 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
2018/12/24 Javascript
小程序实现新用户判断并跳转激活的方法
2019/05/20 Javascript
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
vue和iview实现Scroll 数据无限滚动功能
2019/10/31 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
python中defaultdict的用法详解
2017/06/07 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
python 利用toapi库自动生成api
2020/10/19 Python
is_file和file_exists效率比较
2021/03/14 PHP
2014两会学习心得:时代的发展
2014/03/17 职场文书
中国梦主题教育活动总结
2014/05/05 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
求职自我推荐信
2014/06/25 职场文书
乡镇党建工作汇报材料
2014/10/27 职场文书
听证会主持词
2015/07/03 职场文书
2015年国庆节标语大全
2015/07/30 职场文书
2016公司中秋节寄语
2015/12/07 职场文书
Python实现信息轰炸工具(再也不怕说不过别人了)
2021/06/11 Python