html实现商品图片放大镜,html图片放大镜预览

效果

在这里插入图片描述

实现

复制粘贴,修改图片路径即可使用

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>商品图片放大镜</title></head><style>body {margin: 0;padding: 0;}#app {padding: 10px;position: relative;}/** 默认图片*/.img-box {position: relative;left: 10px;top: 150px;width: 300px;height: 300px;text-align: center;border: 1px solid #83b4ff;border-radius: 4px;overflow: hidden;cursor: zoom-in;}.img1 {width: 100%;height: 100%;}.img-select {width: 100px;height: 100px;position: absolute;left: 0;top: 0;background: #00ff6633;border-radius: 4px;display: none;}/** 临时放大图片*/.img-temp-box {position: absolute;left: 0;top: 0;width: 400px;height: 400px;display: none;overflow: hidden;}.img2 {width: 200%;height: 200%;position: absolute;left: 0;top: 0;}</style><body><div id="app"><div class="img-box"><img src="image/2.jpeg" class="img1" /><div class="img-select"></div></div></div><!-- 一般放置最外边--><div class="img-temp-box"><img src="" class="img2" /></div></body><script>/*** @author yyq* @blogger myf*/var imgBox = document.querySelector('.img-box');var imgSelect = document.querySelector('.img-select');var imgTempBox = document.querySelector('.img-temp-box');var img1 = document.querySelector('.img1');var img2 = document.querySelector('.img2');// 鼠标移入imgBox.onmouseenter = function() {imgSelect.style.display = 'block';imgTempBox.style.display = 'block';var img = getElementOffset(imgBox);imgTempBox.style.left = (img.left + 400) + "px";imgTempBox.style.top = (img.top - 50) + "px";img2.src = img1.src;console.log("移入")}// 鼠标移除imgBox.onmouseleave = function() {imgSelect.style.display = 'none';imgTempBox.style.display = 'none';console.log("移除")}// 鼠标放上imgBox.onmousemove = function() {var img = getElementOffset(imgBox);var x = event.clientX - img.left;var y = event.clientY - img.top;console.log("xy轴:", x, '-----', y);var imgSelectX = x - imgSelect.offsetWidth / 2var imgSelectY = y - imgSelect.offsetHeight / 2if(imgSelectX < 0) {imgSelectX = 0;} else if(imgSelectX > imgBox.offsetWidth - imgSelect.offsetWidth) {imgSelectX = imgBox.offsetWidth - imgSelect.offsetWidth}if(imgSelectY < 0) {imgSelectY = 0;} else if(imgSelectY > imgBox.offsetHeight - imgSelect.offsetHeight) {imgSelectY = imgBox.offsetHeight - imgSelect.offsetHeight}// 小图里的小框imgSelect.style.left = imgSelectX + 'px';imgSelect.style.top = imgSelectY + 'px';var b = (img2.offsetHeight - imgTempBox.offsetHeight) / (imgBox.offsetHeight - imgSelect.offsetHeight)// 临时框里的大图片img2.style.left = -imgSelectX * b + "px"img2.style.top = -imgSelectY * b + "px"}/*** 返回元素距离浏览器边框的位置(防止元素位置被父级限制)* @param {Object} element*/function getElementOffset(element) {    var left = element.offsetLeft; // 当前元素左边距var top = element.offsetTop; // 当前元素上边距var parent = element.offsetParent; // 当前元素的父级元素while(parent !== null) {      left += parent.offsetLeft; // 累加左边距top += parent.offsetTop; // 累加上边距parent = parent.offsetParent; // 依次获取父元素}return {'left': left,'top': top};  }</script></html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/89706.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTP之cookie基础学习

目录 Cookie 什么是Cookie Cookie分类 Cookie版本 Cookie工作原理 Cookie详解 创建cookie cookie编码 cookie过期时间选项 Cookie流程 Cookie使用 会话管理 个性化信息 记录用户的行为 Cookie属性 domain选项 path选项 secure选项 cookie…

Stable Diffusion - 人物坐姿 (Sitting) 的提示词组合 与 LoRA 和 Embeddings 配置

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/132201960 拍摄人物坐姿时&#xff0c;需要注意&#xff1a; 选择一个舒适和自然的坐姿&#xff0c;符合个性和心情。可以坐在椅子、沙发、长凳、…

通达OA SQL注入漏洞【CVE-2023-4165】

通达OA SQL注入漏洞【CVE-2023-4165】 一、产品简介二、漏洞概述三、影响范围四、复现环境POC小龙POC检测工具: 五、修复建议 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损…

Day13 04-Linux的虚拟机克隆-scp命令-ssh免登录-crontab定时器及时间同步操作

文章目录 第五章 多虚拟机的操作5.1 虚拟机克隆【掌握】5.1.1 克隆前的准备工作5.1.2. 修改IP地址5.1.3. 修改主机名5.1.4. 修改域名映射文件5.1.5. 虚拟机之间通信5.1.6. 流程总结 5.2. scp命令【重点】5.2.1. 命令格式5.2.2. 小技巧 5.3. ssh免密登录【重点】5.3.1. ssh的简介…

Elasticsearch:如何创建 Elasticsearch PEM 和/或 P12 证书?

你是否希望使用 SSL/TLS 证书来保护你的 Elasticsearch 部署&#xff1f; 在本文中&#xff0c;我们将指导你完成为 Elasticsearch 创建 PEM 和 P12 证书的过程。 这些证书在建立安全连接和确保 Elasticsearch 集群的完整性方面发挥着至关重要的作用。 友情提示&#xff1a;你可…

嵌入式:ARM Day1

1. 思维导图 2.作业一 3.作业2

[保研/考研机试] KY135 又一版 A+B 浙江大学复试上机题 C++实现

题目链接&#xff1a; KY135 又一版 AB https://www.nowcoder.com/share/jump/437195121691736185698 描述 输入两个不超过整型定义的非负10进制整数A和B(<231-1)&#xff0c;输出AB的m (1 < m <10)进制数。 输入描述&#xff1a; 输入格式&#xff1a;测试输入包…

基于 Nginx All In One 的 Outline Wiki 部署方法

1. Outline 简介 官网&#xff1a;https://www.getoutline.com/ Outline 是一个开源的知识库和团队协作工具&#x1f9e0;&#xff0c;旨在帮助团队共享、组织和协作文档&#x1f4dd;。它提供了一个简洁的界面&#xff0c;使用户能够轻松创建、编辑和查看文档。 以下是 Out…

ArcGIS Pro应用—暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合、案例应用全流程科研能力提升教程

详情点击链接&#xff1a;ArcGIS Pro应用—暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合、案例应用全流程科研能力提升教程 第一&#xff1a;GIS及ArcGIS Pro 1.GIS基本原理及常用软件 2.ArcGIS Pro 安装与配置 3.ArcGIS Pro 3.0 的新…

【碎碎念随笔】1、回顾我的电脑和编程经历

✏️ 闲着无事&#xff0c;讲述一下我的计算机和代码故事 一、初识计算机 &#x1f5a5;️ 余家贫&#xff0c;耕植无钱买电脑。大约六年级暑假&#xff0c;我在姐姐哪儿第一次接触到了计算机&#xff08;姐姐也是买的二手&#xff09;。 &#x1f5a5;️ 计算机真有趣&#x…

pconsc4 安装

Pconsc4 安装遇到的问题 Pconsc4-github 按照红框给的一行命令&#xff0c;一行毁所有。 1 gcc and g not found # 1 Start by updating the packages list:sudo apt update# 2 Install the build-essential package by typing:sudo apt install build-essential## The comm…

Linux 终端操作命令(2)内部命令

Linux 终端操作命令 也称Shell命令&#xff0c;是用户与操作系统内核进行交互的命令解释器&#xff0c;它接收用户输入的命令并将其传递给操作系统进行执行&#xff0c;可分为内部命令和外部命令。内部命令是Shell程序的一部分&#xff0c;而外部命令是独立于Shell的可执行程序…

【Pytroch】基于K邻近算法的数据分类预测(Excel可直接替换数据)

【Pytroch】基于K邻近算法的数据分类预测&#xff08;Excel可直接替换数据&#xff09; 1.模型原理2.数学公式3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 K最近邻&#xff08;K-Nearest Neighbors&#xff0c;简称KNN&#xff09;是一种简单但常用的机器…

日常工具 之 一些 / 方便好用 / 免费 / 在线 / 工具整理

日常工具 之 一些 / 方便好用 / 免费 / 在线 / 工具整理 目录 日常工具 之 一些 / 方便好用 / 免费 / 在线 / 工具整理 1、在线Json &#xff0c;可以在线进行json 格式验证&#xff0c;解析转义等操作 2、Gif动图分解&#xff0c;在线把 gif 图分解成一张张单图 3、在线P…

财报解读:继续押注Disney+,迪士尼距离盈利还有多远?

迪士尼最新一季的“答卷”&#xff0c;透露着不小的寒气。 近日&#xff0c;迪士尼披露了2023财年第三季度&#xff08;自然年2023年Q2&#xff09;业绩报告&#xff0c;营收223.3亿美元&#xff0c;同比仅增长4%&#xff0c;低于市场预期的225.1亿美元&#xff1b;归母净亏损…

【从零学习python 】22. Python中的字典的增删改查及字典的变量

文章目录 字典的增删改查一、查看元素二、修改元素三、添加元素四、删除元素字典遍历练习进阶案例 字典的增删改查 一、查看元素 除了使用key查找数据&#xff0c;还可以使用get来获取数据 info {name:班长,age:18}print(info[age]) # 获取年龄 # print(info[sex]) # 获取…

从零实现kv存储(1):array初版

本节开始&#xff0c;逐步实现基于内存的kv存储引擎。 一、项目主要功能和知识点 参照redis&#xff0c;主要实现的功能&#xff1a; 1、数据的插入、查询、删除等操作 1&#xff09;SET&#xff1a;插入key - value 2&#xff09;GET&#xff1a;获取key对应的value 3&#…

接口mock常用工具

在进行测试时&#xff0c;我们经常需要模拟接口数据&#xff0c;尤其是在前后端分离项目的开发中&#xff0c;在后端未完成开发时&#xff0c;前端拿不到后端的数据&#xff0c;就需要对后端返回的数据进行模拟。 如下一些工具&#xff0c;可以完成接口的mock。 Yapi 首先添…

协程(一)单机--》并发--》协程

目录 一 协程的概述1.1 并行与并发1.2 线程1.3 新的思路1.4 Goroutine 二 第一个入门程序 一 协程的概述 我查看了网上的一些协程的资料&#xff0c;发现每个人对协程的概念都不一样&#xff0c;但是我认可的一种说法是&#xff1a;协程就是一种轻量级的线程框架&#xff08;K…

Unity UI.Image 六边形+流光 Shader

效果图 参考代码 Shader"Custom/HexFlowImage" {Properties{[PerRendererData] _MainTex ("Sprite Texture", 2D) "white" {}_Color ("Tint", Color) (1,1,1,1)_StencilComp ("Stencil Comparison", Float) 8_Stencil (…