1. 程式人生 > 程式設計 >js實現點選選項置頂動畫效果

js實現點選選項置頂動畫效果

本文例項為大家分享了js實現點選選項置頂動畫的具體程式碼,供大家參考,具體內容如下

js實現點選選項置頂動畫效果

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8" />
 <title>js置頂動畫</title>
 <style>
  *{margin:0;padding:0;}
  ul {width: 1000px;margin:100px auto;position:relative;}
  li {position:absolute;height: 100px;width:900px;font-size:30px;background:#fff;line-height:100px;border:1px solid #eee;list-style:none;padding-left:50px;margin-top:-1px;transition:all .8s ease;}
  li button {float:right;position:relative;top:40px;right:30px;}
 </style>
</head>
<body>
 <ul>
 <li data-index="0">
  <span>內容0</span>
  <button>置頂</button>
 </li>
 <li data-index="1">
  <span>內容1</span>
  <button>置頂</button>
 </li>
 <li data-index="2">
  <span>內容2</span>
  <button>置頂</button>
 </li>
 <li data-index="3">
  <span>內容3</span>
  <button>置頂</button>
 </li>
 <li data-index="4">
  <span>內容4</span>
  <button>置頂</button>
 </li>
 </ul>
</body>
<script>
 function $$(str) {return document.querySelectorAll(str);}
 // 初始化排序
 function intData () {
 for (let i = 0,len = $$('ul li').length; i < len; i++) {
  $$('ul li')[i].style.top = (i * 101) + 'px'; 
  $$('ul li')[i].style.zIndex = (i * 101); 
 }
 }
 function bindEvent () {
 for (let i = 0,len = $$('ul li').length; i < len; i++) {
  $$('ul li')[i].onclick = function() {
  // 將點選的節點追加到第一個
  let first = this.parentNode.firstChild;
  this.parentNode.insertBefore(this,first);
  setTimeout(() => {
   intData();
  },50);
  };
 }
 }
 intData();
 bindEvent();
</script>
</html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。