first commit

This commit is contained in:
编码猿
2024-09-27 02:06:13 +08:00
commit 852d94fbb9
36760 changed files with 3274413 additions and 0 deletions

View File

@@ -0,0 +1,196 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>仿QQ列表滑动</title>
<style>
* {
margin: 0;
padding: 0;
list-style: none;
}
.list {}
.list li {
width: 100%;
height: 45px;
display: flex;
align-items: center;
box-sizing: border-box;
border-bottom: 1px solid #f3f3f3;
position: relative;
overflow: hidden;
}
.list li .text {
position: absolute;
transition: all 0.3s;
}
.slide {
position: absolute;
height: 100%;
display: flex;
transition: all 0.3s;
}
.slide .slide_item {
padding: 0 15px;
color: #fff;
display: flex;
align-items: center;
font-size: 13px;
}
.slide .slide_item:nth-child(1) {
background-color: #09f;
}
.slide .slide_item:nth-child(2) {
background-color: #fe8d3f;
}
.slide .slide_item:nth-child(3) {
background-color: #ff5967;
}
</style>
</head>
<body>
<ul class="list">
<li>
<div class="text" style="left: 15px;">测试文字1</div>
<div class="slide" style="right: -220px">
<div class="slide_item ">取消置顶</div>
<div class="slide_item">标记未读</div>
<div class="slide_item delete">删除</div>
</div>
</li>
<li>
<div class="text" style="left: 15px;">测试文字2</div>
<div class="slide" style="right: -220px">
<div class="slide_item ">取消置顶</div>
<div class="slide_item">标记未读</div>
<div class="slide_item delete">删除</div>
</div>
</li>
<li>
<div class="text" style="left: 15px;">测试文字3</div>
<div class="slide" style="right: -220px">
<div class="slide_item ">取消置顶</div>
<div class="slide_item">标记未读</div>
<div class="slide_item delete">删除</div>
</div>
</li>
<li>
<div class="text" style="left: 15px;">测试文字4</div>
<div class="slide" style="right: -220px">
<div class="slide_item ">取消置顶</div>
<div class="slide_item">标记未读</div>
<div class="slide_item delete">删除</div>
</div>
</li>
<li>
<div class="text" style="left: 15px;">测试文字5</div>
<div class="slide" style="right: -220px">
<div class="slide_item ">取消置顶</div>
<div class="slide_item">标记未读</div>
<div class="slide_item delete">删除</div>
</div>
</li>
<li>
<div class="text" style="left: 15px;">测试文字6</div>
<div class="slide" style="right: -220px">
<div class="slide_item ">取消置顶</div>
<div class="slide_item">标记未读</div>
<div class="slide_item delete">删除</div>
</div>
</li>
<li>
<div class="text" style="left: 15px;">测试文字7</div>
<div class="slide" style="right: -220px">
<div class="slide_item ">取消置顶</div>
<div class="slide_item">标记未读</div>
<div class="slide_item delete">删除</div>
</div>
</li>
</ul>
</body>
<script>
var touchstartX = 0, currentSilde = null;
_(".list li").forEach((v, i) => {
v.addEventListener('touchstart', (e) => {
if (!e.target.className.includes("delete")) {
_(".list li").forEach(v => {
resetSilde(v.children[1]);
resetText(v.children[0]);
})
currentSilde = v;
touchstartX = e.touches[0].clientX
}
}, false);
v.addEventListener('touchmove', (e) => {
var moveX = e.touches[0].clientX
// 文字移动
v.children[0].style.left = `${parseInt(v.children[0].style.left) - (touchstartX - moveX)}px`
// 菜单移动
var right = parseInt(v.children[1].style.right) + (touchstartX - moveX);
if (right <= 0) {
v.children[1].style.right = `${right}px`
}
}, false);
v.addEventListener('touchend', (e) => {
var endX = parseInt(v.children[1].style.right)
if (endX > -110) {
v.children[1].style.right = `0px`
} else {
resetSilde(v.children[1]);
resetText(v.children[0]);
}
}, false);
})
function resetSilde(v) {
v.style.right = `-220px`
}
function resetText(v) {
v.style.left = `15px`
}
_(".delete").forEach(v => {
v.onclick = (e) => {
e.stopPropagation();
e.preventDefault()
$(".list").removeChild(currentSilde);
}
})
function $(className) {
return document.querySelector(className)
}
function _(className) {
return document.querySelectorAll(className)
}
</script>
</html>