使用IE筛选器时不应用悬停样式,并且无法单击元素
Hover style is not applied when using IE filter and element cannot be clicked
我正在尝试创建一个可点击的覆盖,以放置在页面的任意部分上。覆盖层大部分是半透明的,但有一部分是完全不透明的,因此我不能简单地使用不透明度属性。
我能够让它在除IE7和IE8之外的所有浏览器中工作(我不在乎IE6)。
我的解决方案只是使用rgba使背景半透明,悬停样式会改变这种样式。当然,rgba在9之前的IE中不可用,所以我使用带梯度的filter和-ms filter来实现相同的效果。
问题是,一旦应用梯度过滤器,元素似乎就不会接收到任何悬停事件,因为没有使用悬停样式,也没有调用javascript事件。
关于如何在IE中使用渐变过滤器时接收悬停事件,有什么想法吗?
以下是应用于覆盖元素的样式:
#foo {
cursor: pointer;
position: absolute;
top: 0;
left: 0;
height: 400px;
width: 400px;
background-color: rgba(230, 250, 250, .25);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#40B0FAFA', endColorstr='#40B0FAFA')";
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#40B0FAFA', endColorstr='#40B0FAFA');
zoom: 1;
}
#foo:hover {
background-color: rgba(230, 250, 250, 1);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFB0FAFA', endColorstr='#FFB0FAFA')";
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFB0FAFA', endColorstr='#FFB0FAFA');
}
下面是一个使用jsFiddle的问题的简单示例。
您可以创建一个JQuery解决方案。
$('#foo').hover(function() {
$(this).css('backgroundColor', 'rgba(230, 250, 250, 1)');
//...
});
相关文章:
- 对同一类中的所有元素单击一次
- 元素单击处理程序由一个神秘的函数取消设置
- 在处理元素单击事件期间,在循环内部调用window.open()
- JS-是否可以获得元素单击位置的确切宽度
- 使用 jQuery 创建动态元素 单击事件始终返回 for 循环中的最后一个索引
- 选中父元素单击上的复选框
- 在窗口和其他元素单击时隐藏
- Polymerjs 的自定义菜单元素单击事件
- 使用 javascript 函数查找元素单击的类
- 元素单击仅使用 javascript
- 等待文档鼠标按下完成,然后元素单击才能开始
- 由于父元素的顶部和位置,子元素单击不起作用
- Jquery-在共享相同类名的其他元素之间选择一个元素(单击时)
- 目标元素单击子元素,获取父属性
- 根据元素单击更改选择选项值
- 为listview上动态生成的元素单击event
- 扩展原生元素单击事件
- 可以被许多元素使用的Javascript函数,然后区分哪个元素单击了它
- 当元素单击时隐藏iframe
- 按钮元素单击事件以切换类不起作用