鼠标禁用样式(cursor: not-allowed)&鼠标禁用事件(pointer-events: none)


前言

当一个按钮禁用的时候,我们需要展示禁用样式,使用cursor: not-allowed,同时我们需要在禁用状态下点击按钮,是不应该触发事件的,但是我们知道只使用cursor: not-allowed,实际上我们点击按钮时还是触发了事件。接下来我们就来讨论如何实现禁用样式且无法触发事件的实现


一、使用cursor: not-allowed,并且使用js代码去阻止事件的触发

代码如下:

  <span class="eib-sms__suffix">
    <span class="eib-sms__suffix-inner" :class="{
            'is-disabled': timeBuild,
            'is-click': msg === '获取验证码' || msg === '重新发送',
          }" @click="getSms">
      {{ msg }}
    </span>
  </span>
  data() {
    return {
      timeBuild: false,
      msg: '获取验证码',
      timer: 60,
    }
  },
  methods:{
      getSms() {
       //使用js代码去阻止事件的触发
	    if (this.timeBuild) return
	    this.timeBuild = true
	    let time = this.timer
		let timeCodeFinish = setInterval(() => {
	      if (time == 0) {
	        this.timeBuild = false
	        this.msg = '重新发送'
	        clearInterval(timeCodeFinish)
	        return
	      }
	      time--
	      this.msg = '重新获取(' + time + 's)'
	    }, 1000)
	  },
  }
  .eib-sms__suffix {
    position: absolute;
    height: 100%;
    right: 0;
    top: 0;
    text-align: center;
    color: #c0c4cc;
    transition: all 0.3s;
    pointer-events: none;
    width: 114px;

    .eib-sms__suffix-inner {
      pointer-events: all;
      line-height: 32px;
      font-size: 14px;
      font-weight: 400;
    }

    .is-disabled {
      color: #9ba0aa;
      //使用cursor: not-allowed达到禁用样式
      cursor: not-allowed;
    }

    .is-click {
      color: #0053db;
      cursor: pointer;
    }
  }

在这里插入图片描述

二、使用pointer-events: none

代码如下:

    .is-disabled {
      color: #9ba0aa;
      pointer-events: none;
      cursor: not-allowed;
    }

在这里插入图片描述

    .is-disabled {
      color: #9ba0aa;
      pointer-events: none;
    }

在这里插入图片描述

没有展示禁用样式,但并不会触发事件


总结

以上就是今天要讲的内容,本文介绍了两种禁用事件方法的使用。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值