CSS3的颜色渐变效果的示例代码


Posted in HTML / CSS onSeptember 29, 2017

在animate.css寻找自己想要的动态效果,看到标题Animate.css和按钮Animate it的颜色在逐渐变化,觉得蛮有趣的,把控制变化的相关代码扒了下来,自己分析实现一波。

CSS3的颜色渐变效果的示例代码
CSS3的颜色渐变效果的示例代码

一开始认为使用了js控制颜色逐渐变化,看了看js文件,除了jQuery,就只有一小段用来DOM操作添加更改class的代码。控制颜色变化不可能在这里。联想到animate库只用css来控制动画效果,那多半在css文件里。

变化的两个部分HTML和CSS分别如下

<h1 class="site__title mega">Animate.css</h1>

.site__title {
    color: #f35626;
    background-image: -webkit-linear-gradient(92deg,#f35626,#feab3a);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -webkit-animation: hue 60s infinite linear;
}
<button class="butt js--triggerAnimation">Animate it</button>

.butt {
    border: 2px solid #f35626;
    line-height: 1.375;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    font-weight: 700;
    color: #f35626;
    cursor: pointer;
    -webkit-animation: hue 60s infinite linear;
}

以及一段很重要的代码

@-webkit-keyframes hue {
  from {
    -webkit-filter: hue-rotate(0deg);
  }

  to {
    -webkit-filter: hue-rotate(-360deg);
  }
}

重点部分就在于-webkit-animation,实际上animate库基本都是用的这种方式实现各种动画的。

-webkit-animation: hue 60s infinite linear;

这里定义了一个名为hue的动画名,第二个参数设置动画持续时间为60s,第三个指定动画播放次数无限次,第四个设置速度变化(从头到尾速度相同)。
CSS动画也是采用的关键帧的方法,下面的那一段就是在定义头尾的关键帧,让这个动画真正的动起来!

from {
    ...
}
to {
    ...
}

就是说从开头(0%)到结尾(100%)分别是什么状态!再结合-webkit-animation第四个参数的速度变化,让他更合理的动起来!

-webkit-filter我也不知道什么意思,查查W3C怎么讲的吧。

filter 属性定义了元素(通常是<img>)的可视效果(例如:模糊与饱和度)。

用来调整可视效果?不明觉厉。再看看属性hue-rotate()是什么意思:

给图像应用色相旋转。"angle"一值设定图像会被调整的色环角度值。值为0deg,则图像无变化。若值未设置,默认值是0deg。该值虽然没有最大值,超过360deg的值相当于又绕一圈。

色相旋转??懂了好像又没懂?作为前端工程师,基本的色彩原理还是要知道的:

CSS3的颜色渐变效果的示例代码

这就是色相环,这里是24种代表颜色,实际在屏幕上可以显示的RGB颜色有16万种。就是说,上面的颜色变化,在一分钟内有16万种变化……

上面可以很明显的知道这是一个圆环,hue-rotate()就定义了当前颜色在这个圆环上的偏转角度。

颜色变化大概就是这么多了,现在自己实现一下吧:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .title{
            color: #48c0c0;
            -webkit-animation: hue 5s infinite linear;
        }
        @keyframes hue {
            from {
                -webkit-filter: hue-rotate(0deg);
            }
            to {
                -webkit-filter: hue-rotate(360deg);
            }
        }
    </style>
</head>
<body>
    <h1 class="title">颜色渐变动画</h1>
</body>
</html>

最终的效果:

CSS3的颜色渐变效果的示例代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
May 07 HTML / CSS
CSS3的first-child选择器实战攻略
Apr 28 HTML / CSS
浅谈css3新单位vw、vh、vmin、vmax的使用详解
Dec 01 HTML / CSS
用css3实现转换过渡和动画效果
Mar 13 HTML / CSS
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
Mar 14 HTML / CSS
HTML5 对各个标签的定义与规定:body的介绍
Jun 21 HTML / CSS
开发人员所需要知道的HTML5性能分析面面观
Jul 05 HTML / CSS
基于html5实现的图片墙效果
Oct 16 HTML / CSS
html5 Canvas实现图片旋转的示例
Jan 15 HTML / CSS
HTML5 新表单类型示例代码
Mar 20 HTML / CSS
一个基于canvas的移动端图片编辑器的实现
Oct 28 HTML / CSS
CSS font-variation 可变字体的魅力(实例详解)
Mar 03 HTML / CSS
通过一张图教会你CSS3倒影的实现
Sep 26 #HTML / CSS
利用 CSS3 实现的无缝轮播功能代码
Sep 25 #HTML / CSS
CSS3中伪元素::before和::after的用法示例
Sep 18 #HTML / CSS
css3 pointer-events 介绍详解
Sep 18 #HTML / CSS
详解CSS3选择器:nth-child和:nth-of-type之间的差异
Sep 18 #HTML / CSS
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
Sep 15 #HTML / CSS
CSS3 Calc实现滚动条出现页面不跳动问题
Sep 14 #HTML / CSS
You might like
优化php效率,提高php性能的一些方法
2011/03/24 PHP
Yii框架连接mongodb数据库的代码
2016/07/27 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
2017/02/16 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
2017/08/11 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
2020/03/23 PHP
Jquery 扩展方法
2010/05/06 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
JQuery以JSON方式提交数据到服务端示例代码
2014/05/05 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
VUE实现日历组件功能
2017/03/13 Javascript
浅谈箭头函数写法在ReactJs中的使用
2017/08/22 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
layer.open提交子页面的form和layedit文本编辑内容的方法
2019/09/27 Javascript
微信小程序使用echarts获取数据并生成折线图
2019/10/16 Javascript
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
[01:11:28]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第一场 1月8日
2021/03/11 DOTA
python 回调函数和回调方法的实现分析
2016/03/23 Python
基于python指定包的安装路径方法
2018/10/27 Python
python使用Plotly绘图工具绘制柱状图
2019/04/01 Python
django中瀑布流写法实例代码
2019/10/14 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
2020/01/10 Python
关于是否需要写商业计划书
2014/02/07 职场文书
英语教师岗位职责
2014/03/16 职场文书
体育教师求职信
2014/05/24 职场文书
股份转让协议书范本
2015/01/27 职场文书
团队拓展训练感想
2015/08/07 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
pandas DataFrame.shift()函数的具体使用
2021/05/24 Python