Javascript仿京东放大镜的效果

 更新时间:2017年03月01日 14:31:43   作者:632855323gjp  
本文主要介绍了Javascript仿京东放大镜效果的实例。具有很好的参考价值,下面跟着小编一起来看下吧

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

话不多说,请看代码:

<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实现的闪烁输入效果

    JavaScript与jQuery实现的闪烁输入效果

    这篇文章主要介绍了JavaScript与jQuery实现的闪烁输入效果,结合实例形式分别分析了JavaScript与jQuery实现闪烁输入效果的方法与具体使用技巧,需要的朋友可以参考下
    2016-02-02
  • js中复制行和删除行的操作实例

    js中复制行和删除行的操作实例

    这篇文章介绍了复制行与删除行在JS中操作的实例,需要的朋友可以参考一下
    2013-06-06
  • 微信小程序icon组件使用详解

    微信小程序icon组件使用详解

    这篇文章主要为大家详细介绍了微信小程序icon组件的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 工作中常用js功能汇总

    工作中常用js功能汇总

    这篇文章主要介绍了一些工作中常用js功能的汇总,帮助大家提高工作效率,加深对js的理解,感兴趣的朋友可以了解下
    2020-11-11
  • JavaScript手写call,apply,bind方法

    JavaScript手写call,apply,bind方法

    这篇文章主要介绍了JavaScript手写call,apply,bind方法,call,bind,apply方法都是JavaScript原生的方法,挂载在Function原型上,使得所有函数都可以调用
    2022-06-06
  • JavaScript 点击页面上的按纽,弹出层,背景变灰

    JavaScript 点击页面上的按纽,弹出层,背景变灰

    点击页面上的按纽,弹出一个层,背景变灰,这样的效果现在网页应用的比较多,这里只是个简单的实现方式
    2010-06-06
  • JS利用ES6和ES5分别实现长整数和字节数组互转

    JS利用ES6和ES5分别实现长整数和字节数组互转

    这篇文章主要为大家详细介绍了长整数与字节数组互转的技术原理,文中提供了ES6(现代浏览器/Node.js)与ES5(兼容旧环境)两套实现方案,需要的可以参考下
    2025-04-04
  • 微信小程序实现下拉加载更多商品

    微信小程序实现下拉加载更多商品

    这篇文章主要为大家详细介绍了微信小程序实现下拉加载更多商品,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • 原生js与jQuery实现简单的tab切换特效对比

    原生js与jQuery实现简单的tab切换特效对比

    这篇文章主要通过原生js与jQuery实现简单的tab切换特效对比介绍了js与jQuery之间的区别,有需要的小伙伴可以参考下。
    2015-07-07
  • JavaScript工具库MyTools详解

    JavaScript工具库MyTools详解

    这篇文章主要为大家详细介绍了JavaScript工具库MyTools的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01

最新评论