亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? javascript 顏色梯度和漸變效果.txt

?? JavaScript 顏色梯度和漸變效果。關(guān)于顏色的效果一般就兩個
?? TXT
字號:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>JavaScript 顏色梯度和漸變效果</title>
<script type="text/javascript">
var $ = function (id) {
  return "string" == typeof id ? document.getElementById(id) : id;
};
var Extend = function(destination, source) {
 for (var property in source) {
 destination[property] = source[property];
 }
 return destination;
}
var Map = function(array, callback, thisObject){
 if(array.map){
 return array.map(callback, thisObject);
 }else{
 var res = [];
 for (var i = 0, len = array.length; i < len; i++) { res.push(callback.call(thisObject, array[i], i, array)); }
 return res;
 }
}
var ColorGrads = function(options){
 this.SetOptions(options);
 this.StartColor = this.options.StartColor;
 this.EndColor = this.options.EndColor;
 this.Step = Math.abs(this.options.Step);
};
ColorGrads.prototype = {
 //設(shè)置默認(rèn)屬性
 SetOptions: function(options) {
  this.options = {//默認(rèn)值
 StartColor: "#fff",//開始顏色
 EndColor: "#000",//結(jié)束顏色
 Step: 20//漸變級數(shù)
  };
  Extend(this.options, options || {});
 },
 //獲取漸變顏色集合
 Create: function() {
 var colors = [],
 startColor = this.GetColor(this.StartColor),
 endColor = this.GetColor(this.EndColor),
 stepR = (endColor[0] - startColor[0]) / this.Step,
 stepG = (endColor[1] - startColor[1]) / this.Step,
 stepB = (endColor[2] - startColor[2]) / this.Step;
 //生成顏色集合
 for(var i = 0, n = this.Step, r = startColor[0], g = startColor[1], b = startColor[2]; i < n; i++){
 colors.push([r, g, b]); r += stepR; g += stepG; b += stepB;
 }
 colors.push(endColor);
 //修正顏色值
 return Map(colors, function(x){ return Map(x, function(x){
 return Math.min(Math.max(0, Math.floor(x)), 255);
 });});
 },
 //獲取顏色數(shù)據(jù)
 GetColor: function(color) {
 if(/^#[0-9a-f]{6}$/i.test(color))
 {//#rrggbb
 return Map([color.substr(1, 2), color.substr(3, 2), color.substr(5, 2)],
  function(x){ return parseInt(x, 16); }
 )
 }
 else if(/^#[0-9a-f]{3}$/i.test(color))
 {//#rgb
 return Map([color.substr(1, 1), color.substr(2, 1), color.substr(3, 1)],
  function(x){ return parseInt(x + x, 16); }
 )
 }
 else if(/^rgb(.*)$/i.test(color))
 {//rgb(n,n,n) or rgb(n%,n%,n%)
 return Map(color.match(/\d+(\.\d+)?\%?/g),
  function(x){ return parseInt(x.indexOf("%") > 0 ? parseFloat(x, 10) * 2.55 : x, 10); }
 )
 }
 else
 {//color
 var mapping = {"red":"#FF0000"};//略
 color = mapping[color.toLowerCase()];
 if(color){
  return Map([color.substr(1, 2), color.substr(3, 2), color.substr(5, 2)],
  function(x){ return parseInt(x, 16); }
  )
 }
 }
 }
};
var CurrentStyle = function(element){
 return element.currentStyle || document.defaultView.getComputedStyle(element, null);
}
var Bind = function(object, fun) {
 var args = Array.prototype.slice.call(arguments).slice(2);
 return function() {
 return fun.apply(object, args.concat(Array.prototype.slice.call(arguments)));
 }
}
//漸變對象
var ColorTrans = function(obj, options){
 
 this._obj = $(obj);
 this._timer = null;//定時器
 this._index = 0;//索引
 this._colors = [];//顏色集合
 this._grads = new ColorGrads();
 
 this.SetOptions(options);
 
 this.Speed = Math.abs(this.options.Speed);
 this.CssColor = this.options.CssColor;
 
 this._startColor = this.options.StartColor || CurrentStyle(this._obj)[this.CssColor];
 this._endColor = this.options.EndColor;
 this._step = Math.abs(this.options.Step);
 
 this.Reset();
 this.SetColor();
};
ColorTrans.prototype = {
 //設(shè)置默認(rèn)屬性
 SetOptions: function(options) {
 this.options = {//默認(rèn)值
 StartColor: "",//開始顏色
 EndColor: "#000",//結(jié)束顏色
 Step: 20,//漸變級數(shù)
 Speed: 20,//漸變速度
 CssColor: "color"//設(shè)置屬性(Scripting屬性)
 };
  Extend(this.options, options || {});
 },
 //重設(shè)顏色集合
 Reset: function(color) {
 //修改顏色后必須重新獲取顏色集合
 color = Extend({ StartColor: this._startColor, EndColor: this._endColor, Step: this._step }, color || {});
 //設(shè)置屬性
 this._grads.StartColor = this._startColor = color.StartColor;
 this._grads.EndColor = this._endColor = color.EndColor;
 this._grads.Step = this._step = color.Step;
 //獲取顏色集合
 this._colors = this._grads.Create();
 this._index = 0;
 },
 //顏色漸入
 FadeIn: function() {
 this.Stop(); this._index++; this.SetColor();
 if(this._index < this._colors.length - 1){
 this._timer = setTimeout(Bind(this, this.FadeIn), this.Speed);
 }
 },
 //顏色漸出
 FadeOut: function() {
 this.Stop(); this._index--; this.SetColor();
 if(this._index > 0){
 this._timer = setTimeout(Bind(this, this.FadeOut), this.Speed);
 }
 },
 //顏色設(shè)置
 SetColor: function() {
 var color = this._colors[Math.min(Math.max(0, this._index), this._colors.length - 1)];
 this._obj.style[this.CssColor] = "rgb(" + color[0] + "," + color[1] + "," + color[2] + ")";
 },
 //停止
 Stop: function() {
 clearTimeout(this._timer);
 }
};
</script>
</head>
<body>
<style type="text/css">
#idGrads{}
#idGrads div{ font-size:0;height:1px;}
</style>
<div id="idGrads"> </div>
<script>
var forEach = function(array, callback, thisObject){
 if(array.forEach){
 array.forEach(callback, thisObject);
 }else{
 for (var i = 0, len = array.length; i < len; i++) { callback.call(thisObject, array[i], i, array); }
 }
}
var colors = new ColorGrads({ StartColor: "#fff", EndColor: "rgb(20,127,0)" }).Create();
forEach(colors.concat().concat(colors.reverse()), function(x){
 $("idGrads").innerHTML += "<div style=\"background-color:"+"rgb(" + x[0] + "," + x[1] + "," + x[2] + ");\"></div>";
})
</script>
<Br />
<Br />
<style type="text/css">
#idMenu{ background:#DBDBDB;text-align:center;line-height:25px; table-layout:fixed;}
#idMenu td{ cursor:pointer;}
</style>
<table id="idMenu" width="600" border="0" cellspacing="5" cellpadding="0">
 <tr>
 <td onclick="location.href='http://www.cnblogs.com/cloudgamer/archive/2008/07/21/ImgCropper.html'">Cropper</td>
 <td onclick="location.href='http://www.cnblogs.com/cloudgamer/archive/2009/01/06/Tween.html'">Tween</td>
 <td onclick="location.href='http://www.cnblogs.com/cloudgamer/archive/2008/12/24/Slider.html'">Slider</td>
 <td onclick="location.href='http://www.cnblogs.com/cloudgamer/archive/2008/12/03/Resize.html'">Resize</td>
 <td onclick="location.href='http://www.cnblogs.com/cloudgamer/archive/2008/11/17/Drag.html'">Drag</td>
 </tr>
</table>
<script>
forEach($("idMenu").getElementsByTagName("td"), function(x, i){
 var ct1 = new ColorTrans(x, { StartColor: "#666", EndColor: "#fff" });
 var ct2 = new ColorTrans(x, { StartColor: "#f6f6f6", EndColor: "rgb(20,150,0)", CssColor: "backgroundColor" });
 
 x.onmouseover = function(){ ct1.FadeIn(); ct2.FadeIn(); }
 x.onmouseout = function(){ ct1.FadeOut(); ct2.FadeOut(); }
})
</script>
<Br />
<Br />
<div id="idRandom" style="padding:10px;color:#fff; background-color:#CCC;">點(diǎn)擊隨機(jī)換顏色</div>
<script>
var ctRandom = new ColorTrans("idRandom", { EndColor: "#CCC", CssColor: "backgroundColor" })
$("idRandom").onclick = function(){
 var rgb = Map([1,1,1], function(){ return Math.floor((Math.random() * 255)); } );
 ctRandom.Reset({ StartColor: this.style.backgroundColor, EndColor: "rgb(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + ")" })
 ctRandom.FadeIn();
}
</script>
</body>
</html>
-

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产成人高清精品| 欧美一级片免费看| 韩国女主播一区二区三区| 日韩电影在线观看电影| 亚洲成人三级小说| 日韩精品午夜视频| 九色综合国产一区二区三区| 日本成人在线一区| 精彩视频一区二区三区| 国产精品亚洲成人| 成人爽a毛片一区二区免费| 大白屁股一区二区视频| 99精品在线观看视频| 色哟哟一区二区在线观看| 欧美在线不卡视频| 欧美日韩国产三级| 欧美大片顶级少妇| 欧美极品xxx| 一区二区高清在线| 日本不卡的三区四区五区| 国产一区二区按摩在线观看| 成人听书哪个软件好| 欧美午夜寂寞影院| 精品国产91洋老外米糕| 国产女主播一区| 亚洲一区二区三区四区中文字幕| 午夜视频在线观看一区| 国产精华液一区二区三区| 盗摄精品av一区二区三区| 色婷婷精品久久二区二区蜜臂av| 欧美一区二区在线不卡| 国产精品免费视频一区| 日韩精品一二区| 成人av在线影院| 欧美日韩亚洲综合| 国产亚洲欧美在线| 国产不卡视频在线观看| 欧美日韩专区在线| 久久精品视频免费观看| 亚洲18女电影在线观看| 成人av在线一区二区三区| 日韩一区二区三区观看| 国产精品人妖ts系列视频| 奇米四色…亚洲| 色先锋资源久久综合| 亚洲精品一区二区三区香蕉| 亚洲午夜精品一区二区三区他趣| 韩日欧美一区二区三区| 91福利视频网站| 欧美激情综合在线| 久久电影国产免费久久电影| 日本久久一区二区三区| 国产无人区一区二区三区| 日韩激情一区二区| 精品婷婷伊人一区三区三| 国产精品毛片久久久久久久| 久久99精品久久久久婷婷| 欧美系列在线观看| 国产精品久久久久久久裸模 | 精品国免费一区二区三区| 亚洲欧洲无码一区二区三区| 国产精品一区在线观看乱码 | 免费在线视频一区| 欧美视频一区二区在线观看| 国产精品国产三级国产普通话三级| 激情综合网av| 精品人在线二区三区| 日韩高清欧美激情| 欧美精品久久一区| 日韩影院免费视频| 777xxx欧美| 日本欧美在线看| 日韩一区二区免费视频| 日韩综合在线视频| 5858s免费视频成人| 日本sm残虐另类| 日韩一级精品视频在线观看| 免费久久99精品国产| 欧美成人欧美edvon| 久久国产成人午夜av影院| 欧美大肚乱孕交hd孕妇| 韩国女主播成人在线| 亚洲五码中文字幕| 欧美日本国产视频| 日韩高清电影一区| 精品国产一区二区亚洲人成毛片 | 94-欧美-setu| 国产精品激情偷乱一区二区∴| 国产激情一区二区三区四区 | 欧美日本精品一区二区三区| 亚洲午夜精品17c| 日韩欧美国产一区二区在线播放| 麻豆精品一区二区| 亚洲国产激情av| 一本大道综合伊人精品热热| 香港成人在线视频| 26uuu亚洲| 色综合久久中文字幕| 亚洲国产中文字幕在线视频综合| 欧美一区二区三区思思人| 国产一区二区三区最好精华液| 中文字幕欧美区| 在线国产亚洲欧美| 久久国产尿小便嘘嘘| 一色屋精品亚洲香蕉网站| 欧美日韩中文字幕一区| 国产美女精品在线| 亚洲欧美日韩国产综合| 日韩午夜激情视频| caoporm超碰国产精品| 石原莉奈在线亚洲三区| 欧美国产日韩精品免费观看| 欧洲人成人精品| 国内成人自拍视频| 一区二区三区四区五区视频在线观看 | 日本午夜一本久久久综合| 中文字幕va一区二区三区| 欧美日韩一卡二卡| 国产.欧美.日韩| 视频一区二区欧美| 亚洲视频资源在线| 日韩三级高清在线| 在线视频中文字幕一区二区| 九色|91porny| 午夜欧美电影在线观看| 国产精品系列在线| 日韩免费成人网| 在线观看91精品国产入口| 国产sm精品调教视频网站| 午夜激情一区二区三区| 中文字幕日韩一区二区| 欧美一区二区三区的| 色国产精品一区在线观看| 成人午夜伦理影院| 国产精品中文字幕欧美| 久久综合综合久久综合| 午夜欧美2019年伦理| 亚洲在线视频一区| 亚洲免费视频中文字幕| 国产精品久久久久久久久久久免费看| 欧美一级午夜免费电影| 国产欧美视频在线观看| 精品乱人伦小说| 欧美美女一区二区三区| 欧美在线观看一二区| 日本黄色一区二区| 色综合激情久久| 一本久道中文字幕精品亚洲嫩| 成人激情av网| 成人听书哪个软件好| 9色porny自拍视频一区二区| 国产精品一二三区在线| 国产高清不卡一区二区| 国产成人午夜精品影院观看视频| 蜜臀精品久久久久久蜜臀| 午夜精品福利一区二区蜜股av| 一区二区三区鲁丝不卡| 亚洲精品高清视频在线观看| 怡红院av一区二区三区| 亚洲精品视频一区二区| 玉米视频成人免费看| 亚洲成人av电影在线| 日韩制服丝袜先锋影音| 秋霞电影一区二区| 精品一区中文字幕| 国内外成人在线| 成人性色生活片| 欧美在线视频日韩| 制服视频三区第一页精品| 2023国产精品| 欧美高清一级片在线观看| 亚洲精品日产精品乱码不卡| 亚洲美女少妇撒尿| 天天操天天色综合| 国产乱一区二区| 97se亚洲国产综合自在线不卡| 在线观看日产精品| 日韩免费看的电影| 国产精品久久久久久久浪潮网站 | 亚洲自拍欧美精品| 老司机精品视频在线| 成年人网站91| 欧美高清精品3d| 国产亚洲成av人在线观看导航| 中文字幕综合网| 日日夜夜免费精品视频| 国产精品自在在线| 欧美亚洲免费在线一区| 精品日韩一区二区| 一片黄亚洲嫩模| 九色porny丨国产精品| 色诱亚洲精品久久久久久| 精品久久人人做人人爱| 亚洲视频一二区| 精品一区在线看| 欧美午夜一区二区三区免费大片| 久久色在线视频| 三级一区在线视频先锋| 99国内精品久久| 久久亚洲一级片|