国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS Tween 顏色漸變

2019-11-21 01:29:51
字體:
來源:轉載
供稿:網友
有31中緩動算法,實現了顏色的自動轉換(#f00 #ff0000 rgb(255,0,0)格式到顏色運算格式,最后返回#ff0000格式)、px單位的自動轉換。
調用接口:
/**
* 對外接口
* Tween的示例
* @param startProps 開始屬性,單個屬性或者數組
* @param endProps 結束屬性,單個屬性或者數組
* @param timeSeconds 運動消耗時間,單位秒
* @param animType 動作類型,字符串型,內部自己轉換算子
* @param delay 延遲時間,多長時間后開始運動,單位秒
*/
window.rtween = function(startProps, endProps, timeSeconds, animType, delay)
{
var tw = new Tween();
tw.start(startProps, endProps, timeSeconds, animType, delay);
return tw;
}
示例如下:
http://img.VeVB.COm/online/Tween.htm

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]

選擇列表里面的緩動算法,點前面的按鈕,就會以想對的緩動算法運動

源代碼: http://img.VeVB.COm/jslib/jquery/rtween.js
核心代碼:
function Tween()
{
this._frame=20;
//
this._animType = linear;
this._delay = 0;
//
this.run = function(){}
this.complete = function(){}
}
//
Tween.prototype.getValue = function(prop)
{
this._valueType = ”;
if(prop.constructor == Array) return prop;
//
if(typeof(prop) == 'string')
{
if(isColor(prop))
{
this._valueType = ‘color';
return c2a(prop);
}
if(prop.split('px').length>1)
{
this._valueType = ‘px';
return [prop.split('px')[0]];
}
}
return [prop];
}
Tween.prototype.setValue = function(prop)
{
if(this._valueType == ‘color')return a2c(prop);
if(this._valueType == ‘px')return prop[0]+'px';
return prop;
}
Tween.prototype.start = function(startProps, endProps, timeSeconds, animType, delay)
{
if(animType != undefined)this._animType = this.animTypes[animType];
if(delay != undefined)this._delay = delay;
//
this._timeSeconds = timeSeconds;
this._startTimer = new Date().getTime() + this._delay * 1000;
//
this._endProps = this.getValue(endProps);
this._startProps = this.getValue(startProps);
this._currentProps = [];
//
var $this = this;
clearInterval(this._runID);
this._runID = setInterval(
function(){$this._run();}
,this._frame);
}
Tween.prototype.stop = function(state)
{
for(var i in this._startProps)
{
if(Number(state)>0)
this._currentProps[i] = this._endProps[i];
else if(Number(state)<0)
this._currentProps[i] = this._startProps[i];
}
this.callListener();
this.complete();
//
clearInterval(this._runID);
}
Tween.prototype.callListener = function()
{
this.run(this.setValue(this._currentProps));
}
Tween.prototype._run = function()
{
if ( new Date().getTime()- this._startTimer< 0) return;
var isEnd = false;
//
for(var i in this._startProps)
{
this._currentProps[i] = this._animType( new Date().getTime()-this._startTimer,Number(this._startProps[i]),Number(this._endProps[i])-Number(this._startProps[i]),this._timeSeconds * 1000);
//
if(this._startTimer + (this._timeSeconds * 1000) <= new Date().getTime())
{
this._currentProps[i] = this._endProps[i];
isEnd = true;
}
}
//
if(isEnd)this.stop();
else this.callListener();
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邵东县| 周宁县| 永春县| 九江县| 嘉峪关市| 建湖县| 东明县| 福鼎市| 蒲江县| 长岭县| 东乡族自治县| 靖安县| 且末县| 齐齐哈尔市| 广饶县| 宝清县| 通海县| 清河县| 新建县| 普定县| 冀州市| 仙居县| 于都县| 垣曲县| 正蓝旗| 柳河县| 临西县| 大悟县| 肇东市| 会东县| 邓州市| 扬州市| 阳春市| 安平县| 凌源市| 漳浦县| 图木舒克市| 涡阳县| 利津县| 龙江县| 通渭县|