如何用JS+CSS写一个完成后出现打钩动画的效果
Admin 2022-06-22 群英技术资讯 413 次浏览
之前老板让做一个登陆后 可以显示一个打钩的效果 百度死活搜不到 今天在B站看到的一个视频居然有 根据需求改进了一下废话不多说先看效果!
html代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>打钩动画</title> </head> <body> <div id="d1"> <input type="checkbox" style="display: none" id="love1" /> <label for="love1" id="btn1" >完成</label> <svg width="200px" height="200px"> <circle r="90" class="circle" fill="none" stroke="#2de540" stroke-width="10" cx="100" cy="100" stroke-linecap="round" transform="rotate(-90 100 100) " ></circle> <polyline fill="none" stroke="#2de540" stroke-width="10" points="44,107 86,137 152,69" stroke-linecap="round" stroke-linejoin="round" class="tick" ></polyline> </svg> <h2 style="text-align: center;width: 200px">成功</h2> </div> </body> <!--这里引入你本地的jq--> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> </html>
css代码
h2 { font-family: Helvetica; font-size: 30px; margin-top: 20px; color: #333; opacity: 0; } input[type="checkbox"]:checked+ label ~ h2 { animation: .6s title ease-in-out; animation-delay: 1.2s; animation-fill-mode: forwards; } .circle { stroke-dasharray: 1194; stroke-dashoffset: 1194; } input[type="checkbox"]:checked + label + svg .circle { animation: circle 1s ease-in-out; animation-fill-mode: forwards; } .tick { stroke-dasharray: 350; stroke-dashoffset: 350; } input[type="checkbox"]:checked + label+ svg .tick { animation: tick .8s ease-out; animation-fill-mode: forwards; animation-delay: .95s; } @keyframes circle { from { stroke-dashoffset: 1194; } to { stroke-dashoffset: 2388; } } @keyframes tick { from { stroke-dashoffset: 350; } to { stroke-dashoffset: 0; } } @keyframes title { from { opacity: 0; } to { opacity: 1; } } label { display: inline-block; height: 38px; width: 38px; line-height: 38px; padding: 0 18px; background-color: #1E9FFF; color: #fff; white-space: nowrap; text-align: center; font-size: 14px; border: none; border-radius: 2px; cursor: pointer; } #d1 { display: flex; justify-content: center; min-height: 100px; flex-direction: column; }
写到这里本来应该就结束了 但是我们在真正实现功能的时候 不太可能用 checkbox切换动画效果的显示 一般还是需要按钮操作动画效果 下面是jq操作的代码 其实用jq的.animate()更好一些但是我是小白所以就偷了个懒 (ps:好吧其实是不会)直接用.css()
JavaScript代码
$("#btn1").on("click",function () { if($(this).text()==="完成"){ $(".circle").css({'animation':'circle 1s ease-in-out','animation-fill-mode':'forwards'}); $(".tick").css({'animation':'tick .8s ease-out','animation-fill-mode':'forwards','animation-delay':'.95s'}); $("h2").css({'animation':'.6s title ease-in-out','animation-fill-mode':'forwards','animation-delay':'1.2s'}) $(this).text("取消") }else{ $(".circle").css({'animation':'none','animation-fill-mode':'none'}); $(".tick").css({'animation':'none','animation-fill-mode':'none'}); $("h2").css({'animation':'none','animation-fill-mode':'none'}) $(this).text("完成") } });
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了css和html的四种结合方式,需要的朋友可以参考下
今天小编给大家分享3种方法实现CSS隐藏滚动条并可以滚动内容,我已经在很多地方使用了非常不错,需要的朋友参考下吧
由于最近在做一些边框按钮的阴影效果用到了box-shadow属性,发现这个阴影效果的css属性真的很值得学习,特地网上学习了一下box-shadow属性。 一.box-shadow的定义和语法 定义: box-shadow是css3新增的一个属性。在W3School里,定义box-shadow是向框添加一个
css两个div怎么实现水平布局两边对齐?我们做网页设计时,有些需求需要两个div在两边对齐,那么要怎么写呢?有哪些实现方法?下面我们一起来看看。
HTML表格元素作用是什么,如何对表格美化?下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008