三种方式实现圆形可点击区域

作者: 椰果粒 | 来源:发表于2018-05-05 21:24 被阅读19次

1. map和area

<img src="./peppa.png" usemap="#Map">
<map name="Map" id="Map">
    <area shape="circle" coords="200,200,100" href="#rect" alt="圆形">
</map>

将img和map标签连起来的是usemap,它的值是map的id
area属性:

  • shape:表示热点区域的形状,支持rect(矩形),circle(圆形),poly(多边形)
  • coords:表示热点区域的坐标,(0,0)表示图片左上角。rect四个值分别表示左上角坐标和右下角坐标。circle三个值分别表示圆心坐标和半径。poly有若干个值,每两个表示一个坐标点。
  • href:表示链接到某个地址,和<a>标签差不多
  • alt:对该区域描述,类似于<img>的alt

2. CSS3的border-radius属性

<div class="content"></div>
.content{
    width: 100px;
    height: 100px;
    border-radius: 50%;
    border: 1px solid #ccc;
}
var content = document.getElementsByClassName("content")[0]
content.addEventListener("click",function(){
    alert("aaa")
})

3. js实现
原理:设定一个坐标原点和半径,获取鼠标的x,y轴位置,当鼠标的位置与原点的位置不超过半径时,可点击(参照数学知识)

document.onclick = function(e){
    let [x,y,r] = [100,100,100] // x,y为坐标原点,r为半径
    let x1 = e.clientX; // 获取x坐标
    let y1 = e.clientY; // 获取y坐标
    let dis = Math.abs(Math.sqrt((Math.pow(x-x1,2)+Math.pow(y-y1,2))))
    if(dis<r){
        alert("bbb")
    }
}
  • Math.abs():取绝对值
  • Math.sqrt():开平方
  • Math.pow(num,n):num的n次方

相关文章

  • 三种方式实现圆形可点击区域

    1. map和area 将img和map标签连起来的是usemap,它的值是map的idarea属性: shape...

  • iOS圆形UIButton实现只点击圆形区域有效

    系统UIButton自带的方式为矩形,通过设置layer层可以将图片裁剪为圆形,但是点击区域仍是矩形。 即:btn...

  • 圆形View的点击区域

    需求 任务进度的圆形区域可以点击(黄色圆圈内的部分都可以点击) 实现方法 实现思路 通过上图红色方框的UIView...

  • Flutter之BottomAppBar组件

    实现底部导航栏并点击切换页面可简述为有三种方式TabBar + TabBarViewBottomNavigatio...

  • Flutter 底部Tab导航栏

    实现底部导航栏并点击切换页面可简述为有三种方式 TabBar + TabBarView BottomNavigat...

  • ProgressBar

    Android控件--ProgressBar 三种方式实现自定义圆形进度条ProgressBar

  • 前端面试每日 3+1 —— 第18天

    今天的面试题 (2019.05.04) —— 第18天 [html] 怎样在页面上实现一个圆形的可点击区域? [c...

  • HOC,Render Props, React Hooks简单实

    有三个按钮,每个按钮样式不同,但内容都是0,都有点击事件,点击后自增一,发现有可复用部分,于是分别用了三种方式实现...

  • swift 实现圆形区域拖动

    写在前面的: 实现限制在圆形区域拖动,虽然逻辑也很简单,但是调试起来还挺费心思的!…… 这里将我自己的经验写下来,...

  • Vue指令实现区域点击放大

    在H5的项目中,通常有很多区域性的 点击icon ,布局实现比较麻烦,为了放大点击区域,实现区域点击放大的效果,我...

网友评论

    本文标题:三种方式实现圆形可点击区域

    本文链接:https://www.haomeiwen.com/subject/kkierftx.html