javascript - js图片上标注热点。
PHPz
PHPz 2017-04-11 10:08:06
[JavaScript讨论组]

如何在静态图片上用鼠标动态标注热点,类似于我鼠标点击图片上的某个区域,该区域就会有个小红点?

PHPz
PHPz

学习是最好的投资!

全部回复(2)
黄舟

谢谢@谦龙 指正错误,的确没有考虑到当点击发生在红点上面的情况。

offsetX和offsetY是鼠标相对于目标事件的父元素的内边界在x,y坐标上的位置。
所以点击发生在红点上就为0了
那么是要采用@谦龙的办法,用e.pageX和e.pageY获取鼠标指针位置再减去父元素(图片)相对于文档的位置及半径,便可以得到圆心相对于父元素(图片)的位置了。

再用调整position:absoulute;topleft值并新建DOM加到图片层就好了。

写了个简单的例子,可以参考下

<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中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号