>웹 프론트엔드 >JS 튜토리얼 >버퍼링 모션 effect_javascript 기술을 달성하는 js 방법

버퍼링 모션 effect_javascript 기술을 달성하는 js 방법

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으로 문의하세요.