您现在的位置是:网站首页> 编程资料编程资料
实现点击按钮后CSS加载效果的实现CSS动态条形加载条效果的示例代码CSS3实现王者荣耀匹配人员加载页面的方法如何只在IE上加载CSS样式表
2021-09-03
1000人已围观
简介 这篇文章主要介绍了实现点击按钮后CSS加载效果的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
由于自己公司产品里头,有个按钮在点击之后,会有一两秒的等待时间(寄认证信),因此为了避免点击后一两秒的加载时间空窗,就做个loading动画来强化使用者体验,原本想说直接用张gif来解决,但又想借着这个机会练功,就使用了CSS的渐变效果来达成,没想到效果还满好的,而且不需要额外增加div之类的元素,单纯修改CSS和加上点击事件就完成了。
效果演示
先来看一下完成的效果。

实现过程
这个效果其实很容易,先来看一下原本的按钮长相,就只是个div套用CSS而已。
HTML:
click me
CSS:
.btn{ position:relative; width:200px; height:30px; line-height:30px; text-align:center; border-radius:3px; background:#5ad; color:#fff; cursor:pointer; }长相就会是这样(就只是很简单的CSS):

那么要怎么在上面盖上动画呢?这时候就要利用CSS的伪元素,在上方盖上一个before伪元素,把动画放在这个伪元素内即可。
CSS:
.btn::before{ content:"loading"; position:absolute; width:200px; height:30px; line-height:30px; text-align:center; border-radius:3px; z-index:2; top:0; left:0; color:#fff; text-shadow:rgba(100,0,0,1) 0 0 3px; background:#c00; }套上before之后,就会发现原本的被覆盖了。

了解原理后,再来就是把before的背景改成动画,这里用到两个CSS3的技巧,第一个是渐变色的背景,第二个是动画,第一个渐变色比较复杂些,主要就是让渐变以45度的方式填充,内容是两种颜色互相搭配,但必须配合background-size,让渐变能够顺利地接在一起,这边通常是要调整最久的地方。
background:linear-gradient(45deg,#fc0 0%,#fc0 20%,#fa0 20%, #fa0 45%,#fc0 45%,#fc0 70%,#fa0 70%, #fa0 95%,#fc0 95%,#fc0 100%); background-size:30px 30px; background-position:0 0;
从下图可以看到,如果没有一步步调整,出来的长相可能就会没接好,调整完成的就会接得很顺畅。

完成之后就是要套用CSS3的动画效果,让background-position改变,背景就会自动变化了。
animation:click 1s infinite linear; @keyframes click { 0%{ background-position:0 0; } 100%{ background-position:30px 0; } }
到这边其实完成了百分之八十了,最后一步就是要加上点击的事件,这里我的作法是先把刚刚的伪元素用display:none隐藏起来,接着新增一个class名为click,当点击按钮的时候,按钮就会套用click的class,伪元素就会出现了,以下是完整的代码,不过有做了些简化,以及让点击2秒之后,按钮会恢复原样。
CSS:
.btn,.btn::before{ width:200px; height:30px; line-height:30px; text-align:center; border-radius:3px; } .btn{ position:relative; background:#5ad; color:#fff; cursor:pointer; } .btn::before{ content:"loading"; position:absolute; display:none; z-index:2; top:0; left:0; color:#fff; text-shadow:rgba(100,0,0,1) 0 0 3px; background:linear-gradient(45deg,#fc0 0%,#fc0 20%,#fa0 20%, #fa0 45%,#fc0 45%,#fc0 70%,#fa0 70%, #fa0 95%,#fc0 95%,#fc0 100%); background-size:30px 30px; background-position:0 0; animation:click 1s infinite linear; } .btn.click::before{ display:block; } @keyframes click { 0%{ background-position:0 0; } 100%{ background-position:30px 0; } }jquery:
$(function(){ var timer; $('.btn').on('click',function(){ $('.btn').addClass('click'); clearTimeout(timer); timer = setTimeout(function(){ $('.btn').removeClass('click'); },2000); }); });
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- CSS 中重要的层叠概念详解
- 详解css3中 text-fill-color属性 CSS3 Text Stroke(文本描边)和text-fill-color(文本填充色)调试工具
- 几种常见的CSS布局(小结)CSS布局之如何实现居中布局css等高布局常用几种方式CSS之居中布局的实现方法css实现三栏布局的几种方法及优缺点
- 解决margin 外边距合并问题 使用CSS实现三栏自适应布局(两边宽度固定,中间自适应)CSS实现三栏布局中间一栏自适应且随文字大小变化宽度的示例代码CSS columns实现两端对齐布局的示例代码用CSS Grid布局制作一个响应式柱状图的实现解决CCS中的margin:top塌陷问题css如何利用负margin技术实现平均布局CSS 外边距(margin)重叠及防止方法css 布局 之 两端布局的实例代码 (利用父级负的margin)
- 纯css实现更改图片颜色的技巧 实现带CSS混合模式的JS视觉差轮播图特效jQuery基于CSS3混合模式的轮播图特效CSS3混合模式mix-blend-mode/background-blend-mode简介css3 svg仿微信加载框代码使用CSS混合模式和SVG来动态更改产品图片的颜色
- svg+css3做一个动感的波浪效果实现CSS3径向渐变radial-gradient实现波浪边框和内倒角的方法css3实现波纹特效、H5实现动态波浪效果CSS3实现文字波浪线效果示例代码
- 什么是BFC? CSS 使用伪元素清除浮动的方法CSS 列表模型之marker标记的使用浅谈CSS 伪元素&伪类的妙用CSS :befor :after 伪元素的巧妙用法CSS3中伪元素::before和::after的用法示例CSS 伪元素::marker详解
- css实现文字竖排的方式(小结)使用CSS实现文字的竖排的简单方法css实现文字竖排效果示例代码
- 20个让你效率更高的CSS代码技巧(整理)提高CSS代码效率的编写技巧CSS代码编写的一些性能优化技巧总结CSS3 实用技巧:实现黑白图像效果示例代码网页设计中HTML代码、CSS代码和javascript的技巧和细节关于CSS Hack与float闭合的CSS技巧 清除浮动代码CSS小技巧 导航中鼠标经过变换文字的实现代码CSS 代码质量提高的10条实用技巧帮我写出更好的CSS代码的一些技巧可读性CSS代码编写的小技巧CSS技巧:改善代码可读性并简化代码管理-CSS教程-网页制作-网页教学网
- flex布局被子元素撑开如何保持内容不超出容器的方法flex布局实现左侧文字溢出省略右侧文字自适应详解flex实现左右布局中按钮溢出隐藏效果Flexbox 布局的最简单表单的实现详解flex多列布局遇到的问题和解决方案 css flex几种多列布局浅谈CSS3中display属性的Flex布局的方法
