点击置顶,会跑到顶部去,其它的会下移,但是这样会出现多种情况,
顶部已经有置顶的项目,怎么处理比较好?
如果用户把每个元素都点一遍置顶,怎么处理关系?
点击最底下的元素置顶,会导致太多元素重排,性能问题
大家好,我需要替换的动画效果!!!
点击置顶,会跑到顶部去,其它的会下移,但是这样会出现多种情况,
顶部已经有置顶的项目,怎么处理比较好?
如果用户把每个元素都点一遍置顶,怎么处理关系?
点击最底下的元素置顶,会导致太多元素重排,性能问题
大家好,我需要替换的动画效果!!!
<!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就直接到第一个去了。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
5 回答1.9k 阅读
分享一个我刚遇到的问题刚整理下来你试试看,样式和你的不一样但是对应的
jquery
应该可以通用,你试着改成你对应的id
或者class
试试看jQuery置顶希望对你有帮助