ホームページ > 記事 > ウェブフロントエンド > Vueプロジェクトのトゥイーンメソッドを通じてトップに戻る方法
この記事では主に Vue プロジェクトの tween メソッドの実装について紹介します。
1. シーン
tween.js は、スムーズなアニメーション効果を生成できる JS アニメーション ライブラリです
トップに戻る機能を実装したい場合、ほとんどの人はドキュメント ボディを使用します。 scrollTop =0; この関数はこれを書くことで実現されます
しかし、それを実現するにはトゥイーンのイージングを使用して、それがどのように機能するかを確認する必要があります。
tween関連の記事は以前にも書いたのでここでは紹介しません。
2. コード
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="https://cdn.jsdelivr.net/npm/vue"></script> <style type="text/css"> #app{width: 100%; height: 3000px;background: #CCCCCC;} .backTop{ width: 1.5rem; height: 1.5rem; border: 1px solid #ff0000; position: fixed; right: 1rem; bottom: 2rem; border-radius: 50%; /*background: url(/static/imgs/backtop20180226.png) no-repeat 40%;*/ background-size: 70% 100%; } </style> </head> <body> <p id="app"> <p @click="backTop()" class="backTop">Top</p> </p> <script type="text/javascript"> var app = new Vue({ el:"#app", data:{ }, methods:{ backTop(){ // * t: current time(当前时间); // * b: beginning value(初始值); // * c: change in value(变化量); // * d: duration(持续时间)。 var Tween = { Linear: function(t, b, c, d) { //匀速运动,想要实现其他的效果可以使用tween的其他方法 return c * t / d + b; } } Math.tween = Tween; var t = 1; const b = document.documentElement.scrollTop; const c = 50; const d = 5; const setInt = setInterval(()=>{ t--; console.log(t) if(document.documentElement.scrollTop == 0){clearInterval(setInt)} console.log(t); const backTop = Tween.Linear(t,b,c,d); console.log(backTop); document.documentElement.scrollTop = backTop; },20) } } }) </script> </body> </html>
3. requestAnimationFrame は setInterval メソッドを書き換えます:
methods:{ backTop(){ var Tween = { Linear: function(t, b, c, d) { //匀速 return c * t / d + b; } } Math.tween = Tween; var t = 1; const b = document.body.scrollTop; const c = 1; const d = 1; var timer; timer= requestAnimationFrame(function fn(){ if(document.body.scrollTop > 0){ t--; console.log(t) console.log(t); const backTop = Tween.Linear(t,b,c,d); console.log(backTop); document.body.scrollTop = backTop; timer = requestAnimationFrame(fn); }else{ cancelAnimationFrame(timer) } }) } }
上記は、将来皆さんの役に立てば幸いです。
関連記事:
vue パッケージ化後のフォントと画像リソースの無効化について (詳細なチュートリアル)
React での BootStrap ユーザー エクスペリエンス フレームワークの使用 (詳細なチュートリアル)
による Cookie の自動取得と有効期限ウェブ クローラーのアップデート (詳細なチュートリアル)
以上がVueプロジェクトのトゥイーンメソッドを通じてトップに戻る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。