放大镜案例

放大镜

在这里插入图片描述

<!DOCTYPE html>
<html lang="zh-cn"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>商品放大镜</title><link rel="stylesheet" href="css/reset.css"><style>.product-intro {position: relative;width: 450px;margin: 100px 0 0 200px;border: 1px solid #ccc;}.preview {position: relative;}.enlargement {display: none;overflow: hidden;position: absolute;top: -1px;left: 450px;width: 540px;height: 540px;border: 1px solid #ccc;}.mask {display: none;position: absolute;top: 0;left: 0;width: 60%;height: 60%;background-color: rgba(228, 228, 11, 0.3);border: 1px solid rgba(122, 122, 122, .4);cursor: move;}.active {display: block;}</style>
</head><body><!-- 这里推荐用两张大小不用的图片,也不是只用高清图然后缩小,因为在商品总览列表中,会用到小图,图片越小加载的速度就快,能用小图就用小图 --><div class="product-intro"><div class="preview"><img src="images/m30.jpg" width="450" height="450" alt="m30"><div class="mask"></div></div><div class="enlargement"><img src="images/m30-big.jpg" alt="m30"></div></div><script src="js/common.js"></script><script>var oPreview = $('.preview');var oMask = $('.mask');var oEnlarge = $('.enlargement');var oEnlargeImg = $('.enlargement>img');var mouseEventMap = {mouseenter: function (e) {oMask.classList.add('active');oEnlarge.classList.add('active');},mouseleave: function (e) {oMask.classList.remove('active');oEnlarge.classList.remove('active');},mousemove: function (e) {var x = e.clientX - oMask.offsetWidth / 2 - getPosition(oPreview).left;var y = e.clientY - oMask.offsetHeight / 2 - getPosition(oPreview).top;x = Math.min(x, oPreview.offsetWidth - oMask.offsetWidth);x = Math.max(x, 0);y = Math.min(y, oPreview.offsetHeight - oMask.offsetHeight);y = Math.max(y, 0);oMask.style.left = x + 'px';oMask.style.top = y + 'px';// 展示比例   (展示区图片宽度 - 展示区宽度) / (预览区宽度 - 遮罩层宽度)var moveX = (oEnlargeImg.offsetWidth - oEnlarge.offsetWidth) / (oPreview.offsetWidth - oMask.offsetWidth);var moveY = (oEnlargeImg.offsetHeight - oEnlarge.offsetHeight) / (oPreview.offsetHeight - oMask.offsetHeight);oEnlargeImg.style.marginLeft = -x * moveX + 'px';oEnlargeImg.style.marginTop = -y * moveX + 'px';}}oPreview.addEventListener('mouseenter', handle, false);oPreview.addEventListener('mouseleave', handle, false);oPreview.addEventListener('mousemove', handle, false);function handle(e) {if (mouseEventMap[e.type] && typeof mouseEventMap[e.type] === 'function') {mouseEventMap[e.type](e);}}</script>
</body></html>

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

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

相关文章

如何使用allure生成测试报告

第一步下载安装JDK1.8&#xff0c;参考链接JDK1.8下载、安装和环境配置教程-CSDN博客 第二步配置allure环境&#xff0c;参考链接allure的安装和使用(windows环境)_allure windows-CSDN博客 第三步&#xff1a; 第四步&#xff1a; pytest 查看目前运行的测试用例有无错误 …

如何使用 pytorch 创建一个神经网络

我已发布在&#xff1a;如何使用 pytorch 创建一个神经网络 SapientialM.Github.io 构建神经网络 1 导入所需包 import os import torch from torch import nn from torch.utils.data import DataLoader from torchvision import datasets, transforms2 检查GPU是否可用 dev…

ffmpeg滤镜创建过程

1、创建一个滤镜图 AVFilterGraph *filter_graph avfilter_graph_alloc(); 2、创建滤镜的输入和输出 AVFilterInOut *inputs avfilter_inout_alloc(); AVFilterInOut *outputs avfilter_inout_alloc(); 3、每个滤镜创建上下文 AVFilterContext *filter1_ctx avfilter_…

Yolov10训练,转化onnx,推理

yolov10对于大目标的效果好&#xff0c;小目标不好 一、如果你训练过yolov5&#xff0c;yolov8&#xff0c;的话那么你可以直接用之前的环境就行 目录 一、如果你训练过yolov5&#xff0c;yolov8&#xff0c;的话那么你可以直接用之前的环境就行 二、配置好后就可以配置文件…

android webview 远程调试

打开远程调试选项 MainActivity super.onCreate(savedInstanceState);// enable Cordova apps to be started in the backgroundBundle extras getIntent().getExtras();if (extras ! null && extras.getBoolean("cdvStartInBackground", false)) {moveT…

前端JS特效第24集:jquery css3实现瀑布流照片墙特效

jquery css3实现瀑布流照片墙特效&#xff0c;先来看看效果&#xff1a; 部分核心的代码如下(全部代码在文章末尾)&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8" /> <title>jquerycss3实现瀑…

Nginx:负载均衡小专题

运维专题 Nginx&#xff1a;负载均衡小专题 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/…

在Conda环境中高效使用Kubernetes:跨平台容器化实践指南

摘要 Conda 是一个流行的跨平台包和环境管理器&#xff0c;广泛用于Python社区。而 Kubernetes 是一个开源的容器编排系统&#xff0c;用于自动化部署、扩展和管理容器化应用程序。本文将探讨如何在 Conda 环境中使用 Kubernetes&#xff0c;包括设置 Conda 环境、容器化应用程…

【专项刷题】— 位运算

常见类型介绍&#xff1a; & &#xff1a;有 0 就是 0 | &#xff1a;有 1 就是 1 ^ &#xff1a;相同为 0 &#xff0c;相异为 1 或者 无进位相加给定一个数确定它的二进制位的第x个数是0还是1&#xff1a;将一个数的二进制的第x位改成1&#xff1a;将一个数的二进制的第x…

Windows10/11家庭版开启Hyper-V虚拟机功能详解

Hyper-V是微软的一款虚拟机软件&#xff0c;可以使我们在一台Windows PC上&#xff0c;在虚拟环境下同时运行多个互相之间完全隔离的操作系统&#xff0c;这就实现了在Windows环境下运行Linux以及其他OS的可能性。和第三方虚拟机软件&#xff0c;如VMware等相比&#xff0c;Hyp…

Linux应用编程IO基础

Linux应用编程基本IO操作 一、main 函数1、main 函数写法之无传参2、main 函数写法之有传参 二、open 打开文件三、write 写文件四、read 读文件五、close 关闭文件六、 lseek七、 返回错误处理与 errno7.1 strerror 函数7.2 perror 函数 八、 exit、_exit、_Exit8.1_exit()和_…

零基础自学爬虫技术该从哪里入手?

零基础学习Python并不一定是困难的&#xff0c;这主要取决于个人的学习方法、投入的时间以及学习目标的设定。Python是一门相对容易入门的编程语言&#xff0c;它有着简洁的语法、丰富的库和广泛的应用领域&#xff08;如数据分析、Web开发、人工智能等&#xff09;&#xff0c…

大模型知识问答: 文本分块要点总结

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、算法项目落地经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接如…

C++ 信号量和锁的区别

网上关于信号量和锁的区别&#xff0c;写的比较官方晦涩难懂&#xff0c;对于这个知识点吸收难&#xff0c;通过示例&#xff0c;我们看到信号量&#xff0c;可以控制同一时刻的线程数量&#xff0c;就算同时开启很多线程&#xff0c;依然可以的达到线程数可控 #include <i…

初识c++(命名空间,缺省参数,函数重载)

一、命名空间 1、namespace的意义 在C/C中&#xff0c;变量、函数和后面要学到的类都是大量存在的&#xff0c;这些变量、函数和类的名称将都存在于全 局作用域中&#xff0c;可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化&#xff0c;以避免命名 冲突…

GEE代码实例教程详解:MODIS土地覆盖分类与面积计算

简介 在本篇博客中&#xff0c;我们将使用Google Earth Engine (GEE) 对MODIS土地覆盖数据进行分析。通过MODIS/061/MCD12Q1数据集&#xff0c;我们可以识别不同的土地覆盖类型&#xff0c;并计算每种类型的总面积。 背景知识 MODIS MCD12Q1数据集 MODIS/061/MCD12Q1是NASA…

每天一个数据分析题(四百十五)- 线性回归模型

线性回归模型中误差项的数学期望为 A. 0 B. 1 C. 2 D. 3 数据分析认证考试介绍&#xff1a;点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖Python&#xff0c;SQL&#xff0c;统计学&#xff0c;数据分析理论&#xff0c;深度学习&am…

世界商用飞机机型大全-使用Java抓取FlightAware后的答案

目录 前言 一、数据说明 1、实时航班飞机机型数据 2、网页结构分析 二、使用Java进行信息抓取 1、定义页面PageVO对象 2、爬取属性定义 3、启动信息抓取组件 三、成果分析 1、商业飞行的飞机机型的种类 2、飞机种类排名前十名 3、航班数排名后十名 4、看中国国产大飞…

【网络安全】一文带你了解什么是【网络劫持】

网络劫持&#xff08;Network Hijacking&#xff09;是一种网络攻击&#xff0c;攻击者通过非法手段劫持网络通信&#xff0c;导致合法用户的数据流被拦截、篡改或重定向到攻击者控制的系统。这种攻击可以在各种网络层面上进行&#xff0c;包括域名系统&#xff08;DNS&#xf…

你真的会信息收集嘛,4k字渗透测试信息收集10大技巧

前言 在渗透测试中&#xff0c;信息收集是非常关键的一步&#xff0c;它为后续的漏洞发现和利用提供了重要的基础。以下是非常详细的信息收集方式&#xff1a; 一、被动信息收集 被动信息收集是指在不与目标系统直接交互的情况下&#xff0c;通过公开渠道获取目标系统的相关…