扫码关注官方订阅号
如何在静态图片上用鼠标动态标注热点,类似于我鼠标点击图片上的某个区域,该区域就会有个小红点?
学习是最好的投资!
谢谢@谦龙 指正错误,的确没有考虑到当点击发生在红点上面的情况。
offsetX和offsetY是鼠标相对于目标事件的父元素的内边界在x,y坐标上的位置。 所以点击发生在红点上就为0了那么是要采用@谦龙的办法,用e.pageX和e.pageY获取鼠标指针位置再减去父元素(图片)相对于文档的位置及半径,便可以得到圆心相对于父元素(图片)的位置了。
再用调整position:absoulute;的top和left值并新建DOM加到图片层就好了。
position:absoulute;
top
left
写了个简单的例子,可以参考下
<style type="text/css"> .wrap{ width:300px; height: 200px; background: #ccc; position: relative; } .ball{ width:20px; height: 20px; background: red; border-radius: 50%; position: absolute; } </style> <body> <p class="wrap"></p> <script type="text/javascript"> $('.wrap').click(function(e){ var radius=10;//半径 var offset=$(this).offset(); var top=e.pageY-offset.top-radius+"px"; var left=e.pageX-offset.left-radius+"px"; $('.wrap').append('<p class="ball" style="top:'+top+';left:'+left+'"></p>') }) </script> </body>
直接绑定click的事件,事件里面根据当前event的坐标点添加DOM进去,DOM的display可以是absolute,然后left top根据event的坐标点设置,手机码子,只好说思路
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
谢谢@谦龙 指正错误,的确没有考虑到当点击发生在红点上面的情况。
offsetX和offsetY是鼠标相对于目标事件的父元素的内边界在x,y坐标上的位置。
所以点击发生在红点上就为0了
那么是要采用@谦龙的办法,用e.pageX和e.pageY获取鼠标指针位置再减去父元素(图片)相对于文档的位置及半径,便可以得到圆心相对于父元素(图片)的位置了。
再用调整
position:absoulute;的top和left值并新建DOM加到图片层就好了。写了个简单的例子,可以参考下
直接绑定click的事件,事件里面根据当前event的坐标点添加DOM进去,DOM的display可以是absolute,然后left top根据event的坐标点设置,手机码子,只好说思路