最近做东西的一点收获

1、关于IE去掉A标签的虚线框:

a {
    blr:expression(this.onFocus=this.blur());/* IE Opera */
    outline:none;/* FF Opera */ 
}

a:focus {
    -moz-outline-style:none;
}
 
全局控制 CSS实现 
 
a {
    blr:expression(this.onFocus=this.close()); /* 只支持IE,过多使用效率低 */
}

a {
    blr:expression(this.onFocus=this.blur()); /* 只支持IE,过多使用效率低 */
}

a:focus {
    -moz-outline-style:none;  /* IE不支持 */
}
 
在 Firefox 里可以用 -moz-outline:none; 或者 outline:none; 来将其去掉。所以我们可以这样写:
 
a:focus {
     outline:none;
    -moz-outline:none;
}
 
顺便提一下,如果你用过 Safari 和 Chrome 可能会发现,当输入框得到焦点时边框会出现阴影效果。
 
如果想去掉阴影效果也可以用 outline 属性。
 
input,textarea {
     outline:none;
}
 
言归正传,刚刚说的是 Firefox ,现在说说 IE。首先比较遗憾,还没有找到通过 CSS 去掉 IE 链接虚线框比较好的解决办法。所以只能用一个替代的办法,就是 a 标签的 hidefocus 属性(这个属性是 IE 独有的)。
 
<a  href= "#" hidefocus= "true" >链接 </a>
 
 
2、区分mousedown和click:
 
大家都知道,鼠标点击的整个事件流程是:mousedown->mouseup->click,拖放的整个事件流程是:mousedown->mousemove->mouseup->click。我在做这个小项目的时候,碰到这么个问题,在触发mousedown事件的时候连带触发了 click 事件,这个问题我后来的解决方法是分别在 mousedown 和 mouseup 的时候记录鼠标的位置,如果鼠标位置没变化,那么就说明是 click 事件,如果鼠标位置有变化,那么就不触发 click 事件。
 
由这个问题引发了一个比较奇怪的问题,就是在 chrome 浏览器下,dom 元素的 title 属性会导致触发 mousedown 事件的同时连带触发 mousemove 事件, 如下例子:
 
<body>
     <div  id= "test"  style= "width: 100px; height: 100px; border: 1px solid black"  title= "erer" >asdasd </div>
     <script  type= "text/javascript" >
        var $ = function (id) {
            return typeof id ===  'string' ? document.getElementById(id) : id;
        }

        $( 'test').onmousedown = function () {
            console.log( 'this is mousedown event');
        };

        $( 'test').onmousemove = function () {
            console.log( 'this is mousemove event');
        }
     </script>
</body>
 
我们可以看到 id 为 test 的div 中有个属性 title,关于 title 属性有个特性,当你鼠标按下的时候,提示文字会隐藏,鼠标松开的时候则显示。
 
在 chrome 下运行这个例子,当鼠标在div中按下且不松开,我们会在控制台看到如下输出:
 
 
那么当我们松开鼠标的瞬间控制台输出如下:
 
 
可以看到,松开鼠标会输出 "this is mousemove event",相当于触发了 mousemove 事件,接下来就比较奇怪了,在提示信息 title 出现的时候,控制台会接着输出"this is mousemove event"即 mousemove 事件又触发了一次,如图:
 
 
具体的原因找了很多资料没有找到。
 
我这里避免的方法一个是避免使用 title 属性,另一个是事件动态绑定,也能解决问题,但是不知道根本原因,总感觉不爽,等以后知道原因了再补上来。。。。
 

转载于:https://www.cnblogs.com/ielgnaw/archive/2013/05/27/3100827.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值