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 相关文章推荐
限制复选框的最大可选数
Jul 01 Javascript
Javascript的各种节点操作实例演示代码
Jun 27 Javascript
浅析js预加载/延迟加载
Sep 25 Javascript
AngularJS 2.0入门权威指南
Oct 08 Javascript
Bootstrap选项卡动态切换效果
Nov 28 Javascript
Vue.js系列之vue-router(上)(3)
Jan 03 Javascript
AngularJS实现表单元素值绑定操作示例
Oct 11 Javascript
实例详解Node.js 函数
Jun 10 Javascript
vue swipe自定义组件实现轮播效果
Jul 03 Javascript
初学vue出现空格警告的原因及其解决方案
Oct 31 Javascript
JS实现导航栏楼层特效
Jan 01 Javascript
vue实现简单全选和反选功能
Sep 15 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获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
php实现36进制与10进制转换功能示例
2017/01/10 PHP
PHP学习记录之常用的魔术常量详解
2019/12/12 PHP
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
js实现表单Radio切换效果的方法
2015/08/17 Javascript
javascript的正则匹配方法学习
2016/02/24 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
一个炫酷的Bootstrap导航菜单
2016/12/28 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
js获取ip和地区
2017/03/10 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
微信小程序实现弹出菜单
2018/07/19 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
2020/11/24 Javascript
[01:15:44]首部DOTA2纪录片今日23时全网上映
2014/03/19 DOTA
[00:48]DOTA2国际邀请赛公开赛报名开始 扫码开启逐梦之旅
2018/06/06 DOTA
Python为何不能用可变对象作为默认参数的值
2019/07/01 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
使用Python实现微信拍一拍功能的思路代码
2020/07/09 Python
实例讲解CSS3中的border-radius属性
2015/08/18 HTML / CSS
大学生创业计划书的范文
2014/01/07 职场文书
幼儿园师德演讲稿
2014/05/06 职场文书
工厂搬迁方案
2014/05/11 职场文书
离婚财产分隔协议书
2014/10/23 职场文书
2014年财政所工作总结
2014/11/22 职场文书
联谊活动总结范文
2015/05/09 职场文书
Python turtle实现贪吃蛇游戏
2021/06/18 Python
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA
Python字符串常规操作小结
2022/04/03 Python