We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Learn more about funding links in repositories.
Report abuse
There was an error while loading. Please reload this page.
第18天 怎样在页面上实现一个圆形的可点击区域?
1、用canvas画布,弧线画圆,在canvas上监听点击事件 2、用一个div,给div添加圆角属性50,在div上添加点击事件 3、button 上添加圆角属性 4、a标签添加圆角属性
这个问题也可以理解为做一个圆。方案为两种,真的圆和模拟圆
<svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" onclick="alert(3)"/> </svg>
div { overflow: hidden; width: 50px; height: 50px; background: red; border-radius: 50%; } a { display: inline-block; width: 50px; height: 50px; } <div> <a href="http://www.baidu.com"></a> </div>
总结了一下前面老哥们的回答
DOM 元素配合 border-radius: 50% 即可实现圆形点击区域。例子
border-radius: 50%
利用 <map> 和 <area> 标签设置圆形点击区域。参考文章:HTML 标签及在实际开发中的应用
<map>
<area>
利用 SVG 作出圆形,然后添加点击事件。
如果在 canvas 上,就需要画出圆形,然后计算鼠标的坐标是否落在圆内。
canvas
最简单的是border-radius: 50%
利用 和 标签设置圆形点击区域。参考文章:HTML 标签及在实际开发中的应用
div { overflow: hidden; width: 50px; height: 50px; background: red; border-radius: 50%; }
<img src="test1.jpg" alt="test" usemap="#test"> <map id="test" name="test"> <area shape="rect" coords="20,20,80,80" href="#rect" alt="矩形"> <area shape="circle" coords="200,50,50" href="#circle" alt="圆形"> <area shape="poly" coords="150,100,200,120,180,130,190,180,150,150,100,160,140,120,100,110" href="#poly" alt="多边形"> </map>
// 用canvas画布,弧线画圆,在canvas上监听点击事件 var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d"); ctx.beginPath(); ctx.arc(100,75,50,0,2*Math.PI); ctx.stroke();
<!-- 利用 SVG 作出圆形,然后添加点击事件 --> <svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" onclick="alert(3)"/> </svg>
1.用map和area 2.border-radius圆角 div { background-color:red; width:200px; height:200px; border-radius:50%; } 3.用canvas画布
<!-- border-radius: 50%; --> <div class="circle"></div> <div class="circle1"></div> <div class="circle2"></div> <img src="diqiu.jpg" alt="图像" usemap="#imagemap"> <map name="imagemap"> <area shape="circle" coords="50,50,30" href="link1.html" alt="区域1"> <area shape="rect" coords="100,100,200,200" href="link2.html" alt="区域2"> <area shape="poly" coords="300,300,350,350,400,300" href="link3.html" alt="区域3"> </map> <!-- svg --> <svg width="200" height="200"> <circle cx="100" cy="100" r="50" fill="red" /> </svg> <style> .circle { width: 100px; height: 100px; border-radius: 50%; background-color: red; } .circle1{ width: 100px; height: 100px; border-radius: 50%; background-color: red; /* transform: scale(1); */ } .circle2 { width: 100px; height: 100px; position: relative; } .circle2::before { content: ""; display: block; width: 100%; height: 100%; border-radius: 50%; background-color: red; } </style>
div添加border-radius: 50%;添加click事件 map + area
Activity
hbl045 commentedon May 5, 2019
1、用canvas画布,弧线画圆,在canvas上监听点击事件
2、用一个div,给div添加圆角属性50,在div上添加点击事件
3、button 上添加圆角属性
4、a标签添加圆角属性
github-linong commentedon May 22, 2019
这个问题也可以理解为做一个圆。方案为两种,真的圆和模拟圆
rennzhang commentedon Jul 1, 2019
Konata9 commentedon Jul 29, 2019
总结了一下前面老哥们的回答
DOM 元素配合
border-radius: 50%
即可实现圆形点击区域。例子利用
<map>
和<area>
标签设置圆形点击区域。参考文章:HTML 标签及在实际开发中的应用利用 SVG 作出圆形,然后添加点击事件。
如果在
canvas
上,就需要画出圆形,然后计算鼠标的坐标是否落在圆内。hc951221 commentedon Aug 7, 2019
最简单的是border-radius: 50%
blueRoach commentedon Jun 4, 2020
smile-2008 commentedon Sep 16, 2020
总结了一下前面老哥们的回答
DOM 元素配合 border-radius: 50% 即可实现圆形点击区域。例子
利用 和 标签设置圆形点击区域。参考文章:HTML 标签及在实际开发中的应用
利用 SVG 作出圆形,然后添加点击事件。
如果在 canvas 上,就需要画出圆形,然后计算鼠标的坐标是否落在圆内。
zxcdsaqwe123 commentedon Oct 7, 2021
amikly commentedon Nov 5, 2021
border-radius: 50%
map + area
canvas
SVG
Iambecauseyouare commentedon Mar 2, 2023
1.用map和area

2.border-radius圆角
div
{
background-color:red;
width:200px;
height:200px;
border-radius:50%;
}
3.用canvas画布
never123450 commentedon Sep 1, 2023
lili-0923 commentedon Feb 29, 2024
div添加border-radius: 50%;添加click事件
map + area