91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用原生JS制作一個緩動動畫

發布時間:2020-11-25 14:41:44 來源:億速云 閱讀:179 作者:Leah 欄目:開發技術

這期內容當中小編將會給大家帶來有關如何使用原生JS制作一個緩動動畫,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

原理很簡單通過定時器修改邊距達到移動動畫效果

實現速度的變化

緩動必然移動速度會有變化,這里需要用到一個小公式或者說算法

移動單位 = (指定移動位置邊距 - obj.offsetLeft) / 10;
var step = (ydpx - obj.offsetLeft) / 10;

有一個細節需要注意下:

移動的步數應該去掉小數,否者因為除法的原因無法移動到指定位置,會有一些差距
當step小于0對應的是向左移動舍去小數如:1.2 為1
大于0向右移動,進位,如:1.2為2
這應該是個數學問題**

之后代碼的實現就簡單多了:

//ydjl:移動到指定位置 (obj.offsetLeft)
function animate(obj,ydpx) {
 //清除定時器 防止每一次調用都產生一個定時器,疊加導致問題(速度變快)
 clearInterval(obj.timer); 
 obj.timer=setInterval(function () {
  var step = (ydpx - obj.offsetLeft) / 10; //移動距離
  //取整
  step = step>0 ? Math.ceil(step) : Math.floor(step);
  //判斷是否移動到指定位置
  if(obj.offsetLeft == ydpx)
  {
  //清除定時器,停止移動
   clearInterval(obj.timer);
  }
  //修改left實現移動
  obj.style.left = obj.offsetLeft + step + 'px';

 },15)//移動間隔設置
}

下面是演示:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <style>
  .boks{
   position: absolute;
   top: 300px;
   left:0;
   width: 100px;
   height: 100px;
   background-color: #ff0011;
  }
 </style>

</head>
<body>
<button class="yd500">移動500px</button>
<button class="yd800">移動800px</button>
<div class="boks">hezi</div>
</body>
<script>
 function animate(obj,ydpx) {
  //清除定時器
  clearInterval(obj.timer);
  obj.timer=setInterval(function () {
   var step = (ydpx - obj.offsetLeft) / 10;
   step = step>0 &#63; Math.ceil(step) : Math.floor(step);
    if(obj.offsetLeft == ydpx)
    {
     clearInterval(obj.timer);
    }
   obj.style.left = obj.offsetLeft + step + 'px';

  },15);
 }
 var yd500 = document.querySelector(".yd500");
 var yd800 = document.querySelector(".yd800");
 //盒子
 var boks = document.querySelector(".boks");

 yd500.addEventListener('click', function() {
  // 調用函數
  animate(boks, 500); //傳遞要移動的對象 和 移動位置
 })

 yd800.addEventListener('click', function() {
  // 調用函數
  animate(boks, 800); //傳遞要移動的對象 和 移動位置
 })
</script>
</html>

上述就是小編為大家分享的如何使用原生JS制作一個緩動動畫了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

水城县| 如皋市| 金寨县| 泾川县| 黎川县| 博罗县| 烟台市| 淮滨县| 临桂县| 虞城县| 无为县| 松原市| 北川| 惠来县| 西平县| 扎兰屯市| 松江区| 河津市| 苍梧县| 南宫市| 蓬溪县| 天峻县| 杭锦后旗| 错那县| 壶关县| 鱼台县| 怀柔区| 长治市| 河间市| 汝阳县| 德兴市| 铜山县| 青冈县| 鞍山市| 肇源县| 瓦房店市| 松江区| 陇南市| 夹江县| 景德镇市| 阿克|