首頁  >  文章  >  web前端  >  JS做出折疊展開動畫(附程式碼)

JS做出折疊展開動畫(附程式碼)

php中世界最好的语言
php中世界最好的语言原創
2018-05-14 14:38:142586瀏覽

這次帶給大家JS做出折疊展開動畫(附程式碼),JS做出折疊展開動畫(附程式碼)的注意事項有哪些,以下就是實戰案例,一起來看一下。

<!DOCTYPE = html>
<html>
 <head>
  <title> JS折叠展开动画</title>
  <style>
  body{
   margin: 0px;
   padding: 0px;
  }
  .red{
   background-color:red;
   width:200px;
   height:200px;
   position:relative;
   left:-200px;
   top:0px;
  }
  .blue{
   background:blue;
   width:20px;
   height:50px;
   position:absolute;
   left:200px;
   top:75px;
  }
  </style>
 </head>
 <body>
  <p class="red" id="cf1"><p class="blue" id="cf">分享</p></p>
  <script>
  window.onload = function(){
   var onp = document.getElementById("cf1");
   onp.onmouseover = function(){
    startmove(0);
   }
   onp.onmouseout = function(){
    startmove(-200);
   }
  }
  var timer ;
  function startmove(target){
   clearInterval(timer);//清除定时器,以免多次触发定时器导致速度越来越快而不是匀速前进
   var onp1 = document.getElementById("cf1");
   timer = setInterval(function(){
   var speed = 0;
   if(onp1.offsetLeft<target){
    speed = 10;
   }else{
    speed = -10;
   }
   if(onp1.offsetLeft==target){
    clearInterval(timer);
   }
   else{
   onp1.style.left = onp1.offsetLeft+speed+&#39;px&#39;;
   }
   },30)
  }
  </script>
 </body>
</html>


小結:

一、css部分:

1、別忘記樣式初始化;
2、複習css檔案的引用方式;(類別引用方式)
3、複習絕對定位與相對定位關係(父關係用relative;子關係用absolute

二、js部分:

1、element.style. left & element.offsetLeft區別:

① 前者單位是px,是字串;後者單位是數值;

2、思路開始不夠清晰,未能抽象化滑鼠放上和移開關鍵變數-目標位置不同而已

3、函數參數盡可能少(在能達成目標的情況下)

4、滑鼠作用物件設定為父級p最好,不然會出現閃爍狀況(剛呼叫onmouseover,目標移除,又呼叫了onmouseout

5、注意清除定時器(①、防止移動時速度不穩定②、到目標位置停止運動)

三、其他:

# #Q:Google瀏覽器解除禁止彈出視窗?

A:設定-進階設定-隱私設定-內容設定-彈出式窗口,進行相關設定。

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

vue vue-router vuex操作權限

v-bind與v-on使用案例詳解
#

以上是JS做出折疊展開動畫(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn