纯JS与CSS实现静态及动态渐变效果详解

作者:像素漫游

时间:2026-10-28

浏览:434

本文详细解析了纯JavaScript与CSS实现渐变色的两种形式:动态渐变与静态渐变。通过JavaScript定时器循环修改背景透明度实现动态渐变效果,并利用CSS3的-webkit-gradient及-webkit-linear-gradient属性实现静态线性渐变,同时兼容IE6及其他浏览器。

文章目录

引言:渐变色的两种形式

提到“渐变色”,你首先会联想到什么?



在深入搜索该名词时,我发现它实际上包含两种不同的理解或表现形式:动态渐变与静态渐变。



所谓动态渐变,可以举一个简单的例子:当某人出现时,其脸颊逐渐泛红……这种变化是持续不断的;而静态渐变则更为直观:例如天空中的彩虹,由红、橙、黄、绿、青、蓝、紫组成。在最终呈现的效果中,颜色从一部分过渡到另一部分,变化幅度可能较小,但关键在于它已经形成了一种固定的视觉状态,不再发生实时改变。



动态渐变的JavaScript实现

首先,我们使用JavaScript来实现所谓的动态渐变。考虑到动态效果无法通过静态图片展示,这里简要介绍实现思路:



* 动态渐变


代码如下:

 
<span style="font-size:12px;"><html>
... 
<body>
<center>
<div id="fade" style="width:600px;height:200px;"></div>
</center>
</body>
</html></span>

为了便于查看,这里使用了内嵌样式,但实际开发中更推荐使用外链样式。接下来进行简单的动态渐变效果编写:


代码如下:

 
<span style="font-size:12px;"><script type="text/javascript">
var node=document.getElementById("fade");
var color="#0000";
var level=1;
window.load=function fading(){
node.style.background=color.+level.toString()+level.toString();
level++;
if(level>16){
clearTimeOut(fading);
}else{
setTimeOut(fading,300);
} 
} 
<script></span>

由此可见,实现过程主要涉及字符串拼接以及函数的重复调用。



静态渐变的CSS实现与兼容处理

* 静态渐变



首先附上效果图,让大家直观了解其大致含义。


引言:渐变色的两种形式 

在不考虑浏览器兼容性的前提下(若深入研究兼容性,界面开发确实需要全面考虑,此处暂且忽略),我使用的是Webkit内核,因此先以此为例进行介绍。



在CSS样式中添加以下代码:



background:-webkit-gradient(linear, 100% 0%, 0% 0%, from(#ffffff),color-stop(0.5,#0000ff),to(#ffffff));



简单解释如下:



linear:这里涉及线性渐变和径向渐变两个概念,区别在于前者是沿一条直线进行变化,后者则是像圆形一样向四周扩散;



后面的四个值:分别代表相应方向的像素值,可以按照从左顺时针的顺序记忆,但它代表的是渐变结束的颜色(to);



from:这是开始的颜色;



to:与from同时出现,表示渐变结束时的颜色;



而color-stop:则指定在变化到线的哪个位置时出现什么颜色,这相当于from和to之间的过渡点,即from过渡点、to过渡点;



这样理解起来就清晰多了,下面附上其他基本代码:


代码如下:

 
FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=1,startColorStr=#b8c4cb,endColorStr=#f6f6f8);/*IE6*/
background:-moz-linear-gradient(left,#ffffff,#ff0000);/*非IE6的其它*/
background:-webkit-gradient(linear, 100% 0%, 0% 0%, from(#ff0000), to(#0000ff));/*非IE6的其它*/

今天看了一集《开讲了》,原来还有这么好看的节目,太lower了么我....

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章