方法一

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Document</title>
  6. <style>
  7. *{
  8. margin:0;
  9. padding: 0;
  10. }
  11. .box{
  12. width: 400px;
  13. height: 250px;
  14. }
  15. .box0{
  16. position: absolute;
  17. width: 100px;
  18. height: 100px;
  19. background:rgba(255,255,0,.4);
  20. }
  21. img{
  22. width: 400px;
  23. height: 250px;
  24. }
  25. .box1{
  26. position: absolute;
  27. left: 450px;
  28. top:10px;
  29. width: 200px;
  30. height:200px;
  31. overflow: hidden;
  32. }
  33. .box1 img{
  34. width: 800px;
  35. height: 500px;
  36. position: absolute;
  37. }
  38. </style>
  39. </head>
  40. <body>
  41. <div class="box" id="box">
  42. <!--遮罩-->
  43. <div class="box0" id="box0" style="display:none"></div>
  44. <img src="./images/0.jpg" alt="">
  45. </div><!--左边盒子-->
  46. <div class="box1">
  47. <img src="./images/0.jpg" alt="" id="rightImg" style="display:none">
  48. </div><!--右边盒子-->
  49. </body>
  50. </html>
  51. <script>
  52. var box =document.getElementById("box");
  53. var box0=document.getElementById("box0");
  54. var rightImg=document.querySelector("#rightImg")
  55. box.onmouseover=function(){
  56. box0.style.display="block";
  57. rightImg.style.display="block";
  58. //鼠标移动
  59. box.onmousemove=function(ev){
  60. var e = ev||window.event;
  61. box0.style.left=(e.clientX-50)+"px";
  62. box0.style.top=(e.clientY-50)+"px";
  63. if(box0.offsetLeft<0){
  64. box0.style.left=0+"px";
  65. }
  66. if(box0.offsetLeft>300){
  67. box0.style.left=300+"px";
  68. }
  69. if(box0.offsetTop<0){
  70. box0.style.top=0+"px";
  71. }
  72. if(box0.offsetTop>150){
  73. box0.style.top=150+"px";
  74. }
  75. rightImg.style.left=(-2*(parseInt(box0.style.left)))+"px";
  76. rightImg.style.top=(-2*(parseInt(box0.style.top)))+"px";
  77. }
  78. box0.onmouseout=function(){
  79. box0.style.display="none";
  80. rightImg.style.display="none";
  81. }
  82. }
  83. </script>

方法二

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>放大镜</title>
  6. <style>
  7. #zoom{
  8. position: relative;
  9. width:480px;
  10. height:270px;
  11. border:1px solid #ccc;
  12. cursor:crosshair;
  13. }
  14. #zoomJing{
  15. position: absolute;
  16. display:none;
  17. width:100px;
  18. height:100px;
  19. left:0;
  20. top:0;
  21. background-color:orange;
  22. opacity:.5;
  23. filter:alpha(opacity=50);
  24. }
  25. #bigZoom{
  26. position: absolute;
  27. width:400px;
  28. height:400px;
  29. overflow:hidden;
  30. display:none;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <div id="zoom">
  36. <img src="./images/Meinv014.jpg" alt="" width="480" height="270">
  37. <div id="zoomJing"></div>
  38. </div>
  39. <div id="bigZoom">
  40. <img src="./images/Meinv014.jpg" alt="">
  41. </div>
  42. <script>
  43. var zoom = document.getElementById("zoom");
  44. var bigZoom = document.getElementById("bigZoom");
  45. var zoomJing = document.getElementById("zoomJing");
  46. //绑定事件 鼠标
  47. zoom.onmouseover = function(){
  48. //显示bigZoom
  49. bigZoom.style.display = "block";
  50. zoomJing.style.display = "block";
  51. //确定bigZoom的位置
  52. bigZoom.style.left = zoom.getBoundingClientRect().right + 10 + "px";
  53. bigZoom.style.top = zoom.getBoundingClientRect().top + "px";
  54. // 鼠标移动事件
  55. this.onmousemove = function(ev){
  56. //计算 鼠标在zoom上的坐标
  57. var e = ev || window.event;
  58. var x = e.clientX - this.getBoundingClientRect().left;
  59. var y = e.clientY - this.getBoundingClientRect().top;
  60. //计算zoomJing的位置
  61. var zX = Math.min(Math.max(x - 50, 0), 380);
  62. var zY = Math.min(Math.max(y - 50, 0), 170);
  63. //确定zoomJing的位置
  64. zoomJing.style.left = zX + "px";
  65. zoomJing.style.top = zY + "px";
  66. //改变放大图
  67. bigZoom.scrollLeft = zX * 4;
  68. bigZoom.scrollTop = zY * 4;
  69. }
  70. }
  71. zoom.onmouseout = function(){
  72. zoomJing.style.display = "none";
  73. bigZoom.style.display = "none";
  74. }
  75. </script>
  76. </body>
  77. </html>

Javascript制作放大镜的更多相关文章

  1. [原创] JavaScript 图片放大镜插件 enlarge.js 以及移动版 enlarge.touch.js

    拖拖拉拉准本了一个月,终于把网站做好了.也终于可以分享这两个插件了.这两个插件,一个是 jQuery 版本,适合鼠标使用的,另一个是原生 JavaScript 制作,适合触摸屏使用(touch 事件) ...

  2. 如何用iframe标签以及Javascript制作时钟?

    如何利用iframe标签以及Javascript制作时钟? 如何制作一个时钟呢?效果如下图所示: 这里的时钟会不停的走,但是下面的页面是不会变得,这样就实现了我们想要的效果了.下面我将分为以下几个方面 ...

  3. JavaScript之放大镜效果2

    在放大图片效果的同时,我们怎么原图和放大窗体增加间隔呢? 我们只需应用一个table就行了: 源码上: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML ...

  4. JavaScript之放大镜效果

    在网上也浏览过许多关于JavaScript放大镜效果的文章,有的代码解释得些隐晦难懂,看的我头有点晕晕的╮(╯﹏╰)╭,我的心情是这样的: 吐槽完了,我们动动小鼠标,当鼠标经过下面这张美女图片时就实现 ...

  5. jQuery插件-jgcharts实现Javascript制作Google Charts

    from:http://www.zz68.net/program/Ajax/2010/0415/1992.html jgcharts是一个基于jQuery的非常经典的Google Charts图表制作 ...

  6. javascript图片放大镜效果展示

    javascript图片放大镜效果展示 <!DOCTYPE html> <html> <head lang="en"> <meta cha ...

  7. 使用JavaScript制作一个好看的轮播图

    目录 使用JavaScript制作出好看的轮播图效果 准备材料 1.图片若干张(包括轮播图和按钮的图片) 2.将按钮的图片应用到按钮上的CSS样式文件 3.实现轮播和点击跳转的JavaScript代码 ...

  8. 【JavaScript】放大镜效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. JavaScript制作时钟特效

    需求说明:制作显示年.月.日.星期几并且显示上午(AM)和下午(PM)的 12进制的时钟,具体效果如下所示: 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C// ...

随机推荐

  1. [USACO19JAN]Cow Poetry

    题面 Solution: 这是一道很好的dp题. 一开始看不懂题面没有一点思路,看了好久题解才看懂题目... \(y[i]\) 为第 \(i\) 个词结尾,\(l[i]\) 为第 \(i\) 个词长度 ...

  2. URAL 1736 Chinese Hockey(网络最大流)

    Description Sergey and Denis closely followed the Chinese Football Championship, which has just come ...

  3. 团队作业4——第一次项目冲刺(Alpha版本)-第二篇

    项目冲刺——第二阶段 度过了敏捷冲刺,各个成员积极汇报各自的工作.好了,着手下一步规划! Mission 团队成员 任务 郭达  实现PHP后台的答题判分查看正确率 刘德培  编写博客 石浩洋  实现 ...

  4. pta指针作业

    #PTA实验作业 6-1 本题pta提交列表 设计思路 本题是一道简单的指针程序题,两个数已经分别被指针定义,只要把用其指针把二者加在一起和减去即可 调试过程 本题无调试过程 代码截图 6-2  1. ...

  5. [剑指Offer] 29.最小的K个数

    [思路1]全排序(快排)之后取出前K个数.O(K+nlogn) class Solution { public: vector<int> GetLeastNumbers_Solution( ...

  6. Delphi 7学习开发控件(续)

    继上次我们学习开发一个简单的画线控件后,基本的制作控件步骤已经清楚了,这次我们继续加深学习控件的制作.我们打开Delphi 7创建一个应用程序,拖动LineTo控件到窗体上,仔细看左边的对象设计器,可 ...

  7. 日期时间选择器datetimepicker.js

    在做项目中,往往会遇到需要用户输入2014-07-19 09:55:53这样的格式的数据.就是典型的年月日时分秒这样的格式.这个时候,使用datetimepicker会比较简单. DateTimePi ...

  8. hdu 1286 找新朋友 (欧拉函数)

    找新朋友 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  9. P2124 奶牛美容

    题目描述 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 6 16 ................ ..XXXX....XXX... ...XXXX....XX... .XXXX ...

  10. [LOJ#2553][CTSC2018]暴力写挂

    [LOJ#2553][CTSC2018]暴力写挂 试题描述 temporaryDO 是一个很菜的 OIer .在 4 月,他在省队选拔赛的考场上见到了<林克卡特树>一题,其中 \(k = ...