37.如何把握好 transition 和 animation 的时序,创作描边按钮特效
原文地址:https://segmentfault.com/a/1190000015089396
拓展地址:https://scrimba.com/c/cWqNNnC2
HTML code:
<nav>
<ul>
<li>Home</li>
</ul>
</nav>
CSS code:
/* 子元素垂直、水平居中 */
body {
margin:;
padding:;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background-color: black;
}
:root {
--time-slot-length: 0.1s;
--t1x: var(--time-slot-length);
--t2x: calc(var(--time-slot-length) * 2);
--t3x: calc(var(--time-slot-length) * 3);
--t4x: calc(var(--time-slot-length) * 4);
--color: dodgerblue;
}
nav ul {
padding:;
}
nav ul li {
color: white;
list-style-type: none;
font-family: sans-serif;
text-transform: uppercase;
width: 8em;
height: 3em;
border: 1px solid rgba(255, 255, 255, 0.2);
border-radius: 0.1em;
text-align: center;
line-height: 3em;
letter-spacing: 0.1em;
position: relative;
transition: var(--t4x); /* duration 4x */
margin: 1em;
} nav ul li:hover {
color: var(--color);
/* 在描边结束后,在按钮四周增加一个脉冲动画,加强动感 */
animation: pulse ease-out 1s var(--t4x); /* delay 4x */
}
/* 用 before 伪元素定义上边框和右边框,其中边框颜色因会多次被用到,所以采用变量:
类似地,用 after 伪元素定义右边框和下边框 */
nav ul li::before,
nav ul li::after {
content: '';
position: absolute;;
width:;
height:;
border-radius: 0.1em;
visibility: hidden;
} nav ul li::before {
top:;
left:;
border-top: 1px solid var(--color);
border-right: 1px solid var(--color);
transition:
/* 属性 速度曲线 所花时间 开始时间 */
height linear var(--t1x) var(--t2x), /* delay 2x */
width linear var(--t1x) var(--t3x), /* delay 3x */
visibility 0s var(--t4x); /* delay 4x */
} nav ul li::after {
bottom:;
right:;
border-bottom: 1px solid var(--color);
border-left: 1px solid var(--color);
transition:
height linear var(--t1x),
width linear var(--t1x) var(--t1x), /* delay 1x */
visibility 0s var(--t2x); /* delay 2x */
} nav ul li:hover::before,
nav ul li:hover::after {
width: 100%;
height: 100%;
visibility: visible;
} nav ul li:hover::before {
transition:
visibility 0s,
width linear var(--t1x),
height linear var(--t1x) var(--t1x); /* delay 1x */
} nav ul li:hover::after {
transition:
visibility 0s var(--t2x), /* delay 2x */
width linear var(--t1x) var(--t2x), /* delay 2x */
height linear var(--t1x) var(--t3x); /* delay 3x */
} @keyframes pulse {
from {
/* rgb(30, 144, 255) = dodgerblue */
box-shadow: 0 0 rgba(30, 144, 255, 0.5);
} to {
box-shadow: 0 0 0 1em rgba(30, 144, 255, 0);
}
}
37.如何把握好 transition 和 animation 的时序,创作描边按钮特效的更多相关文章
- 前端每日实战:37# 视频演示如何把握好 transition 和 animation 的时序,创作描边按钮特效
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/mKdzZM 可交互视频教程 此视频 ...
- 如何把握好 transition 和 animation 的时序,创作描边按钮特效
效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/mKdzZM 可交互视频教 ...
- 终于不再对transition和animation,傻傻分不清楚了 --vue中使用transition和animation
以前写页面注重在功能上,对于transition和animation是只闻其声,不见其人,对于页面动画效果心理一直痒痒的.最近做活动页面,要求页面比较酷炫,终于有机会认真了解了. transition ...
- 弄清 CSS3 的 transition 和 animation
弄清 CSS3 的 transition 和 animation transition transition 属性是 transition-property, transition-duration, ...
- css3实践之图片轮播(Transform,Transition和Animation)
楼主喜欢追求视觉上的享受,虽常以牺牲性能无法兼容为代价却也乐此不疲.本文就通过一个个的demo演示来简单了解下css3下的Transform,Transition和Animation. 本文需要实现效 ...
- css010 css的transform transition和animation
css010 css的transform transition和animation 看着没有一个能想起他们是干什么的.. 1. Transform Transform(变形) r ...
- transition和animation动画简介
本文介绍CSS动画的两大组成部分:transition和animation.我不打算给出每一条属性的详尽介绍,那样可以写一本书.这篇文章只是一个简介,帮助初学者了解全貌,同时又是一个快速指南,当你想不 ...
- CSS3中动画属性transform、transition 和 animation
CSS3中和动画有关的属性有三个 transform.transition 和 animation.下面来一一说明: transform 从字面来看transform的释义为改变,使 ...
- transition与animation
以前,一直都知道,transition是animation的一个简化版,甚至不算是动画,而是一种过渡. transition的用法 早两天用transition写了一个按钮滑动的效果,类似于IOS的设 ...
随机推荐
- EXPLAIN执行计划中要重点关注哪些要素
MySQL的EXPLAIN当然和ORACLE的没法比,不过我们从它输出的结果中,也可以得到很多有用的信息. 总的来说,我们只需要关注结果中的几列: 列名 备注 type 本次查询表联接类型,从这里可以 ...
- js this详解,事件的三种绑定方式
this,当前触发事件的标签 在绑定事件中的三种用法: a. 直接HTML中的标签里绑定 onclick="fun1()"; b. 先获取Dom对象,然后利用dom对象在js里绑定 ...
- inf 启动
How to install an INF file using Delphi If you need to install an "inf" file using Delphi, ...
- Android 如何让EditText不自动获取焦点 (转)
在项目中,一进入一个页面, EditText默认就会自动获取焦点. 那么如何取消这个默认行为呢? 在网上找了好久,有点 监听软键盘事件,有点 调用 clearFouse()方法,但是测试了都没有! x ...
- SpringCloud之实现客户端的负载均衡Ribbon(二)
一 Ribbon简介 Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP的客户端的行为.为Ribbon配置服务提供者地址后,Ribbon就可基于某种负载均衡算法,自动地帮助服务 ...
- LaTex与数学公式
w(t) \longrightarrow \bigg[\frac{\sqrt{2\sigma ^2\beta}}{s+\beta}\bigg] \longrightarrow \bigg[\frac ...
- 一个关于WCF调用远程链接返回405错误不允许使用此方法的问题
最近在调试WCF的接口时一直返回“405不允许使用此方法”,这个问题困扰了大半天,网上查了各种办法,但是每个人遇到的问题不同还是不能解决. 最后无意之中发现问题所在,记录一下帮助后面的同学解决问题. ...
- Linux CentOS 下关闭防火墙
永久关闭(重启后生效) 开启: chkconfig iptables on 关闭: chkconfig iptables off 临时关闭(重启后失效) 开启: service iptables st ...
- [前端] html+css+javascript 实现选项卡切换效果
用html+css+js实现选项卡切换效果使用之前学过的综合知识,实现一个新闻门户网站上的常见选项卡效果: 文字素材:房产: 275万购昌平邻铁三居 总价20万买一居 200万内购五环三居 140万安 ...
- jquery load()函数和window.onload事件
我想用jquery load()一个饼状图页面, 但是load不出来 代码如下: 后来百度了一下,解决办法如下: window.onload事件只有在文档载入的时候才会执行的,你载入子页面不会触发这个 ...