文章标题 小咪咪 2022-06-09 13:39 78阅读 0赞 html部分 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>放大镜2</title> <link rel="stylesheet" type="text/css" href="../css/reset.css" /> <link rel="stylesheet" type="text/css" href="../css/放大镜2.css" /> <script type="text/javascript" src="../js/basics.js"></script> <script type="text/javascript" src="../js/放大镜2.js"></script> </head> <body> <div id="box"> <div id="smallImg"> <img src="../img/1_2.jpeg"/> <div class="move-area"></div> </div> <div id="smallImg-logo"> <ul class="clear"> <li> <img src="../img/1_1.jpeg" data-sImg="../img/1_2.jpeg" data-bImg="../img/1_3.jpeg"/> </li> <li> <img src="../img/2_1.jpeg" data-sImg="../img/2_2.jpeg" data-bImg="../img/2_3.jpeg"/> </li> <li> <img src="../img/3_1.jpeg" data-sImg="../img/3_2.jpeg" data-bImg="../img/3_3.jpeg"/> </li> <li> <img src="../img/4_1.jpeg" data-sImg="../img/4_2.jpeg" data-bImg="../img/4_3.jpeg"/> </li> <li> <img src="../img/5_1.jpeg" data-sImg="../img/5_2.jpeg" data-bImg="../img/5_3.jpeg"/> </li> </ul> </div> <div id="bigImg"> <img src="../img/1_3.jpeg" /> </div> </div> </body> </html> css部分 #box{ height: 480px; width: 380px; border: solid 1px #CCCCCC; position: relative; margin: 20px 0 0 20px; } #box #smallImg{ margin:10px; width: 358px; height: 358px; border: solid 1px #CCCCCC; position: relative; } #box .move-area{ background:plum; opacity: 0.3; filter: alpha(opacity = 30); width: 100px; height: 100px; position: absolute; top: 10px; left: 10px; display: none; } #box #smallImg img{ width: 358px; height: 358px; } #box #smallImg-logo{ padding-left: 30px; } #box #smallImg-logo ul li{ float: left; height: 54px; width: 54px; border: solid 1px #CCCCCC; margin-right: 10px; } #box #smallImg-logo ul li img{ height: 54px; width: 54px; } #box #bigImg{ position: absolute; top: 0; right: -550px; height: 500px; width: 500px; border: solid 1px #CCCCCC; overflow: hidden; /*display: none;*/ } #box #bigImg img{ position: absolute; top: 0; left: 0; } js部分 /* * 1、分为三个部分小图、大图、图标 * 2、给小图添加自定义的属性用于保存,小图和大图中的图片来源 * 3、给小图标添加鼠标移入事件,当鼠标移入转换对应的小图和大图 * 4、给小图添加移入事件,显示区域框和大图对应区域框的位置(区域框相对于器包含块定位,改变它的left和top值) * 区域框的left值 = 鼠标事件发生位置pageX - 最外层包含块的offsetLeft的值 - 其直接包含框的offset的值 -区域框宽度的一般,值同理 * 5、大图的图片设置相对于其包含块相对定位,它移动的距离为 -(大图的宽度/小图的宽度)*x,运动方向个区域框的方法相反,所以取负 * 6、区域框的大小设置:小图/大图*40; * * 注意事项: * 1、自己生成的移动狂的大小要取整数 * 2、当鼠标移动框的距离大于包含框的宽度- 移动狂的宽度时,让 移动框的lef值= 包含块的宽度(offsetWidth)- 移动狂的宽度,高度同理 * 有时候可能会收到边框的影响则x/y的值再减去边框长度(或者使用clientWidth则不需要减去边框长度) */ window.onload = function(){ var smallImgLogo = $('smallImg-logo'); var lis1 = smallImgLogo.getElementsByTagName('li'); var smallImgPic = $('smallImg').getElementsByTagName('img')[0]; var bigImgPic = $('bigImg').getElementsByTagName('img')[0]; for(var i = 0;i < lis1.length;i++){ lis1[i].index = i; lis1[i].onmouseover = function(){ this.style.borderColor = 'black'; smallImgPic.src = lis1[this.index].children[0].getAttribute('data-sImg'); bigImgPic.src = lis1[this.index].children[0].getAttribute('data-bImg'); }; lis1[i].onmouseout = function(){ this.style.borderColor = '#ccc'; }; } var moveArea = document.getElementsByClassName('move-area')[0]; var scale = (bigImgPic.offsetWidth)/(smallImgPic.offsetWidth); moveArea.style.width = parseInt(1/scale*300)+'px'; moveArea.style.height = parseInt(1/scale*300)+'px'; var smallImg = $('smallImg'); var bigImg = $('bigImg'); var box = $('box'); smallImg.onmousemove = function(evt){ var e = evt || window.event; moveArea.style.display = 'block'; bigImg.style.display = 'block'; var x = e.pageX - box.offsetLeft - smallImg.offsetLeft - parseInt(moveArea.offsetWidth/2); var y = e.pageY - box.offsetTop - smallImg.offsetTop - parseInt(moveArea.offsetHeight/2); if(x < 0){ x = 0; }else if(x > (smallImg.clientWidth - moveArea.offsetWidth)){ x = smallImg.clientWidth - moveArea.offsetWidth; } if(y < 0){ y = 0; }else if(y > (smallImg.clientHeight - moveArea.offsetHeight)){ y = smallImg.clientHeight - moveArea.offsetHeight; } // console.log(x); moveArea.style.left = x + 'px'; moveArea.style.top = y + 'px'; bigImgPic.style.left = -scale*x + 'px'; bigImgPic.style.top = -scale*y + 'px'; } smallImg.onmouseout = function(){ moveArea.style.display = 'none'; bigImg.style.display = 'none'; } }; ![这里写图片描述][SouthEast] [SouthEast]: /images/20220609/9b190d885f2c4b7ca70b115f6ab9fce6.png
相关 文章标题 \[数据库\]关于 Oracle 11g r2 Enterprise Manager (EM) 在windows环境无法启动的解决办法 在环境变量中添加以下三个变量: O 梦里梦外;/ 2022年07月21日 00:04/ 0 赞/ 35 阅读
相关 文章标题 应用层open,write,read根据打开文件的属性找到对应的硬件或者存储设备驱动。 驱动框架 一、LED驱动框架 (1)、写出len\_open,len\_re ╰+哭是因爲堅強的太久メ/ 2022年07月14日 20:29/ 0 赞/ 28 阅读
相关 文章标题 > 原文: [ASM file number 7][] > 作者: Bane Radulovic > 译者:郭旭瑞,沃趣科技产品交付部经理,负责QData Cloud高 柔光的暖阳◎/ 2022年07月12日 11:26/ 0 赞/ 50 阅读
相关 文章标题 CSDN MarkDown语法写博客 二级标题 介绍内容 分隔线:空行,再加上三个横杠— 三级标题 无序列表项一 (横杠 加空格) 无序列表项一 不念不忘少年蓝@/ 2022年06月15日 09:23/ 0 赞/ 225 阅读
相关 文章标题 html部分 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> 小咪咪/ 2022年06月09日 13:39/ 0 赞/ 79 阅读
相关 文章标题 售票厅 【问题描述】 售票厅出售关于音乐会的票,取代原来的卖一张票的形式,而是一组座号连续的票。售票室已经收到很多预订。每个预订包含指定最小座号的一组连续的票。 售 ╰半夏微凉°/ 2022年06月09日 03:49/ 0 赞/ 258 阅读
相关 文章标题 用AJAX简单实现注册页面的用户名检测 js代码: <script> // 原生的方式使用AJAX // function getXMLHttpRequest( 旧城等待,/ 2022年06月09日 02:49/ 0 赞/ 290 阅读
相关 文章标题 状态模式 状态模式定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 状态模式主要解决的问题是:当控制一个对象状态转换的条件表达式过于复杂时的情 末蓝、/ 2022年06月05日 07:59/ 0 赞/ 294 阅读
相关 文章标题 apache端口被异常占用导致无法启动的解决方法 最近遇到LNMPA一键安装包的Apache无法启动的问题,Apache提示以下信息: (98)Address alre 红太狼/ 2022年06月03日 01:54/ 0 赞/ 277 阅读
相关 文章标题 coding:utf-8 author = “xshengjing” from Tkinter import \ class App: def init(se Myth丶恋晨/ 2021年09月13日 22:56/ 0 赞/ 382 阅读
还没有评论,来说两句吧...