<!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>
js点击选项置顶动画效果
猜你喜欢
转载自blog.csdn.net/CodingNoob/article/details/102480374
今日推荐
周排行