php 鼠标点击图片放大,鼠标移入放大图片预览效果实现
商城项目中,有鼠标移入图片放大的功能,研究一下实现
Image zoom
body {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
#image {
width: 300px;
height: 300px;
background-color: #000;
background-image: url(https://placekitten.com/900/900);
background-size: 300px 300px;
background-repeat: no-repeat;
}
#image[zoomed] {
background-size: 900px 900px;
background-position: calc(var(--x) * 100%) calc(var(--y) * 100%);
}
let el = document.querySelector('#image')
// PC端操作
el.addEventListener('mouseenter', enterHandler)
el.addEventListener('mousemove', moveHandler)
el.addEventListener('mouseleave', leaveHandler)
// 移动端操作
el.addEventListener('touchstart', enterHandler)
el.addEventListener('touchmove', moveHandler)
el.addEventListener('touchend', leaveHandler)
function enterHandler(e) {
e.target.setAttribute('zoomed', 1)
moveHandler(e)
}
function moveHandler(e) {
// getBoundingClientRect用于获取元素相对于视窗的位置集合。集合中有top, right, bottom, left等属性
let rect = e.target.getBoundingClientRect()
let offsetX, offsetY
let isH5 = ['touchstart', 'touchmove', 'touchend'].includes(e.type)
// 是移动端,并且touches事件存在
if (isH5 && e.touches[0]) {
offsetX = e.touches[0].pageX - rect.left
offsetY = e.touches[0].pageY - rect.top
e.preventDefault()
} else {
// PC端
offsetX = e.offsetX
offsetY = e.offsetY
}
// 元素的位置信息
let x = offsetX / rect.width
let y = offsetY / rect.height
// 设置元素属性,用于计算background-position的位置
e.target.style.setProperty('--x', x)
e.target.style.setProperty('--y', y)
}
function leaveHandler(e) {
e.target.removeAttribute('zoomed')
moveHandler(e)
}
具体效果复制下去打开看看
php 鼠标点击图片放大,鼠标移入放大图片预览效果实现相关推荐
- html实现360展示图片,js html5 360度全景图片预览效果
特效描述:js html5 360度全景图片 预览效果.html5实现360度全景,html5 720度全景图,html5全景图,html5全景图源代码,html5 3d全景,360度全景图,3d36 ...
- element表格图片放大_图片在表格中,鼠标经过图片上方,图片有放大预览效果 (vue+element )...
element的鼠标移到图片时,放大预览效果.实现思路:element的 el-table + el-popover export default { data () { return { tabDa ...
- 鼠标移到到图片,图片向上滑动预览效果
<!DOCTYPE html> <html> <head><title>鼠标移到到图片,图片向上滑动预览效果</title><scri ...
- 实现图片点击放大预览效果
前因 在开发微信公众号时,产品经理要求实现图片可以点击放大,并且点击下一张的效果.因为是第一次做公众号的项目,也是第一次在移动端要做图片预览的效果,所以在网上查了相关资料. 实现路程 首先,在以往的项 ...
- Axure RP9——【图片放大预览效果】
图片放大预览效果 目录 I.实现效果 II.实现步骤 I.实现效果 一般适用于做电商平台图片的放大预览,以此更方便我们看清内容细节. 鼠标停留在商品大图时,会出现一个预览区域,并且右侧会出现预览区域的 ...
- html js 图片放大效果,JavaScript实现图片放大预览效果
代码实现: Document .preview-img { position: relative; height: 398px; } .mask { display: none; position: ...
- 微信小程序:previewImage实现图片放大预览效果
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 前言 记录一下做项目的过程中遇到的图片放大预览效果的实现 实现的是点击图片可以放大预览,这个效果在京东淘宝都可以看到 ...
- elementui 使用el-image 控件 解决 通过点击查看按钮两次才能 实现预览图片
需求:点击查看按钮,将图片显示出来. 问题:查看按钮必须触发两次才会将图片显示出来 前端效果: 点击查看按钮,弹出来图片 图片展示: 解决方法有两种: 第一种 调用Image 的源码中的image-v ...
- 基于JS实现购物车图片局部放大预览效果
在电商网站中,商品图片是非常重要的展示元素.为了让用户更好地了解商品细节,一些网站会提供图片局部放大预览效果.这篇文章将介绍如何使用JavaScript实现购物车图片局部放大预览效果. 第一步:HTM ...
- JQuery实现超链接和图片提示预览效果
文章目录 超链接提示 效果 html css jQuery部分 解决问题1 解决问题2 解决问题3 完整jQuery代码 图片预览 html css jQuery代码 实现效果 其实现在的浏览器已经具 ...
最新文章
- iOS开发UI篇—transframe属性(形变)
- mysql 唯一性约束报错_怪异的MySQL Online DDL报错Duplicate entry
- Leetcode 102. 二叉树的层次遍历
- 前端判断是否安装桌面应用_前端开发人员的桌面应用神器 Electron
- mybatis 映射成多个list_SSM:Mybatis架构与原理
- Java标识符和数据类型
- Linux使用Mac键盘,System76 推出 Linux 键盘 看完手痒了!
- Stanford NLP 第四课 神经网络复习
- java注解拦截_轻松实现java拦截器+自定义注解
- 计算机共享怎么ip设置,如何设置网络打印机共享
- 【NOIP提高组五校联考】挖金矿
- cocos2dx 3.2 学习篇之六(精灵运动,自定义运动轨迹(太极八卦))
- Java 一个数字、字母、汉字各占几个字节
- 看电影哪款蓝牙耳机降噪效果最好?性价比降噪蓝牙耳机推荐
- 国外问卷调查详细讲解
- C#如何设置Excel文档保护——工作簿、工作表、单元格
- 无路可逃java攻略_孤岛惊魂5
- 四、移植 JZ2440 开发板
- EVE安装与简单使用教程
- The Balance(详细讲解)
热门文章
- java连接到mysql_[操作系统]Java如何连接到MySQL数据库的
- Lyapunov and Stability Theory
- ecshop 模板 php代码,ecshop无法在模板文件.dwt和.lbi中直接添加php代码的解决方法...
- php如何禁用浏览器的缓存,php如何禁止浏览器使用缓存页面
- dos命令行设置网络优先级_替代windows系统下cmd的10款命令行工具
- java中static作用_java中static作用详解
- 两端分散对齐怎么设置_Word文字很难对齐?用这4个方法,2秒可对齐所有文字!...
- java 面向对象继承的思想_Java面向对象思想
- EnjoyingSoft之Mule ESB开发教程第六篇:Data Transform - 数据转换
- python request 留位置4