`
yiminghe
  • 浏览: 1460284 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

焦点抑制与选择区域

阅读更多

之前关于焦点也有过探讨:


焦点与键盘监控


firefox中iframe焦点丢失问题


焦点相关事件兼容性问题


这次要说的则是焦点以及以及元素内选择的问题。


html中的某些元素 (a,button)或经过设置属性的元素(tabindex )可以获得焦点以及失去焦点,获得了焦点就可以响应键盘,读屏器等辅助设备了。


另一方面可以通过鼠标按下选定某段选择区域的开始位置,以及鼠标放开标志该选择区域的结束。


而焦点,选择区域与鼠标按下操作也有联系,鼠标按下不仅意味着接受元素可以有机会获得焦点,另一方面也可能导致一端新选择区域的开始。


1.正常情况


如下所示,高亮元素为黄色,鼠标在区域 2 按下会使得区域 2 获得焦点,若同时拖放则会使得区域 2 的内容部分选中


正常情况 demo



2.控制选择


标准浏览器:


css 存在 user-select 属性 ,目前firefox,wekit有对应的 -moz-user-select ,-webkit-user-select ,如果设置为 none,则该元素内的所有东西(包括子孙元素)都不能被选中了,但是元素还是可以获得焦点的。ctrl-a 都不会选择到区域 2 !


ie:

 

ie 比较另类,有着相似的 unselectable 属性,但是该属性和 css 属性 user-select 不同之处在于:


1.unselectable 仅仅是控制选择区域的开始和结束位置使得其不能位于设置属性的元素本身(文字节点),而对其子孙节点则不会限制。但 ctr-a 还是可以选择到区域 2 的 !


2.另一点需要注意的是 unselectable 会影响页面焦点的切换,设置了 unselectable 的元素即使被点击也不会获得焦点!


对应 ie 的这个属性,一般是对元素以及其子孙元素全部设置 unselectable ,使得不能从该元素开始选择以及焦点抑制:

 

PS : updated 2010-12-10

 

 

在 ie9 的超标准模式下,必须写成

 

element.setAttribute("unselectable", 'on');

 

而不是

 

elment.unselectable='on';

 

难道是因为 ie9 彻底分离了 attribute 与 property


unselectable 与 user-select


ie 设置 unselectable ,其他设置 user-select


PS2 : input 焦点抑制

 

updated 2011-01-26

 

对于 input 并不起作用,点了 input ,还是一定会使得当前焦点移到点击的 input 上面去,尝试 onbeforedeactivate onbeforeactivate 似乎也不起作用,只能通过一个绝对定位的 span 遮盖掉当前的 input:

 

<span class="ks-wrap">
<span class="ks-mask" style="opacity: 0;"></span>
<input id="sel"/>
</span>
 

设置  ks-wrap 与 ks-mask 为 unselectable ,并设置mask 样式遮盖input :

 

.ks-mask {    
    position:absolute;
    background-color:black;
    z-index:99;
    width:100%;
    height:100%;
    *width:expression(function(el){el.style.width=el.parentNode.offsetWidth;}(this));
    *height:expression(function(el){el.style.height=el.parentNode.offsetHeight;}(this));
}

 

PS3 : onselectstart

 

ie 上 和 user-select 效果最接近的应该是注册元素的 onselectstart 事件,使得不能从这个元素开始一段选择区域

 

 

el.onselectstart=function(){ return false;}

 

但是仍然可以 ctrl-a 选中,如果绑定在 body 上,那么整个文档就不能有选择区域了:

 

document.body.onselectstart=function(){ return false;}

3.焦点抑制


ie 下同 2 所说,设置 unselectable 不但会导致选择区域受影响,而且会导致焦点切换失效。


对于标准浏览器,焦点则是和选择区域控制分离,user-select 只控制选择区域,而焦点则由 mousedown 控制,根据前文可知,鼠标点击与焦点事件的触发关系为(a1为当前焦点元素,在a2上点击):


a2.mousedown


a1.blur


a2.focus


mousedown 是可以被阻止的,在标准浏览器中一旦阻止a2 mousedown的默认事件,则底下的事件都不会触发了,即 a1 不会失去焦点,a2 也不会获得焦点,达到了焦点抑制的目的,同时控制选择区域的起始位置不会出现 a2 的内容中,但是 ctr-a 还是可以选中 a2 内容的。



mousedown return false demo


4.焦点抑制+选择控制


对于 ie 用 2 方法即可,而对于标准浏览器则要结合 2,3 才能同时达到焦点抑制以及选择控制的目的:

 

兼容各个浏览器的demo:


focus and selection control for all demo

 

效果:

 

点击区域2不会获得焦点,不能从区域2中间开始选择,标准浏览器 ctrl-a 也不能选择区域2内容,ie ctrl-a 可以获得区域2内容。





  • 大小: 4.7 KB
分享到:
评论

相关推荐

    matlab 焦点检测

    ### MATLAB焦点检测技术详解 #### 一、引言 在图像处理领域,角点检测是一项基本而重要的技术,被广泛应用于计算机视觉中的诸多任务,如图像配准、三维重建等。MATLAB作为一种强大的数学计算软件,提供了丰富的...

    云计算模型下图像边缘重叠区域检测方法研究.pdf

    综上所述,云计算模型下图像边缘重叠区域检测方法的研究将云计算技术与图像处理技术相结合,不仅提高了图像检测的准确性,还提升了处理效率。这对于依赖图像识别和图像处理技术的领域,如医疗成像分析、卫星图像处理...

    光机系统中的杂散光的抑制与控制.docx

    ### 光机系统中的杂散光的抑制与控制 #### 一、杂散光概述 在光机系统中,杂散光是指从光源发出并以非预期的方式到达成像面的光线,它不仅出现在成像系统中,同样也在非成像系统中普遍存在。杂散光主要包括两种...

    使用稀疏特征的多焦点图像融合

    这一步骤保证了最终融合图像能够集中展现出源图像中的焦点区域,同时也提高了融合图像的整体质量。 文中也提到了多个客观评估指标,如结构相似性(SSIM)、互信息(MI)以及从源图像到融合图像传输的边缘信息,这些...

    基于改进Itti视觉显著性模型的SAR图像弱目标检测

    最后,结合使用注意焦点(FOA)转移和区域生长两种方法,从显著图中提取出弱目标区域。 Itti视觉注意模型是视觉注意领域中最具代表性的模型。该模型包括五项关键技术:高斯金字塔生成、特征图提取、中心周围差分...

    基于脉冲耦合神经网络的新型多焦点图像融合方法

    互信息用于衡量源图像与融合图像之间的相似度,而峰值信噪比则用于评价融合图像的细节保留和噪声抑制能力。 研究成果表明,提出的基于PCNN的多焦点图像融合方案在提取清晰区域和提高融合质量方面均优于其他现有的...

    (发展战略)跨国公司投资对区域经济发展贡献度文献综述(国外).docx

    首先,跨国直接投资对区域经济发展的积极作用是研究的焦点。投资活动能促进东道国经济增长,提升技术水平,改善产业结构,并推动对外贸易。例如,Chen等人、Harrold、Lardy、Pomfret、Pan等对中国的研究表明,跨国...

    关于耗散光偏振态

    这一技术的核心原理在于利用一个具有甜甜圈形状强度分布的耗散光束来抑制周围区域的荧光发射,仅允许中心区域的荧光信号通过,从而显著提高图像分辨率。 #### 偏振态对暗焦点尺寸的影响 1. **基本偏振类型**:在ST...

    基于视觉熵的视觉注意计算模型

    5. **焦点选择与注意力转移**:模型将视觉熵最高的区域视为当前的注意力焦点,并通过人类视觉注意的抑制返回机制来模拟注意力的转移过程。这一步骤使得模型能够模拟人类视觉注意力随时间的变化。 #### 实验验证与...

    itti模型的代码,

    通过自适应阈值和非极大值抑制等步骤,可以进一步细化这些区域,得到最终的注意力焦点。 在Matlab环境中实现itti模型,通常需要以下步骤: 1. **数据预处理**:将原始图像转换为合适的格式,如灰度或HSV色彩空间。 ...

    实验三 图像分割与边缘检测.doc

    实验三的焦点是图像分割与边缘检测,这是数字图像处理中的核心环节。图像分割是将图像分成多个具有特定属性的区域,如颜色、亮度或纹理一致的区域,以此来揭示图像中的重要结构和细节。边缘检测则是找出这些区域之间...

    生理心理学笔记(注释)总结.doc

    当某一刺激成为注意的焦点时,与该刺激相关的神经元会兴奋,而与之无关的神经元则受到抑制,使得我们能够集中精力处理重要信息,忽略不重要的干扰。这种兴奋和抑制的动态平衡是大脑皮层功能定位和等势理论的基础。 ...

    Harris角点检测

    角点定义为图像中灰度值变化显著的区域,这些区域在多个方向上都有明显的边缘。为了量化这种变化,哈里斯提出了一个响应矩阵,也称为结构矩阵。结构矩阵M是一个2x2的矩阵,其元素由以下公式计算: \[ M = \begin{b...

    高速电路电源分配网络设计与电源完整性分析

    尤其是关于去耦网络的设计与分析,一直以来都是争论不休的焦点。电源分配网络是高速数字设计的核心,它直接影响着电源完整性、信号完整性和电磁完整性等系统的性能。本论文重点研究高速数字系统的电源分配网络设计与...

    钢铁行业周报:当前焦点为环保限产效果是否可以转佳.pdf

    在成本增加的情况下,吨钢盈利已经处于底线区域,一旦限产效果好转或市场需求明显复苏,吨钢盈利有望持续回升。基于此,分析师建议关注具有盈利潜力的钢铁企业。 风险提示方面,报告提到了宏观经济不达预期和供给...

    丙泊酚麻醉对大鼠工作记忆任务中PFC中LFP之间功能连接的抑制作用

    丙泊酚麻醉对这些功能连接的抑制作用可能与麻醉药物对认知功能影响的潜在机制有关。 此外,本研究为以后的研究提供了新的视角和方法。利用DTF方法分析PFC内LFPs之间的功能连接,可以更深入地研究药物如何影响大脑中...

Global site tag (gtag.js) - Google Analytics