为å¥åè¿ç¯æç«
æè¿æ¥äºä¸ªéæ±ï¼è¦æ±é¿ææ个æ ç¾æ¾ç¤ºå é¤ä¸ä¸ªæ¬æµ®çå é¤æé®ãè¿ä¸ªéæ±å ¶å®å¨appä¸å¾å¸¸è§ï¼ä½æ¯å¨ç§»å¨ç«¯h5ä¸ï¼æ们没æé¿æçäºä»¶ï¼æ以就éè¦èªå·±æ¨¡æè¿ä¸ªäºä»¶äºã
大æ¦ææå¦ä¸ï¼
ps: 为äºå个gifè¿ä¸äºappï¼è¿å¾éè¿é®ä»¶åå°çµèä¸ï¼èçç¼ãã
ç±æ¤æ们å¯ä»¥å®ç°æ¨¡æçé¿æäºä»¶äºã
请æéç¹æ¾å¨JSä¸ï¼è¿éè´´åºæ¥å®æ´ç代ç æ¯ä¸ºäºæ¹ä¾¿å¤§å®¶ç个ä»ç»ï¼ä»£ç å¯ä»¥æ·è´ç´æ¥çææ
cssä¸å¤§é¨ååªæ¯åäºæ ·å¼çç¾åï¼è¿æä¸å¼å§è®©å é¤æé®éèèµ·æ¥
HTML:
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" type="text/css" href="./longpress.css" />
</head>
<div class="container">
<div class="label" id="label">é¿ææ</div>
<div class="delete_btn">å é¤</div>
<script src="./longpress.js"></script>
</body>
</html>
å¤å¶ä»£ç
JS
let timer = null
let startTime = ''
let endTime = ''
const label = document.querySelector('.label')
const deleteBtn = document.querySelector('.delete_btn')
label.addEventListener('touchstart', function () {
startTime = +new Date()
timer = setTimeout(function () {
deleteBtn.style.display = 'block'
}, 700)
label.addEventListener('touchend', function () {
endTime = +new Date()
clearTimeout(timer)
if (endTime - startTime < 700) {
// å¤çç¹å»äºä»¶
label.classList.add('selected')
å¤å¶ä»£ç
CSS
.container {
position: relative;
display: inline-block;
margin-top: 50px;
.label {
display: inline-block;
box-sizing: border-box;
width: 105px;
height: 32px;
line-height: 32px;
background-color: #F2F2F2;
color: #5F5F5F;
text-align: center;
border-radius: 3px;
font-size: 14px;
.label.selected {
background-color: #4180cc;
color: white;
.delete_btn {
display: none;
position: absolute;
top: -8px;
left: 50%;
transform: translateX(-50%) translateY(-100%);
color: white;
padding: 10px 16px;
background-color: rgba(0, 0, 0, .7);
border-radius: 6px;
line-height: 1;
white-space: nowrap;
font-size: 12px;
.delete_btn::after {
content: '';
width: 0;
height: 0;
border-width: 5px;
border-style: solid;
border-color: rgba(0, 0, 0, .7) transparent transparent transparent;
position: absolute;
bottom: -9px;
left: 50%;
transform: translateX(-50%);
å¤å¶ä»£ç
ps: touchstartåtouchendåªæå¨ç§»å¨ç«¯è®¾å¤ä¸ææç¨ï¼å¦æè¦ç代ç 示ä¾çè¯è¯·:
欢è¿äº¤æµ~