js实现图片放大镜效果

2023-05-16

Mirror预览图

一、HTML文件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
<title>放大镜效果</title>
<link rel="stylesheet" type="text/css" href="css/my.css">
<script type="text/javascript" src="js/jquery-1.3.1.js"></script>
<script type="text/javascript" src="js/my.js"></script>
</head>

<body>
<div id="content1" class="flitrue">
<div id="small_pic1" class="flitrue">
	<span  id="mark1" class="flitrue"></span>
	<span id="block1" class="flitrue"></span>
	<img src="img/11.jpg"/>
</div>
<div id="big_pic1" class="flitrue">
	<img id="pic_img1" class="flitrue" src="img/12.jpg"/>
</div>
</div>
<div id="content2" class="flitrue">
<div id="small_pic2" class="flitrue">
	<span  id="mark2" class="flitrue"></span>
	<span id="block2" class="flitrue"></span>
	<img src="img/21.jpg"/>
</div>
<div id="big_pic2" class="flitrue">
	<img id="pic_img2" class="flitrue" src="img/22.jpg"/>
</div>
</div>
<div id="content3" class="flitrue">
<div id="small_pic3" class="flitrue">
	<span  id="mark3" class="flitrue"></span>
	<span id="block3" class="flitrue"></span>
	<img src="img/31.jpg"/>
</div>
<div id="big_pic3" class="flitrue">
	<img id="pic_img3" class="flitrue" src="img/32.jpg"/>
</div>
</div>
</body>
</html>
二、CSS样式

#content1{
	height:400px;width:200px;border:1px solid #ccc;padding:10px;margin:10px;
	position:relative;overflow: hidden;float:left;
}
#small_pic1,#small_pic2,#small_pic3{
	height:200px;width: 200px;margin:0px auto;position:relative;overflow:hidden;
}
#content2 {
	height:400px;width:200px;border:1px solid #ccc;padding:10px;margin:10px;
	position:relative;overflow: hidden;float:left;
}
#content3{
	height:400px;width:200px;border:1px solid #ccc;padding:10px;margin:10px;
	position:relative;overflow: hidden;float:left;
}
#small_pic1 img,#small_pic2 img,#small_pic3 img{
	margin:0px auto;
}
#big_pic1 img,#big_pic2 img,#big_pic3 img{
	position: absolute;
}
#mark1,#mark2,#mark3{
	width:100%; height:100%; position:absolute; z-index:2; left:0px; top:0px; 
	background:red; filter:alpha(opacity:0); opacity:0;
}
#block1,#block2,#block3{ 
	width: 50px; height: 50px; border: 1px solid #000; background: #fff; 
	filter: alpha(opacity: 30); opacity: 0.3; position: absolute; top: 0; left: 0; display:none; 
}
#big_pic1,#big_pic2,#big_pic3{ height:199px;width: 199px;top: 210px; margin:0px auto;
position: absolute;overflow:hidden; border:1px solid #CCC; display: none;
}
三、js文件

	/**
	*
	*/
function setClass(){
	var arr=[];
	var i=0;
	var flitrue=[];
	arr=$('.flitrue');
	for(i=0;i<arr.length;i++){
		flitrue.push(arr[i]);
	}
	/**
	*frist image
	*/
	flitrue[2].οnmοuseοver=function(){
		flitrue[4].style.display='block';
		flitrue[3].style.display='block';
	}
	flitrue[2].οnmοuseοut=function(){
		flitrue[4].style.display='none';
		flitrue[3].style.display='none';
	}
	flitrue[2].οnmοusemοve=function(event){
		var e=event;
		var left=e.offsetX-flitrue[3].offsetWidth/2;
		var top=e.offsetY-flitrue[3].offsetHeight/2;
		
		if(left<0){
			left=0;
		}else if(left>flitrue[2].offsetWidth-flitrue[3].offsetWidth){
			left=flitrue[2].offsetWidth-flitrue[3].offsetWidth;
		};
		if(top<0){
			top=0;
		}else if(top>flitrue[2].offsetHeight-flitrue[3].offsetHeight){
			top=flitrue[2].offsetHeight-flitrue[3].offsetHeight;
		};
		
		flitrue[3].style.top=top+'px';
		flitrue[3].style.left=left+'px';
		//大图的显示比例percentX percentY
		var percentX=left/(flitrue[2].offsetWidth-flitrue[3].offsetWidth);
		var percentY=top/(flitrue[2].offsetHeight-flitrue[3].offsetHeight);

		flitrue[5].style.left=-percentX*(flitrue[5].offsetWidth-flitrue[4].offsetWidth)+'px';
		flitrue[5].style.top=-percentY*(flitrue[5].offsetHeight-flitrue[4].offsetHeight)+'px';
		
	};
	/**
	*second image
	*/
	var array=[];
	//array=$('.flitrue').find('.flitrue');//find 只能获得除父标签以外的子标签
	array=$('.flitrue');
	var content2=array[6];
	var small_pic2=array[7];
	var mark2=array[8];
	var block2=array[9];
	var big_pic2=array[10];
	var big_img2=array[11];
	
	mark2.οnmοuseοver=function(){
		big_pic2.style.display='block';
		block2.style.display='block';
	}
	mark2.οnmοuseοut=function(){
		big_pic2.style.display='none';
		block2.style.display='none';
	}
	mark2.οnmοusemοve=function(event){
		var e=event;
		var left=e.clientX-content2.offsetLeft-block2.offsetWidth/2;
		var top=e.clientY-content2.offsetTop-block2.offsetHeight/2;
		
		if(left<0){
			left=0;
		}else if(left>mark2.offsetWidth-block2.offsetWidth){
			left=mark2.offsetWidth-block2.offsetWidth;
		};
		if(top<0){
			top=0;
		}else if(top>mark2.offsetHeight-block2.offsetHeight){
			top=mark2.offsetHeight-block2.offsetHeight;
		};
		
		block2.style.top=top+'px';
		block2.style.left=left+'px';
		//大图的显示比例percentX percentY
		var percentX=left/(mark2.offsetWidth-block2.offsetWidth);
		var percentY=top/(mark2.offsetHeight-block2.offsetHeight);
		big_img2.style.left=-percentX*(big_img2.offsetWidth-big_pic2.offsetWidth)+'px';
		big_img2.style.top=-percentY*(big_img2.offsetHeight-big_pic2.offsetHeight)+'px';
		
	};
	/**
	*third image
	*/
	var content3=array[12];
	var small_pic3=array[13];
	var mark3=array[14];
	var block3=array[15];
	var big_pic3=array[16];
	var big_img3=array[17];
	
	mark3.οnmοuseοver=function(){
		big_pic3.style.display='block';
		block3.style.display='block';
	}
	mark3.οnmοuseοut=function(){
		big_pic3.style.display='none';
		block3.style.display='none';
	}
	mark3.οnmοusemοve=function(event){
		var e=event;
		var left=e.clientX-content3.offsetLeft-block3.offsetWidth/2;
		var top=e.clientY-content3.offsetTop-block3.offsetHeight/2;
		
		if(left<0){
			left=0;
		}else if(left>mark3.offsetWidth-block3.offsetWidth){
			left=mark3.offsetWidth-block3.offsetWidth;
		};
		if(top<0){
			top=0;
		}else if(top>mark3.offsetHeight-block3.offsetHeight){
			top=mark3.offsetHeight-block3.offsetHeight;
		};
		
		block3.style.top=top+'px';
		block3.style.left=left+'px';
		//大图的显示比例percentX percentY
		var percentX=left/(mark3.offsetWidth-block3.offsetWidth);
		var percentY=top/(mark3.offsetHeight-block3.offsetHeight);
		big_img3.style.left=-percentX*(big_img3.offsetWidth-big_pic3.offsetWidth)+'px';
		big_img3.style.top=-percentY*(big_img3.offsetHeight-big_pic3.offsetHeight)+'px';
		
	};
}
/**
*主入口
*/
window.οnlοad=function(){
	setClass();
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js实现图片放大镜效果 的相关文章

  • 常见外贸英文术语(下)

    很多从事外贸行业的人都会用Skype IntBell AntTone等网络电话和客户沟通 xff0c 但是有时候会因为一些外贸行业的专业英文术语闹出笑话 今天就让我们来总结一些外贸常见英文术语 xff0c 让你和客户沟通更加顺畅 xff01
  • Phpstorm2018 使用破解补丁永久激活

    1 安装phpstorm xff0c 安装包请自行官网下载 http www jetbrains com phpstorm download 2 下载JetbrainsCrack jar文件 xff0c 存放至你的phpstorm执行文件同
  • va_start 与 va_end用法

    1 包含头文件 include lt stdarg h gt 2 使用方法 参考 http www cnblogs com hanyonglu archive 2011 05 07 2039916 html include lt stdio
  • jetson-sd卡制作(批量烧写)

    jetson系列如果使用sd卡开发 xff0c 开发完成后可以不用重新制作根文件系统 拷贝目前的SD卡即可实现批量烧写 一 开发好的SD卡制作img文件 1 将sd卡插到PC端 xff0c 查看sd卡设备 eg dev sdd fdisk
  • 结构体知识点

    结构体的结构如下 xff1a span class token comment 关键字struct是数据类型说明符 xff0c 指出下面说明的是结构体类型 span span class token keyword struct span
  • SurfaceView 的一般绘制View用法(一)

    前段时间写了不少关于自定义View相关的文章 xff0c 最近两个项目同时开工 xff0c 忙成狗了 xff0c 这不是不写博客的理由哈 xff0c 今晚写一篇关于SurfaceView相关的博客 xff0c 还是和以前一样 xff0c 今
  • WorkerMan实现Web通讯(使用Vue实现前端页面逻辑)

    需要使用到的扩展 https github com tangbc vue virtual scroll list 最终效果 对话框 主页面 Main vue lt template gt lt div gt lt chat message
  • [VS][原创]vs2019新建项目提示未正确加载nvdapackage包

    第一步 xff1a 确认cuda 43 cudnn以及驱动程序都安装了 第二步 xff1a 从win11菜单栏搜索打开Developer Command Prompt for VS 2019 xff0c 注意要以管理员身份运行 xff0c
  • 2016年linux c程序员和初学者不得错过的精品图书18册

    1 图书名称 零点起飞学Linux C编程 图书信息 陈冠军 清华大学出版社 2013 09 01 2 图书名称 Linux C从入门到精通 图书信息 明日科 清华大学出版社 2012 12 01 3 图书名称 Linux C编程一站式学习
  • 面试造飞机系列:看架构师如何设计微服务接口

    来源 后端技术学堂 责编 Carol 封图 CSDN下载于视觉中国 在微服务设计中 xff0c 服务间接口通信设计常见的有两种方式 xff1a RPC 和 REST xff0c 关于微服务和 RPC 的更多细节 xff0c 可以参考我上一篇
  • C++ 数组(vector)常用操作总结

    目录 1 vector对象的定义和初始化方式 2 vector 常用基础操作 3 使用迭代器的遍历 插入 删除操作 4 vector 元素的重排操作 xff08 排序 逆序等 xff09 5 vector 中找最值 6 改变vector大小
  • ROS 节点初始化步骤、topic/service创建及使用

    目录 1 节点初始化步骤 2 service 创建及使用 3 topic创建及使用 4 框架总结 这是一个总结复盘的记录 1 节点初始化步骤 在 mian 函数中使用 ros init 初始化节点 xff0c 注册节点名 xff0c 这里注
  • Docker+xrdp+understand

    创建容器 我使用的是Ubuntu18 04的镜像 xff0c 注意把3389端口映射出来 docker run it name understand p 3399 3389 ubuntu 18 04 安装xrdp协议 span class
  • 如何下载Amazon页面产品视频

    step1 右键 查看网页源码 step2 ctrl 43 f查找 MP4 step3 xff1a 复制相关URL
  • 高速信号参考GND平面和VCC平面,会带来不同的回路阻抗,影响信号质量

    1 1参考平面作用 参考平面的作用之一是就是给信号提供回流路径 xff0c 对于信号来说 xff0c 不管任何网络的铜平面都可以作为参考平面 选择GND作为参考平面与其他网络的区别在于 xff0c 使用其他网络提供回流路径时 xff0c 网
  • 如何理解防抖debounce和节流throttle

    本人通过阅读网络上防抖和节流多篇相关的文章 xff0c 并借鉴相关案例进行说明 防抖 防抖就像人眨眼睛一样 xff0c 不可能不停的眨 xff0c 每隔一定时间眨一下 xff0c 防止眼睛干涩 xff0c 如果不停眨眼 xff0c 别人以为
  • 1024快乐!浅谈scrollTop需要踩的坑

    开始之前 xff0c 需要分清楚scrollTo和scrollTop 坑one 1 设置浏览器scrollTop 最好通过用户操作设置滚动 xff0c 或者setTimeout延时滚动 span class token comment Ch
  • 如何写出高效的 Vue 代码

    开讲之前我先简单的自我介绍一下 xff0c 本人自喻 xff1a flitrue xff0c 工作三年有余 xff0c 在一家不知名的互联网企业担任前端架构师之职 技术选型问题 近几年前端发展快速 xff0c 很多同学抱怨学不动了 xff0
  • 深入了解Object.freeze()和Object.seal()

    目录 Object freeze Object seal 对比Object freeze 和Object seal 拓展Object preventExtensions Object freeze 官方MDN对Object freeze 的
  • gulp和webpack的区别

    基本区别 xff1a gulp可以进行js xff0c htm xff0c css xff0c img的压缩打包 xff0c 是自动化构建工具 xff0c 可以将多个js文件或是css压缩成一个文件 xff0c 并且可以压缩为一行 xff0

随机推荐

  • require和import的区别?exports和module.exports的区别?export和export default的区别?

    CommonJs模块是运行时加载 xff0c ES6模块是编译时输出接口 require是commonjs规范中导入模块的语法 xff1b import是ES6规范中导入模块的语法 xff1b require支持动态导入 xff1b imp
  • nodejs中的EventLoop

    span class token operator gt span timers span class token operator lt span 执行 span class token function setTimeout span
  • https加解密流程图

  • 算法题:两个有序数组合并(最优解)

    合并两个有序数组最优解 时间复杂度 O n 空间复杂度 O n span class token comment 正向 span span class token keyword var span span class token func
  • linux 查看设备挂载信息

    系统 uname a 查看内核 操作系统 CPU信息 head n 1 etc issue 查看操作系统版本 cat proc cpuinfo 查看CPU信息 hostname 查看计算机名 lspci tv 列出所有PCI设备 lsusb
  • 什么是高阶函数和纯函数?

    高阶函数是一个接收函数作为参数或将函数作为输出返回的函数 纯函数的三个条件 xff1a 给定输入 xff0c 无论什么时候调用 xff0c 无论调用多少次 xff0c 输出总是确定无疑的 xff1b 在函数内部不可以改变函数外部对象的状态
  • Pre-commit:如何使用 husky、lint-staged和prettier优化你的项目

    在软件开发过程中 xff0c 代码风格检查 xff08 Code Linting xff09 是保障代码规范和一致性的有效手段 过去 xff0c Lint 的工作一般在 Code Review 或者 CI 的时候进行 xff0c 但这样会导
  • 2020: Vue和React生命周期

    Vue 生命周期 vue2有9个生命周期钩子 vue3也有9个生命周期钩子 2 x和3 x钩子的对应关系 xff1a beforeCreate gt 使用 setup created gt 使用 setup beforeMount gt o
  • ESLint常用规范

    off or 0 关闭规则 warn or 1 将规则视为一个警告 xff08 不会影响退出码 xff09 error or 2 将规则视为一个错误 退出码为1 span class token string 34 no console 3
  • 重写audio元素样式

    span class token selector audio span span class token punctuation span span class token property display span span class
  • git clone --mirror -q git://github.com/adobe-webplatform/eve.git

    解决办法 xff1a git全局添加一个属性 git config global url 34 https 34 insteadOf git 然后 xff0c 重新npm install
  • 理解npm包管理机制

    推荐文章 https segmentfault com q 1010000004114972 ea 61 496109 https blog csdn net azl397985856 article details 103982369
  • 面试题:使用promise实现并发请求限制(最优解)

    问题 xff1a 有 8 个图片资源的 url xff0c 已经存储在数组 urls 中 xff0c 而且已经有一个函数 function loadImg xff0c 输入一个 url 链接 xff0c 返回一个 Promise xff0c
  • PHP关于VC11,VC9,VC6以及Thread Safe和Non Thread Safe版本选择的问题

    从PHP5 2 10版本开始 xff08 现在有PHP5 2 10和5 3两个版本 xff09 xff0c 有None Thread Safe与Thread Safe两种版本的可供选择 xff0c 这两种版本有何不同 xff0c 作为使用者
  • apache下载安装配置

    最近从apache官网上下载了apache最新版本的压缩包httpd 2 4 18 x64 vc11 r3 zip xff0c 解压以后用cmd命令安装了好长时间都没有安装上 xff0c 在网上找各种解决方法 xff0c 都不靠谱 xff0
  • ubuntun无法安装 libsdl2-dev

    sudo apt get install libsdl2 dev Reading package lists Done Building dependency tree Reading state information Done Some
  • PHPCrawler抓取酷狗精选集歌单

    一 PHPCrawler的介绍与安装 先了解一下什么是抓取 xff1f 抓取就是网络爬虫 xff0c 也就是人们常说的网络蜘蛛 xff08 spider xff09 是搜索引擎的一个重要组成部分 xff0c 按照一定的逻辑和算法抓取和下载互
  • 跨站脚本攻击XSS

    跨站脚本攻击 Cross Site Script为了区别于CSS简称为XSS 指的是恶意攻击者往Web页面里插入恶意html代码 xff0c 当用户浏览该页之时 xff0c 嵌入其中Web里面的html代码会被执行 xff0c 从而达到恶意
  • RedHat系统下安装yum

    一 前言 因为RedHat系统下的软件更新是RedHat公司的一项服务 xff0c 必须用钱买的rhel系统 xff0c 并且注册了RedHat的用户才能使用yum xff0c 要想免费使用yum xff0c 必须卸载原来的yum xff0
  • js实现图片放大镜效果

    一 HTML文件 lt DOCTYPE html PUBLIC 34 W3C DTD XHTML 1 0 Transitional EN 34 34 http www w3 org TR xhtml1 DTD xhtml1 transiti