首页 > 谁有这种列表置顶的效果或者demo?

谁有这种列表置顶的效果或者demo?


点击置顶,会跑到顶部去,其它的会下移,但是这样会出现多种情况,

大家好,我需要替换的动画效果!!!


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="" rel="stylesheet">
<script src="http://libs.baidu.com/jquery/1.8.2/jquery.min.js"></script>
<style>
 .demo li{line-height: 30px;border-bottom: 1px solid #000;}
 .demo li a{padding: 0 20px;}
</style>
</head>
<body>
<ul class="demo">
 <li>001 <a href="#" class="up">上移</a><a href="#" class="down">下移</a><a href="#" class="top">置顶</a><a href="#" class="bottom">置底</a></li>
 <li>002 <a href="#" class="up">上移</a><a href="#" class="down">下移</a><a href="#" class="top">置顶</a><a href="#" class="bottom">置底</a></li>
 <li>003 <a href="#" class="up">上移</a><a href="#" class="down">下移</a><a href="#" class="top">置顶</a><a href="#" class="bottom">置底</a></li>
 <li>004 <a href="#" class="up">上移</a><a href="#" class="down">下移</a><a href="#" class="top">置顶</a><a href="#" class="bottom">置底</a></li>
</ul>
<script>
 $(".demo").on('click', 'a', function(event) {
  event.preventDefault;
  var parent=$(this).parent();
  var parents=$(this).parents(".demo");
  var len=parents.children().length;
  if(($(this).is(".up") || $(this).is(".top")) && parent.index()==0){
   alert("已经置顶!");
   return false;
  }else if(($(this).is(".down") || $(this).is(".bottom")) && parent.index()==len-1){
   alert("已经置底!");
   return false;
  }
  switch (true) {
   case $(this).is(".up"):
    var prev = parent.prev();
    parent.insertBefore(prev);
    break;
   case $(this).is(".down"):
    var next = parent.next();
    parent.insertAfter(next);
    break;
   case $(this).is(".top"):
    parents.prepend(parent);
    break;
   case $(this).is(".bottom"):
    parents.append(parent);
    break;
  }
  alert("操作完成!!");
 });
</script>
</body>
</html>

如果仅仅是dom操作,那很简单。

比如你的html代码大概是ul跟li构成的
首先在点击置顶的时候,能获取到当前要置顶的li元素吧。
然后 ul.insertBefore(li,ul.firstElementChild);

这段代码的意思就是,在ul的第一个元素之前插入li元素。
你甚至都不用将li移除,就能发现li就直接到第一个去了。


分享一个我刚遇到的问题刚整理下来你试试看,样式和你的不一样但是对应的jquery应该可以通用,你试着改成你对应的id或者class试试看jQuery置顶希望对你有帮助

【热门文章】
【热门文章】