javascript_javascriptスキルでの緩和効果実装プログラム
アニメーションには 4 つの一般的なタイプがあります。それらを紹介します。
リニア: リニア アニメーション、つまり一定速度
easeIn: 小さいものから大きいものへの速度、つまりフェードイン
easeOut: 速度大から小へ、つまりフェードアウト
easeInOut: 最初は小から大へ、最後は大から小へ、つまりフェードイン、フェードアウト
実際、緩和に関して言えば、N 倍緩和公式を発明した Robert Penner について言及する必要があります。たとえば、
説明しましょう:
t / d = X / c、つまり X = c * t / d になります。少し複雑なものを見てみましょう:
これにはフェードイン効果があり、アニメーションが開始されると値が小さい値から大きい値に変化します。 この 2 つの違いは t / d と (t /= d) * t だけであることがわかります。t / d は、一時的に名付けられた >=0 &&
なぜ二乗するのでしょうか?
1. まず、a >= Math.pow(a, 2) は確実です。2. 関数が呼び出されるたびに、t / d の比も大きくなります。一定の速度で、たとえば、最初の呼び出しは 0.1 (平方 0.01)、2 番目の呼び出しは 0.2 (平方 0.04) などです。このとき、10 番目の呼び出しは 1 でなければなりません。この時点で c * 1 b、アニメーションは終了します。ここで終了
3. ポイント 2 は、比率が小さいほど値の変化が小さく、比率が大きいほど値の変化が大きくなることが証明されています。正方形を使用せずに 3 乗すると、フェードイン効果が得られます。より明白になります。
スタイル、構造、パブリック関数は次のとおりです。
コードをコピー
まず、開始位置、終了位置、ステップ サイズを設定するたびに、終了条件になるまで固定値を増やします
コードをコピーします
if((iLeft = parseInt(getStyle(rag,"left"))) < end) {
rag.style.left = iLeft step "px" 🎜> }
var timer = setInterval(run, 20);
上記方法は一定速度であり、各移動の距離は固定されています。別の実装方法を見てみましょう:
コードをコピー
コードは次のとおりです:
var timer = null;
var begin = 0, end = 400;
varrag = $("drag");
function run() {
if(( iLeft = parseInt(getStyle(drag,"left"))) < end){
var step = Math.ceil((400 - iLeft)/7);
rag.style.left = iLeft step " px";
>
上記のメソッドは、現在位置とターゲットの間の距離に基づいて変位のステップ長を計算します。
イージングを特別に処理するトゥイーン クラスが JavaScript に変換されます。
var Tween = {
Linear: function(t,b,c,d){ return c*t/d b; },
Quad: {
easeIn: function(t,b,c,d){
return c*(t/=d)*t b;
},
easeOut: function (t,b,c,d){
return -c *(t/=d)*(t-2) b;
},
easyInOut: function(t,b,c,d ){
if ((t/=d/2) return -c/2 * ((--t)*(t-2) - 1) b;
}
},
Cubic: {
easeIn: function(t,b,c,d){
return c*(t/=d)*t* t b;
},
easyOut: function(t,b,c,d){
return c*((t=t/d-1)*t*t 1) b;
},
easyInOut: function(t,b,c,d){
if ((t/=d/2) return c/2*((t-=2)*t*t 2) b;
}
},
Quart: {
easeIn: function(t,b,c,d){
return c*(t/=d)*t*t*t b;
},
easyOut: function(t,b,c,d){
return -c * ((t =t/d-1)*t*t*t - 1) b;
},
easyInOut: function(t,b,c,d){
if ((t/=d/ 2) return -c/2 * ((t-=2)*t*t*t - 2) b;
}
},
Quint: {
easyIn: function(t,b,c,d){
return c*(t/=d)*t*t*t*t b;
},
easeOut: function(t,b,c,d){
return c*((t=t/d-1)*t*t*t*t 1) b;
},
easyInOut: function(t,b,c,d){
if ((t/=d/2) < 1) return c/2*t*t*t*t*t b;
return c/2*((t-=2)*t*t*t*t 2) b;
}
},
Sine: {
easeIn:function(t,b,c,d){
return -c * Math.cos(t/d * (Math.PI/2)) c b;
},
easyOut: function(t,b,c,d){
return c * Math.sin(t/d * (Math.PI/2)) b;
},
easeInOut: function(t,b,c,d){
return -c/2 * (Math.cos(Math.PI*t/d) - 1) b;
}
},
Expo: {
easeIn:function(t,b,c,d){
return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) b;
},
easeOut: function(t,b,c,d){
return (t= =d)? b c : c * (-Math.pow(2, -10 * t/d) 1) b;
},
easeInOut: function(t,b,c,d){
if (t ==0) return b;
if (t==d) return b c;
if ((t/=d/2) return c/2 * (-Math.pow(2, -10 * --t) 2) b;
}
},
Circ: {
easyIn: function(t,b,c,d){
return -c * (Math.sqrt(1 - (t/=d)*t) - 1) b;
},
easeOut: function(t,b,c,d){
return c * Math.sqrt(1 - (t=t/d-1)*t) b;
},
easeInOut : function(t,b,c,d){
if ((t/=d/2) return c/2 * (Math.sqrt(1 - (t-=2)*t) 1) b;
}
},
Elastic: {
easyIn: function (t,b,c,d,a,p){
if (t==0) return b; if ((t/=d)==1) return b c; if (!p) p=d*.3;
if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) b;
},
easeOut: function(t,b,c,d,a,p){
if (t==0) b を返します。 if ((t/=d)==1) return b c; if (!p) p=d*.3;
if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
return (a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) c b);
},
easeInOut: function(t,b,c,d,a,p){
if (t ==0) b を返します。 if ((t/=d/2)==2) return b c; if (!p) p=d*(.3*1.5);
if (!a || a < Math.abs(c)) { a=c; var s=p/4; }
else var s = p/(2*Math.PI) * Math.asin (c/a);
if (t return a*Math.pow(2,-10*( t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 c b;
}
},
戻る: {
easeIn: function(t,b,c,d,s){
if (s == unknown) s = 1.70158;
return c*(t/=d)*t*((s 1)* t - s) b;
},
easyOut: function(t,b,c,d,s){
if (s == 未定義) s = 1.70158;
return c*( (t=t/d-1)*t*((s 1)*t s) 1) b;
},
easeInOut: function(t,b,c,d,s){
if (s == 未定義) s = 1.70158;
if ((t/=d/2) return c/2*((t-=2)*t*(((s*=(1.525)) 1)*t s) 2) b;
}
},
バウンス: {
easeIn: function(t,b,c,d){
return c - Tween.Bounce.easeOut(d-t, 0, c, d) b;
},
easyOut: function(t,b,c,d){
if ((t/=d) return c*(7.5625*t*t) b ;
} else if (t return c*(7.5625*(t-=(1.5/2.75))*t .75) b;
} else if (t return c*(7.5625*(t-=(2.25/2.75))*t .9375) b;
} else {
return c*( 7.5625*(t-=(2.625/2.75))*t .984375) b;
}
},
easeInOut: function(t,b,c,d){
if (t < d/2) return Tween.Bounce.easeIn(t*2, 0, c, d) * .5 b;
else return Tween.Bounce.easeOut(t*2-d, 0, c, d) ) * .5 c*.5 b;
}
}
}
各イージング方法は 3 種類に対応
easeIn: 0 から開始 加速のイージング;
easeOut: 0 への減速のイージング;
easeInOut: 前半で 0 から加速し、後半で 0 への減速のイージング
パラメータの説明:
t: 現在の時間
b:初期値
c:変更量
d:継続時間
呼び出し方法:
var timer = null;
var b=0 ,c=400,d=100,t=0;
varrag = $("drag");
function run() {
rag.style.left = Math.ceil( Tween.Circ .easeInOut(t,b,c,d)) "px";
if(t
}else{
clearInterval(timer);
}
}
var timer = setInterval(run, 20);

ホット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文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

楽なWebページレイアウトのためにjQueryを活用する:8本質的なプラグイン jQueryは、Webページのレイアウトを大幅に簡素化します。 この記事では、プロセスを合理化する8つの強力なjQueryプラグイン、特に手動のウェブサイトの作成に役立ちます

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

10の楽しいjQueryゲームプラグインして、あなたのウェブサイトをより魅力的にし、ユーザーの粘着性を高めます! Flashは依然としてカジュアルなWebゲームを開発するのに最適なソフトウェアですが、jQueryは驚くべき効果を生み出すこともできます。また、純粋なアクションフラッシュゲームに匹敵するものではありませんが、場合によってはブラウザで予期せぬ楽しみもできます。 jquery tic toeゲーム ゲームプログラミングの「Hello World」には、JQueryバージョンがあります。 ソースコード jQueryクレイジーワードコンポジションゲーム これは空白のゲームであり、単語の文脈を知らないために奇妙な結果を生み出すことができます。 ソースコード jquery鉱山の掃引ゲーム

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

このチュートリアルでは、jQueryを使用して魅惑的な視差の背景効果を作成する方法を示しています。 見事な視覚的な深さを作成するレイヤー画像を備えたヘッダーバナーを構築します。 更新されたプラグインは、jQuery 1.6.4以降で動作します。 ダウンロードしてください

このチュートリアルでは、Ajaxを介してロードされた動的なページボックスの作成を示しており、フルページのリロードなしでインスタントリフレッシュを可能にします。 JQueryとJavaScriptを活用します。カスタムのFacebookスタイルのコンテンツボックスローダーと考えてください。 重要な概念: ajaxとjquery

このJavaScriptライブラリは、Cookieに依存せずにセッションデータを管理するためにWindow.nameプロパティを活用します。 ブラウザ全体でセッション変数を保存および取得するための堅牢なソリューションを提供します。 ライブラリは、セッションの3つのコア方法を提供します
