实现鼠标经过,产品图片的局部放大功能

鼠标滑过显示图片大图效果 描述: 当用户将鼠标放到 图片上时,显示图片的大图。 效果图: 说明: 用到了mouseover、mouseout、mousemove三个事件,分别表示鼠标滑过图片、鼠标移除图片、鼠标在图片上移动三个事件。 对于mouserover事件,做以下几件事: 获取原标题,并将标题置为空,防止title和提示框同时出现。 创建提示框对象,并将图片地址和title放入其中显示。 设置 阅读详情

vue中实例:操作dom实现

参考:https://blog.youkuaiyun.com/alightman/article/details/78074687

注意点:

1、小图、放大图、高亮区域之间的定位以及结构。

2、鼠标事件绑定在小图和高亮的父元素上。

3、使用mouseenter和mouseleave事件,不使用mouseover和mouseout事件;

区别:当绑定事件的元素里面有子元素的时候,鼠标经过绑定mouseover的当前元素以及它里面的子元素的时候,都会触发,而经过绑定mouseenter的元素时,只会在鼠标刚进入被绑定的元素时触发,当进入其子元素的时候,是不会再触发的了。(触发多次,触发一次的区别)。

4、使用mousemove移动事件 ,事件元素获取位置信息(event.xxx);参考(https://blog.youkuaiyun.com/lzding/article/details/45437707?ticket=ST-335959-Ae5cseJGZEaNAOaq5CC7-passport.youkuaiyun.com);

获取的元素获取位置信息(元素对象.offsetWidth;元素对象.offsetLeft等等)

5、图片等比例缩放(高亮区域宽高/小图区域高宽  = 大图区域宽高/原图宽高)

html:

                                <div class="summary" ref="box">
					<div class="gallery">
						<div class="main-img">
							<div id="box"> 
								<div @mouseenter="mouseEnter" @mouseleave="mouseLeave" @mousemove="mouseMove">
									<!-- <img :src="mainImg" alt="主图">	 -->
									<img id="small" src="../assets/images/intent/11.jpg" alt="主图" ref="smallBox">		
									<b id="shadow" ref="shadowBox"></b>																	
								</div>
								<div id="showDetails" ref="showDetailsBox">
									<img src="../assets/images/intent/11.jpg" alt="放大图">
								</div>							
							</div>
						</div>
					</div>
				</div>

css: 

                    .main-img {
				width:500px;		
				height: 500px;	
				border: 1px solid #E5E5E5;
				position: relative;
				#box {
					position: relative; //父级开始定位
					#small{
						width: 500px;		
						height: 500px;
					}
					#shadow{
						display: none;					
						position: absolute;
						left: 0;
						top: 0;
						background-color: #000;
						opacity: 0.3;
						width: 250px;  //高亮区域宽高与小图宽高、放大图区域宽高成比例
						height: 250px;
					}
					#showDetails {
						width: 500px;
						height: 500px;
						display: none;					
						position: absolute;
						top: 0px;
						left: 510px;
						overflow: hidden;
						border: #ededed 1px solid;
						background-color: #FFFFFF;
						img{
							position: absolute; //放大图定位移动
						}
					}
				}
				
			}

js:

                mouseEnter () {
			this.$refs.shadowBox.style.display = "block";
			this.$refs.showDetailsBox.style.display = "block";		
		},
		mouseLeave () {
			this.$refs.shadowBox.style.display = "none";
			this.$refs.showDetailsBox.style.display = "none";	
		},
		mouseMove (ev) {		
			const box = this.$refs.box;	
			const smallBox = this.$refs.smallBox;
			const mask = this.$refs.shadowBox;
			const bigImg = this.$refs.showDetailsBox.firstChild;

			let x = ev.pageX - box.offsetLeft;//被绑定元素到父元素的差值
			let y = ev.pageY - box.offsetTop;	
			x = x - mask.offsetWidth/2;
			y = y - mask.offsetHeight/2;

			if (x < 0) {
				x = 0
			}
			if (x > smallBox.offsetWidth - mask.offsetWidth) {
				x = smallBox.offsetWidth - mask.offsetWidth;
			}
			
			if (y < 0) {
				y = 0
			}
			if (y > smallBox.offsetHeight - mask.offsetHeight) {
				y = smallBox.offsetHeight - mask.offsetHeight
			}

			mask.style.left = x + "px";//小图片移动多少
			mask.style.top = y + "px";

			bigImg.style.left = -bigImg.offsetWidth/smallBox.offsetWidth * x + "px"; //图片成比例缩放原理
			bigImg.style.top = -bigImg.offsetHeight/smallBox.offsetHeight * y + "px";
		},

在JavaScript中实现商品图片的局部放大(放大镜) 对商品实现放大镜效果其实是拖拽事件的拓展。 在电商网站等购买东西的时候,我们经常会预览左侧商品展示图片,把鼠标放到原图,右侧就会有个大图显示出细节。本文将带领大家写一个这样简单的功能! 实现原理: 当鼠标移入某一图片内部时,图片上部会出现一个类似于扫描的框,这个框内的图片部分,会以方大形式展示在右边,如下图: 完整代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> 阅读详情

相关推荐

实现JS图片局部放大的HTML源码解析

元素,<head>部分用于存放文档元数据,以及<body>部分包含文档的可见内容。以下是简化版的HTML5结构:<head><title>页面标题</title></head><body>-- 页面主体内容 --></body>

weixin_35748962的博客 716

web前端--制作图像画廊,鼠标经过小图时显示大图

web前端开发,使用HTML文件制作图像画廊,用css文件规定样式,实现当鼠标经过小图时显示大图。

Hey3399的博客 2370

vue鼠标悬停图片放大特效

vue鼠标悬停图片放大特效是一款基于vue.js跟css3制作的相册图片悬停弹出3d放大展示代码。

鼠标经过图片放大,不超过父块

overflow: hidden图片放大超过父块时隐藏<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> a{ width: 1400px; height: 800px; display: block; overflow: hidden;

球球之家 653

CSS鼠标移上去显示大图

实现了鼠标移动到图片的上方显示大图的功能,不错,可以参考参考~~

JQ实现鼠标经过显示大图效果

实现的效果鼠标移到缩略图上会显示该图的大图,并且大图跟随鼠标移动;或是移动到提示文字上,也可以显示图片。并且含有方向判别功能,具体来说就是如果缩略图在页面的左半部分,则大图显示在鼠标的右侧,如果缩略图在页面的右半部分,则预览的大图在鼠标的左侧显示。

快速学会网页中鼠标经过图片放大效果

项目场景:                     鼠标经过实现图片放大效果 效果描述: 用到的知识点: 鼠标经过图片放大: transform:意思是转换,指的是改变所在元素的外观,例如位移、旋转、缩放等,但是没有动画效果,所以可以搭配transition 使用. transition:

可爱不能当饭吃 7587

简单的鼠标移入小图显示大图

简单的鼠标移入小图显示大图 简单的鼠标移入小图显示大图 简单的鼠标移入小图显示大图 简单的鼠标移入小图显示大图

javaScript easyUI实现 图片预览功能(鼠标移动到图片上 显示大图在旁边)

  最近博主在写一个上传图片的界面,然后想到了这样一个需求,就是,当图片在界面上显示时,有些图片由于博主加了限制显示图片的尺寸,看起来很小,无法看到细节。   因此博主想实现这样一个功能,就是当鼠标移动到图片上时,旁边就会出现这个图片的稍大的图,这样就可以让图片的细节被看到。说干就干。   存在的问题: (1)需要一个容器来放预览图 (2)这个预览图的位置是通过图片的位置而决定的(设置成一...

Atimynyc的博客 4557

鼠标滑过图片右侧预览大图效果

鼠标滑过图片右侧预览大图效果,鼠标滑过图片右侧预览大图效果,鼠标滑过图片右侧预览大图效果,鼠标滑过图片右侧预览大图效果

数值计算方法 matlab用二分法或简单迭代法求_快速求解方程的根——二分法与牛顿迭代法

今天是周四高等数学专题的第7篇文章。之前的文章和大家聊了许多数学上的理论,今天和大家聊点有用的东西。我们都知道,工业上的很多问题经过抽象和建模之后,本质还是数学问题。而说到数学问题就离不开方程,在数学上我们可以用各种推算、公式,但是有没有想过在计算机领域我们如何解一个比较复杂的方程?如果之前没有想过,那你可能得想一想,因为以后很有可能会在面试题当中遇到。二分法我们要介绍的第一个方法是二分法。说到二...

weixin_39945915的博客 1304

鼠标经过,产品图片的局部放大

原理:两张图片,大div包含两个图片的div,大图片隐藏 找到对象 var box = document.getElementById("box");//大的盒子模块 var smallBox = document.getElementById("smallBox");//小图片 var mask = document.getElementById("mask");//黄色高亮区域 va

alightman的博客 2682

ROS环境下UR机械臂与Realsense相机手眼标定实战指南

本文提供了在ROS环境下,对UR机械臂与Realsense相机进行手眼标定的完整实战指南。详细介绍了从环境搭建、软件包安装、硬件配置到分步数据采集与计算的完整流程,并分享了常见的避坑技巧与精度优化方法,旨在帮助开发者高效、准确地完成标定,为后续的机器人视觉应用奠定坚实基础。

sunny的博客 647

鼠标移动区域,图片局部放大、点击左右按钮可以进行图片切换、鼠标悬停到图片上面,下面小图和主图自动切换

1、鼠标移动区域,图片局部放大 2、点击左右按钮可以进行图片切换 3、鼠标悬停到图片上面,下面小图和主图自动切换

qq_920189602的博客 1381

Keil 编译输出信息分析:Program size: Code, RO-data , RW-data, ZI-data

一般 MCU 包含的存储空间有:片内 Flash 与片内 RAM,RAM 相当于内存,Flash 相当于硬盘。编译器会将一个程序分类为好几个部分,分别存储在 MCU 不同的存储区。如图所示,在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输出下面这样一段信息。

qq_40305944的博客 4578

(一篇即成功)Ubuntu下搭建qt环境和安装Qt Creator

只需一篇就成功搭建Ubuntu下的QT环境 你还在等什么

m0_73450461的博客 1万+

Vue实现放大镜

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>放大镜</title> <link rel="stylesheet" href="magnifier.css"> <script src="http...

weixin_45389051的博客 1583

深入MoveIt与OMPL集成开发:从源码编译到自定义规划算法实战

本文详细介绍了如何从源码编译集成MoveIt与OMPL,并实现自定义规划算法的完整流程。通过清理环境、获取源码、解决编译依赖与错误,最终指导开发者创建并集成名为MyRRT的自定义规划算法,从而实现对机器人运动规划栈的深度定制与优化。

h0i1j2k3l的博客 468

JavaScript仿淘宝京东放大镜效果(鼠标事件)------JavaScript学习之路10

JavaScript仿淘宝京东放大镜效果 注意 一定计算好放大比例,本程序放大5倍,具体放大倍数,自定 效果 完整源码 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>放大镜效果</title> <style> #small{ width: 409.6px;/*缩

dragoned_123的博客 256

“华为杯”研究生数学建模竞赛2020年-【华为杯】E题:能见度估计与预测(附获奖论文及python代码实现)

因此,题目要求借助机场的 AMOS 观测数据中的气压、温度、湿度、风速等气象因子,达到 100% 时,空气中的水汽便会凝结成细微的水滴悬浮于空中,使地面水平的能见度下。传统的仪器探测法成本高,覆盖范围小,而基于视频的能见度检测能弥补仪器测量的不足之处,但是预测精度不高,需要进一步改。象条件,空气质量的影响,其中较为关键的影响因子是雾和霾。性过强,激光能见度仪的检测方法更为可信,但是激光能见度仪覆盖的检测范围小,安装。覆盖的交通视频路况数据间接计算得到能见度数值的方法,此方法成本较低,覆盖范围广。

getusushu的博客 2282

Python爬虫实战:深度解析携程/飞猪酒店评论API与大数据采集

本文详细介绍了如何通过Python爬虫技术获取携程和飞猪平台的酒店评论数据。我们涵盖了从API分析、反爬虫对策到数据存储和处理的完整流程。API逆向分析:通过浏览器开发者工具发现和分析API接口反爬虫对策:使用请求头随机化、IP代理、浏览器自动化等技术异步处理:使用asyncio提高爬取效率数据质量:实现数据清洗和质量检查机制系统架构:构建可扩展的分布式爬虫系统未来改进方向:机器学习识别验证码分布式爬虫架构实时数据流处理更智能的反反爬虫策略。

2201_76125261的博客 601

jquery: JS淘宝网产品图片局部放大代码

  实例: &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; &lt;head&..

Just Code 547

无刷电机里的霍尔传感器,和 AS5600 编码器到底有什么区别?

摘要: 无刷电机中的霍尔传感器主要用于换相控制,提供6种状态反馈,无法实现精确角度测量。与AS5600磁编码器(分辨率4096)相比,霍尔仅能确保电机“转得对”,而编码器则用于高精度角度反馈。在机器人等需要位置闭环的场景中,两者需协同使用:霍尔负责基础换相,编码器提供精确角度控制。简单应用中可仅用霍尔,但高精度定位必须搭配编码器。

qq_45430571的博客 242

几个基于jQuery 图片局部放大例子

查看效果 下载地址 jQueryZoomer图片局部放大插件,有别于传统的图片放大,这里解释一下,本款放大是在图片的某个区域进行这么大,当处于放大状态时,鼠标的左右移动会改变放大的区域,如果我们在展示一些产品的图上,那么本插件可以帮你让用户自己操控展示的区域,您可以从源码爱好者截图上看出来。 转载于:https://www.cnblogs.com/s7mmersupp...

aizhen8632的博客 243

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

jquery---仿淘宝商品图片局部放大

本篇博文用于简单记录图片放大功能实现 功能实现还存在一些小漏洞在文章结尾提出,希望各位指正 1、图片放大初考虑将图片转换为字体图片形式,然后进行放大处理,但最终本人技术不过关无法实现,后用width: 200%;进行一般的图片放大,所以当图片越大就存在一些失真; 2、图片放大后的显示为本次实现的关键,通过获取鼠标指针的位置从而获取指针在图片的那一个位置,再以当前位置进行图片放大,放大后将图片...

商嘉航的博客 1068

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

用js做一个简单的电商放大镜效果

购物网站的产品页经常会放有一个产品展示图区。该图区有一个功能就是产品图的放大功能,移动左侧的焦点区域,可以放大细节部分观看,详情如下图。实现该功能的方法也非常简单。

T0nyStark的博客 690

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: vue插件(自定义组件或js文件使用),vue.extend(),vue.component()注册组件
下一篇: vue中实现简单切换图片效果
github_39598787
博客等级 码龄9年 11粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值