把select标签放在一个带有滚动条的区域中时,在IE6下,拖动滚动条时,select选择框不能随着滚动条正常滚动,就像被卡住了一样,用鼠标点击select下拉框才能恢复正常。
经过试验,在IE6下出现这个问题的最精简代码如下:
|
1
2
3
4
5
6 |
<div style="height:60px;overflow:auto;filter:alpha(opacity=0)"> <select><option>a</option><option>b</option></select> <select><option>a</option><option>b</option></select> <select><option>a</option><option>b</option></select> <select><option>a</option><option>b</option></select> </div> |
只要去掉“filter:alpha(opacity=0)”这句样式,IE6中的问题就解决了,此处的问题与opacity的值无关,而是与是否有这句话有关。
下面给出一个js处理方法来去掉这句样式:
|
1
2
3
4
5 |
if(!jQuery.browser.opacity){//判断是否为IE6浏览器,因为IE6没有opacity这个属性 try{ this.boxy.get(0).style.filter = '';//把filter相关的都置为空 }catch(ex){} } |
而在用ietester调试的过程中,不论是不是加这句样式,都是没有问题的,因为ietester中的ie6有一个bug,是filter会失效,刚好,bug上再加上bug,就不会出现问题了。