如何在页面上实现一个圆形的可点击区域?

三种解决方案: html标签、css实现、 纯js实现

方案一:

定义一个客户端图像映射。图像映射(image-map)指带有可点击区域的一幅图像。

<img src="task6.jpg" width="1366" height="768" border="0" usemap="#Map" />
<map name="Map" id="Map">
 <area shape="circle" coords="100,100,50" href="https://www.baidu.com" target="_blank" />
</map>  

方案二:

<style>
 .disc{
     width:100px;
     height:100px;
     background-color:dimgray;
     border-radius: 50%;
     cursor: pointer;
     position: absolute;
     left:50px;
     top:50px;
     line-height: 100px;
     text-align: center;
     color: white;
 }
</style>

<div class="disc">点击区域</div>  

方案三:

    <script>
        document.onclick = function(e){
            var r = 50;  //圆的半径
            var x1 = 100,  y1 = 100;
            var x2 = e.clientX,
                y2 = e.clientY;
            var len=Math.abs(Math.sqrt(Math.pow(x2-x1,2)+Math.pow(y2-y1,2)));
            if(len<=50){
                console.log("Inner");
            }else{
                console.log("Outer");
            }
        }
    </script>
时间: 2024-08-29 08:53:44

如何在页面上实现一个圆形的可点击区域?的相关文章

页面上有一个div 100*100 颜色为黄色 按键盘上下左右键可以操作div移动 ctrl+键盘上下键可以放大缩小 ctrl+键盘左右键可以随机变颜色

1 <body> 2 <div id="w"> 3 <div class="n">按上键可以向上移动</div> 4 <div class="n">按下键可以向下移动</div> 5 <div class="n">按左键可以向左移动</div> 6 <div class="n">按右键可以向右移动&l

做一个计时器示例 在页面上有一个文本框和一个普通按钮 在状态栏上显示,单击按钮,开始计时的提示信息 单击按钮时,在文本框显示计数的过程,同时要求按钮上的字,显示为“单击暂停” 此时单击按钮,暂停计时,同时按钮上的字显示为“继续计时”,要求这两种状态来回切换,来完成计数器的功能

2015-04-12 20:15:25 方法一; <script> var s=0; var timeout=0; status='点击按钮,开始计时'; function count(){ s++; time1.value=s; timeout=setTimeout('count();',100); } function onChange(){ if(timeout==0){ count(); time2.value='暂停计时'; status='点击按钮,暂停计时'; }else{ cl

编写一个函数,在页面上输出一个N行M列的表格,表格内容填充1~100的随机数字

function tab(n,m){ document.write("<table border=1>"); for(var i=1;i<=n;i++){ document.write("<tr>"); for(var j=1;j<=m;j++){ document.write("<td>"); document.write(numRandom(1,100)); document.write(&qu

7、8上的cell上的一个按钮,当点击按钮时,要拿到这个cell,可以用代理,也可以用superview

/** cell上的付款按钮事件 */ - (IBAction)paymentButtonClick:(UIButton *)sender { /** * @author SongXing, 15-07-31 10:07:26 * * 7.8系统上cell的父类关系不一致 */ CPMyOrderVC_Cell *cell; CGRect buttonRect = sender.frame; for (CPMyOrderVC_Cell *c in [self.tableView visibleC

浏览器渲染页面原理(看到一个网站写的不错 收录的,一起学习)

当了解web访问原理后,与前端工程师或页面重构师工作更为关系密切的应该是浏览器,WEB 页面运行在各种各样的浏览器当中,浏览器载入.渲染页面的速度直接影响着用户体验, 特别是浏览器渲染页面的原理,页面渲染就是浏览器将 HTML 代码根据 CSS 定义的规则显示在浏览器窗口中的这个过程,理解了原理就更会容易理解前端优化的一些准则. 主要过程:(主要参考文章:http://www.webskys.com/artilc/228.html) 1. 用户输入网址(假设是个 HTML 页面,第一次访问,无缓

页面上画按钮的四种方法

在一个页面上画一个按钮,有四种办法: <input type="button" /> 这就是一个按钮.如果你不写javascript 的话,按下去什么也不会发生. <input type="submit" /> 这样的按钮用户点击之后会自动提交 form,除非你写了javascript 阻止它. <button> 这个按钮放在 form 中也会点击自动提交,比前两个的优点是按钮的内容不光可以有文字,还可以有图片等多媒体内容.(当然

关于在页面上执行sql语句

在页面上执行sql语句,首先在页面上顶一个文本域,让用户输入需要执行的sql语句. html代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title> New Document </title></head&

[修练营 jQuery]使用contactable达到在页面上寄送feedback mail给管理者

前言 我们常常有个需求,是类似提供客服信箱的功能,让使用者可以很方便的将宝贵的意见feedback给站方管理者. 最常看到的就是,在menu或是页面的footer上,加上一个客服信箱的连结, 或是自己写一个表单,可以帮忙寄送相关资讯给站方. 没错,现在jQuery也有类似这样的plug-in,而且真的相当漂亮,还搭配动画让页面表现的更生动. 这边我要介绍的plug-in叫做"contactable",目的就是在页面上安插一个表单,类似用书签夹着的效果, 点一下就会像把书签抽出来的效果,

js在web页面上绘制圆形

在web页面上,想要画出一个圆形,方法有很多,SVG.canvas都可以绘图.但是本文不采用这两种方式,而是使用一个div.div一般是一个矩形,但是如果设置一个圆角样式border-radius就可以将div变成圆形. 圆的位置需要在画布中绝对定位(position: absolute),也就是通过设置X.Y坐标在定位,对应的css样式是left.top.想要圆的绝对定位起效,画布就要设置position:relative. <!DOCTYPE html> <html> <