我有一个包裹在一个锚点中的图像,该锚点上有一个点击动作(一个简单的案例在上面的小提琴中)。
在某些时候,这个动作是无效的,所以我想做三件事:
- 使图像变灰 (
-webkit-filter: invert(40%);
) - 禁用点击事件 (
pointer-events: none;
) - 更改光标 (
cursor: not-allowed;
)
将图像变灰总是有效的,但似乎指针事件和光标属性不能很好地结合在一起。
当同时应用指针事件和光标属性时,我希望该操作被禁用并且光标会改变 - 但似乎指针事件属性覆盖了我设置光标的能力。
这样做的正确方法是什么?
代码:
No styles <br>
<a href="javascript:alert('clicked')"><img src="https://www.google.com/images/srpr/logo11w.png"/></a>
<hr>
pointer-events: none (good - I cannot click) <br>
<a class="grey no-click-1" href="javascript:alert('clicked')"><img src="https://www.google.com/images/srpr/logo11w.png"/></a>
<hr>
cursor: not-allowed (good - I can click, but the cursor has changed) <br>
<a class="grey no-click-2" href="javascript:alert('clicked')"><img src="https://www.google.com/images/srpr/logo11w.png"/></a>
<hr>
pointer-events: none AND cursor: not-allowed (bad - I can't click but the cursor has NOT changed)<br>
<a class="grey no-click-3" href="javascript:alert('clicked')"><img src="https://www.google.com/images/srpr/logo11w.png"/></a>
img {
height: 80px;
}
.grey {
-webkit-filter: invert(40%);
}
.no-click-1 {
pointer-events: none;
}
.no-click-2 {
cursor: not-allowed;
}
.no-click-3 {
pointer-events: none;
cursor: not-allowed;
}