当前位置: 首页 > news >正文

无障碍网站建设的摘要百度首页推广广告怎么做

无障碍网站建设的摘要,百度首页推广广告怎么做,怎么让搜索引擎收录网站,wordpress超简洁主题实现防重复操作(JS与CSS) 一、前言 日常开发中我们经常会对按钮进行一个防重复点击的校验,这个通常使用节流函数来实现。在规定时间内只允许提交一次,可以有效的避免事件过于频繁的执行和重复提交操作,以及为服务器考…

实现防重复操作(JS与CSS)

一、前言

日常开发中我们经常会对按钮进行一个防重复点击的校验,这个通常使用节流函数来实现。在规定时间内只允许提交一次,可以有效的避免事件过于频繁的执行和重复提交操作,以及为服务器考虑 。

举例假设有一个提交按钮submit,现在要对于这个按钮来进行防重复校验;

<button type="submit" id="subBth">提交<button/>

下面介绍集中防重复点击的方案:

二、JS实现防重复点击

节流思想:就是在一定时间内不管触发多少次,只要过了单位时间只会执行一次。结合场景来说就是用户点了一次提交之后,5s内重复点提交按钮都不会重新发起请求。

2.1 手写节流函数

实现思路:

  1. 点击事件触发后设置一个倒计定时器;
  2. 在定时器还没结束之前再次点击不进入事件;
  3. 定时器结束之后可以再次点击;
const throttle = (fn, delay) => {let timer = null;return function() {if(!timeout){timeout = setTimeout(()=>{timeout = null;fn.apply(this, arguments);},delay)}};
}// 提交事件
function submit() {};
const btn = document.querySelector('#subBth');
btn.addEventListener('click', throttle(submit, 500));

2.2 使用lodash工具库

// 安装  npm i --save lodash
// 使用
import { throttle } from 'lodash';
// 提交事件
function submit() {};
const btn = document.querySelector('#subBth');
btn.addEventListener('click', throttle(submit, 500));

三、使用CSS实现防重复点击

从CSS层面需要做哪些事情:

  1. 需要控制button按钮的点击限制;
  2. 需要有时间控制禁用时效;
  3. 规定时间结束后可以再次点击;

为此需要介绍两个CSS属性

3.1 pointer-events指针属性

官方文档解释为:指定在什么情况下 (如果有) 某个特定的图形元素可以成为鼠标事件的target(事件触发对象)。

简单来说就是:可以控制元素是否可以被事件冒泡或捕获到,主要是适用于SVG内容的,但这里我们可以用它来控制按钮是否可以被点击

属性值有很多,这里就不一一介绍感兴趣的可以去官方文档查看

我们需要了解的属性值是noneall

  1. none:元素永远不会成为鼠标事件的触发对象;
  2. all:只有鼠标指针在元素内部或边界时,元素才会成为鼠标事件的目标

3.2 animation动画属性

官方解释:animation 属性是 animation-nameanimation-duration, animation-timing-functionanimation-delayanimation-iteration-countanimation-directionanimation-fill-modeanimation-play-state属性的一个简写属性形式。用来指定一组或多组动画,每组之间用逗号相隔。

简单来说:animation 就是一个动画的组合属性的简写,可以让我们不需要写那么多的css动画属性。

在这里也不详细介绍具体用法,感兴趣可以去官方文档学习。

3.3 具体实现

实现思路:

  1. 设置500ms的动画时间
  2. 动画开始时禁用鼠标事件
  3. 动画结束后取消禁用
  4. 设置active清空animation动画,方便点击是再次触发动画
  5. 设置提交事件直接使用就行
/* 小知识点:在active触发时设置animation为none,会重新触发动画 */
#subBth:active{animation: none;
}
#subBth{width: 200px;height: 60px;font-size: 30px;background: #00ffff ;/* animation: 动画名称绑定keyframes 动画时长 速度曲线 动画不播放状态  *//* step-end: 上一个状态直接切换下一个状态 *//* forwards: 当动画播放完成后,保持动画最后一个关键帧中的样式 */animation: throttle 500ms step-end forwards;
}
/* 定义动画规则 */
@keyframes throttle {/* 动画开始时样式 */from {background: #eee;pointer-events: none;}/* 动画结束时样式 */to {background: #00ffff;pointer-events: all;}
}const btn = document.querySelector('#subBth');
btn.addEventListener('click', submit);
http://www.tj-hxxt.cn/news/26483.html

相关文章:

  • 怎样建一个可以支付的网站厦门关键词排名提升
  • 徐州网站开发兼职长沙关键词优化新行情报价
  • 优秀的展厅设计网站百度推广是什么
  • 普陀区网站建设前端百度地址
  • 有没有做丝网的网站呀营销网站建设规划
  • 深圳住房建设局官方网站网站推广做什么
  • 吉林省建设集团有限公司网站wordpress官网入口
  • 众展seo推广重庆店铺整站优化
  • 网站服务公司人工成本进什么费用腾讯企点官网
  • 建设一个网站流程图淮北seo
  • 关于网的设计创意作品seo查询外链
  • wordpress字体旋转seo优化教学视频
  • 张北县网站建设快速建站哪个平台好
  • 在线游戏网页版性价比高seo排名优化的
  • wordpress建两个网站免费b站推广短视频
  • 网站服务器可以为网络客户端提供文档我想在百度发布信息
  • 快速建站公司地址公司网络推广服务
  • 律师做几个网站南京网络推广公司排名
  • 建设b2b网站平台精准营销方式有哪些
  • 网站设计结构南宁网站建设网站推广
  • 天猫淘宝旗舰店seo网络推广怎么做
  • 璧山网站建设站长工具seo综合查询 分析
  • 在床上做很黄很暴力网站推广引流渠道有哪些
  • 研究网站建设广告公司是做什么的
  • 企业网站建设与管理新闻式软文范例
  • 网站建设响应式是什么意思网络推广 网站制作
  • 无为网站建设seo百度推广
  • 易营宝智能建站平台网络优化工程师简历
  • 门户设计风格湖南seo优化服务
  • 网络工作室门店照片seo网站内容优化