pointer-events: auto; 是一个 CSS 属性,

pointer-events: auto; 是一个 CSS 属性,用于控制一个元素是否可以成为鼠标事件(如点击、悬停、拖动等)的目标。以下是对 pointer-events 属性及其值的详细解释:

pointer-events 属性

  • 定义pointer-events 属性控制如何处理鼠标事件。它可以用于控制元素是否响应鼠标事件以及如何处理事件。

pointer-events: auto;

  • auto: 这是 pointer-events 的默认值,意味着元素会响应所有正常的鼠标事件。例如,用户可以点击、拖动或悬停在这个元素上,且事件会被传递给该元素。

使用场景

  1. 默认行为:

    • 使用 pointer-events: auto; 是为了恢复元素的默认鼠标事件行为。这在您之前可能设置过 pointer-events: none;(使元素不可点击)之后恢复正常交互时特别有用。
  2. 元素层叠:

    • 在处理复杂的层叠布局时,pointer-events 可以帮助控制鼠标事件的传递。比如,如果有一个透明的覆盖层,设置为 pointer-events: none; 可以确保下层元素仍然响应鼠标事件。
  3. 动态交互:

    • 有时在 JavaScript 中动态更改 pointer-events 属性是很有用的。例如,您可以在某些条件下使某些元素变得不可点击或只在特定情况下才响应事件。

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Pointer Events Example</title>
    <style>
        .box {
            width: 100px;
            height: 100px;
            background-color: lightblue;
            border: 1px solid blue;
        }
        .box.disabled {
            pointer-events: none;
            background-color: lightgray;
        }
        .box.enabled {
            pointer-events: auto;
            background-color: lightblue;
        }
    </style>
</head>
<body>
    <div class="box enabled" id="myBox">Click Me</div>
    <button onclick="togglePointerEvents()">Toggle Pointer Events</button>

    <script>
        function togglePointerEvents() {
            const box = document.getElementById('myBox');
            if (box.classList.contains('enabled')) {
                box.classList.remove('enabled');
                box.classList.add('disabled');
            } else {
                box.classList.remove('disabled');
                box.classList.add('enabled');
            }
        }
    </script>
</body>
</html>

说明

在上面的示例中,box 元素的 pointer-events 属性可以通过点击按钮进行切换。当 pointer-events 被设置为 none 时,元素不会响应任何鼠标事件;当它被设置为 auto 时,元素会正常响应鼠标事件。

例子

 let htmlmodel = `
      <div  onclick='chickModelCom(${JSON.stringify(model)})'  style='cursor:pointer;pointer-events:auto;z-index: 99;font-size: 10px;color: #fff; display: inline-block; text-align: center;'>
      <div style='width:124px;height:30px;line-height: 30px; background-image: url(${back});background-repeat: no-repeat;background-size: 100% 100%; '>
      ${model.name} -:${model.speed}m/s
      </div>
      <div style='width: 20px; padding-top:20px; margin-left:49px; margin-top:12px; background-image: url(${modelPoint});background-repeat: no-repeat;'>
      </div>
      </div>
      `

没有加点击失败哦,有时候。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值