シンプルなjsアニメーションエフェクトコード_javascriptスキル
実装された関数: 移動、一時停止、再開、停止。
未実装の関数: 単位変換ができない、色のグラデーションが実現できない (改善すべき点は他にもたくさんあります...)
コードでの使用方法は次のとおりです。
var $m = $M ("divAnimate");
_("btnAnimate").onclick = function(){
this.disabled = true;
var that = this; >$m.animate( {left:"300px",top:"100px",width:"300px", height:"200px",opacity:0.3},{duration:5000,easing:Tween.Back.easeInOut}) .delay(200)
.animate({left:"50px",top:"300px",width:"150px",height:"100px",opacity:0.8},{duration:2000,easing:Tween. Elastic.easeInOut,
callback:function(){
that.disabled = false;
}
});
}
_("btnPause").onclick = function( ){
$ m.pause();
this.disabled = true;
_("btnResume").disabled = false; = true;
_("btnResume").onclick = function(){
$m.resume();
this.disabled = true;
_("btnPause").disabled = false;
}
_("btnStop").onclick = function(){
$m.stop();
_("btnAnimate").disabled = false; 🎜>}
関数の実装:
コードをコピー
var elem = ("string" === obj のタイプ )?document.getElementById (obj):obj;
var _this = {},props = {},timeId,isBusy = false,isPause = false;
var queue = [],_current; ;
//線形運動アルゴリズム
function Linear(t,b,c,d){ return c*t/d b;}
function setCss(className,value){
if(className = = "不透明度"){
if (document.defaultView){
elem.style["不透明度"] = 値;
} else {
elem.style["filter"] = 'alpha (opacity=' 100 * 値 ')' ;
}
} else {
elem.style[className] = 値;
}
}
function getCss(className){
if(className == "opacity "){
var ret = "";
if(document.defaultView){
ret = document.defaultView.getComputedStyle(elem,null)['opacity '] || 1;
} else {
ret = elem.currentStyle['filter']?(elem.currentStyle['filter'].match(/^alpha(opacity=([d.] ) )$/))[1]/100 : 1;
}
return ret.toString();
} else {
return elem.style[className].toString(); >}
}
function _move(params,easing,st,ht,callback){
var t = ((new Date()).getTime() - st); _current.t = t;
if (isPause){return;}
easing = easing||Linear;
for(var p in params){
if(!props[p]){
var iv = parseFloat(getCss(p)) || 0;
var ev = parseFloat(params[p]);
iv:iv,
iu:iv?getCss(p).substring(iv.toString().length):null,
ev:ev,
eu:params[p].toString ().substring(ev.toString() .length)
}
//TODO (初期値の単位と目標値の単位が異なるため処理が必要)
}
if(t >= ht){t = ht;}
var nv = イージング(t,props[p].iv,(props[p].ev - props[p].iv),ht );
nv = parseFloat(nv);
setCss( p,nv props[p].eu);
if(t < ht){
= setTimeout(function(){
_move(params,easing,st ,ht,callback);
},13);
props = {}; false;
if(callback){
callback();
run()
}
関数 run(){
if(! isBusy && queue.length != 0){
var o = queue .shift();
var _delay = 0;
while(o && o.delay){
_delay = o.delay ;
o = queue.shift();
}
if(o){
isBusy = true;
setTimeout() var st = (new Date()).getTime();
_move(o.params,o.options.easing,st,o.options.duration,o.options.callback); );
}
}
}
var _this = {
animate:function(params,options){
queue.push({params:params,options:オプション});
isPause = false;
return _this; });
return _this;
},
stop:function(){
isPause = true;
resume:function(){
if(_current){
var o = _current;
isPause = false;
var st = (new Date()).getTime() - _current.t; .params,o.options.easing,st,o.options.duration, o.options.callback);
return _this>}
},
stop:function(){
isPause = true;
isBusy = false;
return _this>}
return _this; 🎜>}
参考アドレス:
http://www.jb51.net/article/24309.htm

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

エントリーレベルのタイプスクリプトチュートリアルをマスターしたら、TypeScriptをサポートするIDEで独自のコードを作成し、JavaScriptにコンパイルできるはずです。このチュートリアルは、TypeScriptのさまざまなデータ型に飛び込みます。 JavaScriptには、NULL、未定義、ブール値、数字、文字列、シンボル(ES6によって導入)とオブジェクトの7つのデータ型があります。 TypeScriptはこれに基づいてより多くのタイプを定義し、このチュートリアルではすべてを詳細に説明します。 ヌルデータ型 JavaScriptのように、Typescriptのnull

この記事では、Javaのコレクションフレームワークの効果的な使用について説明します。 データ構造、パフォーマンスのニーズ、スレッドの安全性に基づいて、適切なコレクション(リスト、セット、マップ、キュー)の選択を強調しています。 コレクションの使用を効率的に最適化します

このチュートリアルでは、chart.jsを使用してパイ、リング、およびバブルチャートを作成する方法について説明します。以前は、4つのチャートタイプのchart.js:ラインチャートとバーチャート(チュートリアル2)、およびレーダーチャートと極地域チャート(チュートリアル3)を学びました。 パイとリングチャートを作成します パイチャートとリングチャートは、さまざまな部分に分かれている全体の割合を示すのに理想的です。たとえば、パイチャートを使用して、サファリの男性ライオン、女性ライオン、若いライオンの割合、または異なる候補者が選挙で受け取る票の割合を示すことができます。 パイチャートは、単一のパラメーターまたはデータセットの比較にのみ適しています。パイチャートのファンの角度はデータポイントの数値サイズに依存するため、パイチャートは値のあるエンティティをゼロ値で描画できないことに注意してください。これは、割合がゼロのエンティティを意味します
