JavaScript 颜色梯度和渐变效果更新
近来看了Dean的“Convert any colour value to hex in MSIE”,终于解决了根据关键字获取颜色rgb值的问题。
顺便把程序也重新整理一番,并使用了最近整理的工具库。
效果预览到这里
下载完整实例
程序说明
【ColorGrads颜色梯度】
程序ColorGrads的作用是根据颜色集合和渐变级数生成颜色梯度集合。
渐变级数的意思是分多少步完成渐变。
网页设计中的颜色是用RGB色彩模式呈现的。
在这个模式中每种颜色可以用三个代表红(r)、绿(g)、蓝(b)的颜色值(0到255)来表示。
从w3c的Colors部分看到标准中颜色的表示形式包括:
关键字形式:
em { color: red }
RGB形式:
em { color: #f00 }
em { color: #ff0000 }
em { color: rgb(255, 0, 0) }
em { color: rgb(100%, 0%, 0%) }
以上都是表示同一种颜色(红色)。
关键字形式就是用关键字代表颜色值。
而RGB形式,前两种用的比较多,都是一个"#"后面带16进制表示的颜色值,第三种是用十进制的颜色值,第四种是实际值跟255的百分比形式。
各个浏览器对各种颜色表示形式的获取并不相同:
"color: red"形式:
ie
opera
ff
chrome/safari
style
red
red
#ff0000
red
currentStyle
red
"red"
getComputedStyle
#ff0000
rgb(255, 0, 0)
rgb(255, 0, 0)
"color: #ff0000"/"color: #f00"形式:
ie
opera
ff
chrome/safari
style
#ff0000/#f00
#ff0000
rgb(255, 0, 0)
rgb(255, 0, 0)
currentStyle
#ff0000/#f00
#ff0000
getComputedStyle
#ff0000
rgb(255, 0, 0)
rgb(255, 0, 0)
"color: rgb(255, 0, 0)"/"color: rgb(100%, 0%, 0%)"形式:
ie
opera
ff
chrome/safari
style
rgb(255,0,0)
#ff0000
rgb(255, 0, 0)
rgb(255, 0, 0)
currentStyle
rgb(255,0,0)
#ff0000
getComputedStyle
#ff0000
rgb(255, 0, 0)
rgb(255, 0, 0)
基本上得到的值还是按标准的形式显示的,只是有些会自动转换形式。
不过ie的rgb形式跟ff/chrome/safari的不同,数值之间并没有空格。
要特别注意的是opera用currentStyle获取关键字形式得到的颜色值是带双引号的,十分奇怪,要尽量避免使用。
要获取两种颜色的渐变梯度,先要把颜色转化成能用来计算的数值。
GetColor和GetData程序就是用来把符合w3c标准表示的颜色值转化成组合该颜色的红(r)、绿
相关文档:
JavaScript 全局变量是其实是指:上下文环境 Window下的对象属性
JavaScript作用域是基于上下文,是以函数进行划分的,而不是由块(block)划分的
JavaScript允许变量的重复定义,并且后一个定义将覆盖前一个定义,如果后一个变量是局部变量也会覆盖前一个全局变量
以下是一个例子:
<scri ......
尽管 JavaScript 历史上使用冗长而令人生厌的代码块来标的特定浏览器的时期已经结束了,但是偶尔使用一些简单的代码块和对象检测来确保一些代码在用户机器上正常工作依然是必要的。
这篇文章中,我会略述一下 Internet Explorer 和 Firefox 在 JavaScript 语法上不同的 7 个方面。
1. CSS “float” 属性
获取 ......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>javas
cript 操作日期 测试</title>
<meta http-equiv= ......
在js里用到数组,比如 多个名字相同的input, 若是动态生成的, 提交时就需要判断其是否是数组.
if(document.mylist.length != "undefined" ) {} 这个用法有误.
正确的是 if( typeof(document.mylist.length) != "undefined" ) {}
或 if( !isNaN(document.mylist.length) ) {}
typeof的运算数未定义,返回的就是 "un ......