广告位联系
返回顶部
分享到

利用css动画实现节流的介绍

css 来源:互联网 作者:佚名 发布时间:2023-01-24 08:49:06 人浏览
摘要

节流指的避免过于频繁的执行一个函数,例如:一个保存按钮,为了避免重复提交或者服务器考虑,往往需要对点击行为做一定的限制,不然会频繁的请求接口,之前基本上是通过js去

节流指的避免过于频繁的执行一个函数,例如:一个保存按钮,为了避免重复提交或者服务器考虑,往往需要对点击行为做一定的限制,不然会频繁的请求接口,之前基本上是通过js去控制节流问题,其实css也能做到节流

一、 css 实现思路(需要用到 pointer-events、animation以及:active)

  1. 对点击事件进行限制,也就是禁用点击事件,利用pointer-events
    1. pointer-events 属性用于设置元素是否对鼠标事件做出反应。
    2. 值:none 不做反应auto 默认值
  2. 利用动画animation,去改变当前按钮是否可点击
  3. 利用伪类 :active 触发按钮时机,就是点击行为

作用:实现按钮节流,利用css动画的控制,比如一个动画控制按钮从禁用-》可点击的变化,每次点击都让动画重新执行一次,就能达到节流的效果

实现方式:

首先利用animation写一个禁用开启的动画

1

2

3

4

5

6

7

8

@keyframes cssThrottle {

  from {

     pointer-events: none;

  }

  to {

      pointer-events: all;

  }

}

其次:把动画绑定到按钮上(设置延迟3s)

1

2

3

button {

     animation: cssThrottle 3s step-end forwards;

}

animation的 相关属性

  • step-end=》 steps(1, end)
  • step-start =》 steps(1, start)

step() 表示过度的情况
比如steps(5, end),表示把我们的动画分成了多少等分end表示从开始的时候就执行,最后那段被忽视,start则相反

forwards end时表示最后那一段就交给forwards处理,就是第五段

二、利用监听css的 transition 达到节流效果

通过:active去触发transition变化,然后通过监听transition回调去动态设置按钮的禁用状态

1

2

3

4

5

6

7

8

button{

  opacity: .99;

  transition: opacity 2s;

}

button:not(:disabled):active{

  opacity: 1;

  transition: 0s;

 }

然后监听transition的起始回调

1

2

3

4

5

6

7

8

// 过渡开始

document.addEventListener('transitionstart', function(ev){

   ev.target.disabled = true

})

// 过渡结束

document.addEventListener('transitionend', function(ev){

   ev.target.disabled = false

})

注意:这两种的话,安全性不高,可以通过 ui层面去绕开


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • css实现文字充电效果的代码

    css实现文字充电效果的代码
    今年Apple推出了搭载M2芯片的新款MacBook Pro和MacBook Air,得到消息第一时间也是去Apple官网看看介绍,看看他们的产品网页,这次没有什么特别
  • CSS动画实现跳动的足球(疯狂世界杯)

    CSS动画实现跳动的足球(疯狂世界杯)
    022卡塔尔世界杯正在如火如荼的进行之中,作为诸神的黄昏,本届世界杯备受瞩目,足坛巅峰老将c罗,梅西,内马尔也将随本次世界杯退役
  • 利用css动画实现节流的介绍

    利用css动画实现节流的介绍
    节流指的避免过于频繁的执行一个函数,例如:一个保存按钮,为了避免重复提交或者服务器考虑,往往需要对点击行为做一定的限制,不
  • CSS3实现一根心爱的二踢脚的代码

    CSS3实现一根心爱的二踢脚的代码
    2023春节快到了,虽然还在上班,但心情早已开始激动,感叹2022终将过去,喜迎2023兔年吧。让我以激动的心情,利用所学css3代码知识,实现
  • CSS预处理器scss/sass语法及使用教程介绍
    scss scss在css基础语法上面增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能,使用scss可以很方便的提高开
  • CSS样式覆盖的操作代码
    在页面中,我们常用id、class以及内联样式表来设置我们的组件CSS。有时候我们为了编码的简便会使用CSS库,这些库会设置好全局的CSS,但是
  • table设置超出部分隐藏,鼠标移上去显示全部内容
    table内容超出宽度时隐藏并显示省略标记 HTML中,一个表格,要达到二个条件: 1、内容多了不自动换行; 2、固定单元格宽度。如果内容超出
  • table不让td文字溢出操作方法
    核心代码 1 2 3 4 5 6 7 8 9 10 11 table{ width:100px; table-layout:fixed;/* 只有定义了表格的布局算法为fixed,下面td的定义才能起作用。 */ } td{ width:100%
  • CSS使用SVG实现动态分布的圆环发散路径动画

    CSS使用SVG实现动态分布的圆环发散路径动画
    这个需求也是最近的大屏项目里面需要用到的一个效果,大致需求是实现一个圆形范围内 由一个不确定坐标的点 向圆周进行曲线发散 的效
  • CSS3浏览器兼容的介绍

    CSS3浏览器兼容的介绍
    一、浏览器兼容 1.1、概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题。不同浏览器其内核
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计