ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScriptの簡易アニメーションクラス(divグラデーション)_代表的な特殊効果

JavaScriptの簡易アニメーションクラス(divグラデーション)_代表的な特殊効果

WBOY
リリース: 2016-05-16 18:23:47
オリジナル
1020 人が閲覧しました

程序源コード

复制代码 代码如下:

function Animate(el, prop, opts) {
this.el = el;
this.prop = prop;
this.from = opts.from;
this.to = opts.to;
this.time = opts.time;
this.callback = opts.callback;
this.animDiff = this.to - this.from;
}

Animate.prototype._setStyle = function(val) {
switch(this.prop) {
case 'opacity':
this.el.style[this.プロパティ] = 値;
this.el.style.filter = 'alpha(opacity=' val * 100 ')';
休憩;
デフォルト:
this.el.style[this.prop] = val 'px';
休憩;
}
}

Animate.prototype._animate = function() {
var that = this;
this.now = new Date();
this.diff = this.now - this.startTime;

if (this.diff > this.time) {
this._setStyle(this.to);

if (this.callback) {
this.callback.call(this);
}
clearInterval(this.timer);
戻る;
}

this.percentage = (Math.floor((this.diff / this.time) * 100) / 100);
this.val = (this.animDiff * this.percentage) this.from;
this._setStyle(this.val);
}

Animate.prototype.start = function() {
var that = this;
this.startTime = new Date();
clearInterval(this.timer);
this.timer = setInterval(function() {
that._animate.call(that);
}, 4);
}

Animate.canTransition = function() {
var el = document.createElement('foo');
el.style.cssText = '-webkit-transition: すべて .5 秒線形;';
return !!el.style.webkitTransitionProperty;
}();

使用方法
复制代码代码如下:

/ / 透明度渐变
function changeOpacity() {
// 透明度渐变 从1 - 0 渐变時間1000ms
var fx = 'opacity', from = 1, to = 0, time = 1000;
// 完全実行の回调関数
var callback = function() {
from = 0;に = 1;
new Animate(demo, fx, { from: from, to: to, time: time, callback:resetButton}).start();
}
// 实例化渐变関数関数
new Animate(demo, fx, {
from: from,
to: to,
time: time,
callback:コールバック
}).start();
}

演示代:
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート