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 相关文章推荐
css3 border-image使用说明
Jun 23 HTML / CSS
css3动画事件—webkitAnimationEnd与计时器time事件
Jan 31 HTML / CSS
利用css3-animation实现逐帧动画效果
Mar 10 HTML / CSS
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
Apr 10 HTML / CSS
HTML5实现Notification API桌面通知功能
Mar 02 HTML / CSS
HTML5 解析规则分析
Aug 14 HTML / CSS
HTML5 Canvas概述
Aug 26 HTML / CSS
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
Jan 31 HTML / CSS
探讨HTML5移动开发的几大特性(必看)
Dec 30 HTML / CSS
AmazeUI 面板的实现示例
Aug 17 HTML / CSS
如何解决flex文本溢出问题小结
Jul 15 HTML / CSS
使用CSS实现音波加载效果
May 07 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
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
2006/10/09 PHP
PHP迭代器的内部执行过程详解
2013/11/12 PHP
thinkPHP基于ajax实现的菜单与分页示例
2016/07/12 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
如何简单地用YUI做JavaScript动画
2007/03/10 Javascript
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
jquery 简单导航实现代码
2009/09/11 Javascript
jquery trim() 功能源代码
2011/02/14 Javascript
浅析JS刷新框架中的其他页面 &amp;&amp; JS刷新窗口方法汇总
2013/07/08 Javascript
用js实现in_array的方法
2013/11/05 Javascript
ajax请求乱码的解决方法(中文乱码)
2014/04/10 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
用户代理字符串userAgent可实现的四个识别
2015/09/20 Javascript
JS基于VML技术实现的五角星礼花效果代码
2015/10/26 Javascript
Javascript数组Array基础介绍
2016/03/13 Javascript
基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解
2016/07/18 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
Vue-resource安装过程及使用方法解析
2020/07/21 Javascript
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
[01:10]DOTA2 Supermajor:英雄,由我们见证
2018/05/14 DOTA
Django模板变量如何传递给外部js调用的方法小结
2017/07/24 Python
Python线性回归实战分析
2018/02/01 Python
Linux下远程连接Jupyter+pyspark部署教程
2019/06/21 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
专注澳大利亚特产和新西兰特产的澳洲中文网:0061澳洲制造
2019/03/24 全球购物
c语言常见笔试题总结
2016/09/05 面试题
战友聚会策划方案
2014/06/13 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
乡镇领导班子四风整顿行动工作汇报
2014/10/25 职场文书
研究生个人学年总结
2015/02/14 职场文书
Python中Cookies导出某站用户数据的方法
2021/05/17 Python
MySQL创建管理KEY分区
2022/04/13 MySQL