ホームページ >ウェブフロントエンド >jsチュートリアル >バッファリングモーションエフェクトを実現するjsメソッド_javascriptスキル

バッファリングモーションエフェクトを実現するjsメソッド_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 16:04:551025ブラウズ

この記事の例では、バッファリングモーションエフェクトをjsで実現する方法を説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです。

この例では、非常に高速に起動し、停止するまで減速するという効果を得ることができます。

キーポイント:

var speed = (target-box.offsetLeft)/8;

ターゲットポイントの値から要素の現在位置を引いた値が8で割られます。offsetleftの値が大きくなり続けるため、速度の値は小さくなり続けます

speed = speed>0?Math.ceil(speed):Math.floor(speed);

前進速度は切り上げ、後進速度は切り捨て

コード:

<!DOCTYPE html>
<html>
<head>
<meta charset="gb2312" />
<title>无标题文档</title>
<style>
<!--
body{margin:0; padding:0; font:12px/1.5 arial;}
#box{width:100px; height:100px; position:absolute;
background:#06c; left:0;}
-->
</style>
<script>
<!--
window.onload = function(){
 var box = document.getElementById("box");
 var btn = document.getElementById("btn");
 var timer=null;
 btn.onclick = function(){
  startrun(300);
 }
 function startrun(target){
  clearInterval(timer);
  timer = setInterval(function(){
  var speed = (target-box.offsetLeft)/8;
  speed = speed>0&#63;Math.ceil(speed):Math.floor(speed);
  if(box.offsetLeft == target){
   clearInterval(timer);
  }else{
   box.style.left = box.offsetLeft+speed+"px";
  }
  document.getElementById('abc').innerHTML+=box.offsetLeft+','+speed+'<br>';
  },30);
 }
}
//-->
</script>
</head>
<body>
<input id="btn" type="submit" value="向右运动">
<div id="box">
</div>
<br>
<textarea id="abc" cols="50" rows="10" 
style="margin-top:130px"></textarea>
</body>
</html>

この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。