新闻中心
J*aScript CSS 缩放动画期间获取最终 offset 值的替代方案

本文旨在解决在 J*aScript 中,当 CSS 缩放动画正在进行时,如何获取元素缩放完成后的 `offsetX` 和 `offsetY` 值的问题。通过引入一个辅助的、无过渡的 `div` 元素,并将其放置在目标图像的下方,可以模拟缩放后的最终状态,从而准确获取鼠标在缩放完成后的位置信息。这种方法无需等待动画结束,即可立即获得目标值,提升用户体验。
在进行 CSS 缩放和过渡动画时,直接使用 event.offsetX 和 event.offsetY 获取的鼠标位置是动画过程中的瞬时值,而不是动画结束后的最终值。这在需要基于最终缩放比例进行计算或操作的场景下会带来问题。以下提供一种解决方案,通过添加一个辅助元素来解决这个问题。
解决方案:使用辅助 Div 模拟最终状态
该方案的核心思想是在目标图像下方创建一个不可见的 div 元素,该元素在缩放时没有过渡效果,立即达到最终的缩放比例。然后,将点击事件绑定到这个 div 元素上,通过它来获取鼠标位置信息。
1. HTML 结构调整:
将目标图像 img 和辅助 div 放入一个容器 div#wrapper 中。辅助 div#target 覆盖整个图像区域,并负责接收点击事件。
秀脸FacePlay
一款集成AI换脸、照片跳舞等多种AI特效玩法的App
124
查看详情
<button onclick="onButton()">Zoom</button> <br> <div id="wrapper"> <div id="target" onclick="onImage(event)"></div> @@##@@ </div>
2. CSS 样式设置:
- #wrapper: 使用 inline-block 和 position:relative,使其可以包裹内容并作为绝对定位元素的参考。font-size:0 避免了inline-block元素之间的空白问题。
- #target: 使用 position:absolute,使其完全覆盖图像。width:100%; height:100%; 保证其大小与图像一致。
- #img: transition: 5s ease 设置缩放动画。z-index:2 保证图像显示在辅助 div 的上方。pointer-events:none 禁用图像的鼠标事件,确保点击事件传递到辅助 div。
#wrapper {
display: inline-block;
position:relative;
font-size:0;
}
#target{
position:absolute;
width:100%;
height:100%;
}
#img {
transition: 5s ease;
z-index:2;
pointer-events:none;
}3. J*aScript 代码:
- onButton(): 除了缩放图像 img,还需要同步缩放辅助 div#target。确保 target 的缩放比例与 img 相同。
- onImage(): 点击事件绑定在 target 上,所以 event.offsetX 和 event.offsetY 获取的是缩放完成后的位置信息。
function onButton() {
const img = document.querySelector("#img");
img.style.scale = 5.0;
const target = document.querySelector("#target");
target.style.scale = 5.0;// make sure target's style matches img's style
}
function onImage(event) {
console.log(event.offsetX, event.offsetY);
}代码示例(完整):
<button onclick="onButton()">Zoom</button>
<br>
<div id="wrapper">
<div id="target" onclick="onImage(event)"></div>
@@##@@
</div>
<script>
function onButton() {
const img = document.querySelector("#img");
img.style.scale = 5.0;
const target = document.querySelector("#target");
target.style.scale = 5.0;// make sure target's style matches img's style
}
function onImage(event) {
console.log(event.offsetX, event.offsetY);
}
</script>
注意事项:
- 确保辅助 div 的缩放比例与图像的最终缩放比例一致。
- pointer-events:none 属性是关键,它允许点击事件穿透图像,传递到辅助 div
。 - 如果需要更复杂的交互,可以考虑使用事件委托,将事件监听器绑定到 wrapper 上。
总结
通过引入辅助 div 元素,可以有效地解决 CSS 缩放动画期间 event.offsetX 和 event.offsetY 值不准确的问题。这种方法简单易懂,能够快速获取缩放完成后的鼠标位置信息,为后续的计算和操作提供准确的数据支持,提升用户体验。这种技巧在需要处理动画过程中鼠标事件的场景中非常有用。
以上就是J*aScript CSS 缩放动画期间获取最终 offset 值的替代方案的详细内容,更多请关注其它相关文章!
# 过程中
# 营销推广产品的文案范文
# 淘宝产品seo标题大全
# 濮阳网站建设服务商
# 辽源seo工具技巧
# 中卫网站全网营销推广
# seo培训多少时间
# 兴平网站推广
# 福州产品seo优化
# 重庆网站推广 嶶杏hfqjwl广告稳定
# 越南网络关键词查询排名
# 容器内
# 拖拽
# 的是
# css
# 使其
# 自定义
# 完成后
# 绑定
# 复选框
# 鼠标
# 绝对定位
# 点击事件
# app
# html
# java
# javascript
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
J*aScript中管理异步API调用:确保操作顺序与数据一致性
Go Martini框架:动态服务解码后的图片内容
Composer中的^和~符号代表什么_精通Composer版本号语义化约束
sublime怎么覆盖插件的默认快捷键_sublime快捷键优先级与设置
批改网学生版PC登录 批改网官网登录系统入口
MAC怎么在地图App里使用“四处看看”_MAC体验部分城市的3D实景街景
Vue.js 图片显示异常排查:理解应用挂载范围与DOM ID唯一性
提升Kafka消费者健壮性:会话超时处理与消息处理语义
cad怎么合并重叠的线段_cad清理重复重叠线条的操作方法
如何在Python中使用Optional类型处理可变对象并避免Pylint警告
wps文字怎么插入目录并自动更新_wps文字如何插入目录并自动更新方法
狙击外星人小游戏开始_狙击外星人小游戏立即开始
126邮箱网页版官方入口 126邮箱账号在线登录平台
Win11怎么设置鼠标主按键_Win11鼠标左右键功能互换
PDF文件体积过大处理_PDF压缩技巧详解
Mac怎么锁定备忘录_Mac备忘录加密设置教程
必由学登录入口 必由学官方网站在线访问链接
双系统安装时,如何设置默认启动系统? msconfig命令了解一下!
Yandex浏览器官方网页版入口 Yandex浏览器最新版官网
AO3网页版合集入口 Archive of Our Own同人作品浏览指南
msn官网入口地址手机版 msn官方网站手机最新链接
Bing引擎入口最新2025 Bing搜索免费官方登录
Win10如何清理注册表垃圾 Win10手动清理无效注册表【技巧】
今日头条怎么同步内容到抖音_今日头条内容同步到抖音教程
在Go Martini框架中高效服务动态生成图像的实践指南
C++如何操作大型数据集_使用C++流式处理(Streaming)技术避免一次性加载大文件
Basecamp怎样用留言钉固定重点_Basecamp用留言钉固定重点【重点标记】
蛙漫限时开放最深处链接_蛙漫全站漫画会员同款秒开地址
vivo云服务网页版登录 怎么登录vivo云服务网页版
将HTML Canvas内容转换为可上传的图像文件(File对象)
如何将HTML表格多行数据保存到Google Sheet
汽水音乐网页版使用入口_汽水音乐电脑版播放指南
CSS布局中意外空白:解决padding-top导致的顶部间距问题
C++的std::mdspan是什么_C++23中用于操作多维数组的非拥有视图
2025-2030年全球乘用车销量预测:新能源成增长主力
蛙漫2台版漫画地址 Manwa2正版网页版链接
Python字典中优雅地迭代剩余元素的方法
Composer的 "conflict" 字段有什么用_如何声明不兼容的包以避免依赖冲突
J*aScript类型检查_j*ascript代码规范
Safari浏览器输入栏卡顿如何解决 Safari搜索建议与缓存清理
Discord Slash 命令响应超时问题的异步解决方案
单12V-2×6实现为RTX 5090供电750W!甚至都没敢跑分
内存检查:在VS Code中调试C++时的内存视图
Lar*el表单中优雅地处理“返回”按钮以规避验证:最佳实践指南
学习通网页版官方登录 超星学习通电脑端入口指南
深入理解J*aScript Promise异步执行与微任务队列
PHP URL参数传递与500错误调试指南
蛙漫漫画官网在线入口 蛙漫全本漫画免费阅读平台
Win11怎么开启卓越性能模式 Win11电源选项启用高性能释放硬件潜力【方法】
机构:以往存储涨价周期小米利润率实际上有所改善 能转嫁给消费者等


2025-10-12
浏览次数:次
返回列表
。