有时候浮动元素会遮住下面元素,并导致下面元素click事件不响应。看如下代码:
- <template>
- <Base>
- <div class="btn" @click="onBtn">
- 被遮挡button
- div>
- <div class="left-floating">div>
- Base>
- template>
-
- <script>
- export default {
- methods: {
- onBtn() {
- alert('没有被遮挡')
- }
- },
- };
- script>
-
- <style lang="scss" scoped>
- .btn{
- width: 200px;
- height: 50px;
- background: gray;
- position: relative;
- }
- .btn:hover{
- cursor: pointer;
- }
- .left-floating {
- width: 90px;
- height: 200px;
- position: absolute;
- left: 0;
- top: -20px;
- background-color: red;
- opacity: 0.3;
- }
- style>
运行后效果如下:
点击被红色遮住部分click事件没有响应。有2种方案可解决此问题:
1) 设置被遮住元素z-index
2)给浮动元素设置pointer-events 属性为none, 表示该元素永远不会成为鼠标事件的 target。具体含义可在网上看看。这个属性是CSS3属性,使用时注意浏览器兼容性。