JS实现放大镜效果


Posted in Javascript onSeptember 21, 2020

JS实现放大镜效果,供大家参考,具体内容如下

鼠标移到图片上就可以放大一块区域

代码:

<!DOCTYPE html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
   #small{
    width: 700px;
    height: 340px;
    position: absolute;
    left: 70px;
    top: 100px;
   }
   #small img{
    width: 100%;
    height: 100%;
   }
   #mark{
    width: 200px;
    height: 200px;
    background-color:white;
    position: absolute;
    opacity: 0.5;
    filter: alpha(opacity=50);
    left: 0px;
    top: 0px;
    display: none;
   }
   #big{
    width: 400px;
    height: 400px;
    border: 1px solid black;
    left: 800px;
    top: 100px;
    position: absolute;
    overflow: hidden;
    display: none;
   }
   #big img{
    width: 1400px;
    height: 680px;
    position: absolute;
    left: 0px;
    top: 0px;
   }
  </style>
  <script>
   window.onload = function(){
    var oSmall = document.getElementById("small");
    var oBig = document.getElementById("big");
    var oMark = document.getElementById("mark");
    var oBigImg = oBig.getElementsByTagName("img")[0];

    oSmall.onmouseover = function(){
     oMark.style.display = "block";
     oBig.style.display = "block";
    }
    oSmall.onmouseout = function(){
     oMark.style.display = "none";
     oBig.style.display = "none";
    }
    oSmall.onmousemove = function(ev){
     var e = ev || window.event;
     var l = e.clientX - oSmall.offsetLeft - 100;
     if(l <= 0){
      l = 0;
     }
     if(l >= (700-200)){
      l = 500;
     }
     var t = e.clientY - oSmall.offsetTop - 100;
     if(t <= 0){
      t = 0;
     }
     if(t >= (340-200)){
      t = 140;
     }
     oMark.style.left = l + 'px';
     oMark.style.top = t + 'px';

     /* 右边图片移动方向与左边图片方向相反且成倍数移动 */
     oBigImg.style.left = l * -2 + 'px';
     oBigImg.style.top = t * -2 + 'px';

    }
   }
  </script>
 </head>
 <body>
  <div id="small">
   <img src="地狱之门卫士 加里奥.jpg" alt="怎么回事">
   <div id="mark"></div>
  </div>
  <div id="big">
   <img src="地狱之门卫士 加里奥.jpg" alt="怎么回事">
  </div>
 </body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript动态创建及删除元素的方法
Dec 22 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
Mar 01 Javascript
js中不同的height, top的区别对比
Sep 24 Javascript
AngularJS实现页面定时刷新
Mar 14 Javascript
详解vue axios中文文档
Sep 12 Javascript
Node 升级到最新稳定版的方法分享
May 17 Javascript
angularJS开发注意事项
May 26 Javascript
layui的table单击行勾选checkbox功能方法
Aug 14 Javascript
vue-quill-editor富文本编辑器简单使用方法
Sep 21 Javascript
微信小程序自定义弹窗wcPop插件
Nov 19 Javascript
vue + element-ui的分页问题实现
Dec 17 Javascript
layui-table表复选框勾选的所有行数据获取的例子
Sep 13 Javascript
vue element ui validate 主动触发错误提示操作
Sep 21 #Javascript
Vue Element校验validate的实例
Sep 21 #Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
Sep 21 #Javascript
vue3.0 上手体验
Sep 21 #Javascript
微信小程序实现点击页面出现文字
Sep 21 #Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
Sep 21 #Javascript
理解JavaScript中的Proxy 与 Reflection API
Sep 21 #Javascript
You might like
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
thinkPHP5框架路由常用知识点汇总
2019/09/15 PHP
IE无法设置短域名下Cookie
2010/09/23 Javascript
Notify - 基于jquery的消息通知插件
2011/10/18 Javascript
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
python通过线程实现定时器timer的方法
2015/03/16 Python
Python进程通信之匿名管道实例讲解
2015/04/11 Python
举例讲解Python中装饰器的用法
2015/04/27 Python
python中print的不换行即时输出的快速解决方法
2016/07/20 Python
利用Python爬取可用的代理IP
2016/08/18 Python
python实现装饰器、描述符
2018/02/28 Python
python实现图片文件批量重命名
2020/03/23 Python
python中计算一个列表中连续相同的元素个数方法
2018/06/29 Python
pandas 根据列的值选取所有行的示例
2018/11/07 Python
python3 深浅copy对比详解
2019/08/12 Python
Python数据可视化:饼状图的实例讲解
2019/12/07 Python
Python函数式编程实例详解
2020/01/17 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
Hotter Shoes英国官网:英伦风格,舒适的鞋子
2017/12/28 全球购物
美国珠宝店:Helzberg Diamonds
2018/10/24 全球购物
为数据库创建索引都需要注意些什么
2012/07/17 面试题
远东集团网络工程师面试题
2014/10/20 面试题
临床医学大学生求职信
2013/09/28 职场文书
2014婚礼司仪主持词
2014/03/14 职场文书
益达广告词
2014/03/14 职场文书
2015年学校德育工作总结
2015/04/22 职场文书
商务信函英语问候语
2015/11/10 职场文书