气泡外显示时间戳和滴答声的颤动气泡聊天是一种用户界面设计,常见于即时通讯应用中。气泡通常用于显示消息内容,而时间戳则显示消息发送的时间。滴答声和颤动效果则用于提醒用户新消息的到来。
使用HTML、CSS和JavaScript可以实现这种效果。以下是一个简单的示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>颤动气泡聊天</title>
<style>
.bubble {
position: relative;
display: inline-block;
padding: 10px;
margin: 10px;
border-radius: 15px;
background-color: #007bff;
color: white;
}
.timestamp {
font-size: 12px;
color: #ccc;
position: absolute;
bottom: 5px;
right: 5px;
}
.bubble.shake {
animation: shake 0.5s;
}
@keyframes shake {
0% { transform: translate(1px, 1px) rotate(0deg); }
10% { transform: translate(-1px, -2px) rotate(-1deg); }
20% { transform: translate(-3px, 0px) rotate(1deg); }
30% { transform: translate(3px, 2px) rotate(0deg); }
40% { transform: translate(1px, -1px) rotate(1deg); }
50% { transform: translate(-1px, 2px) rotate(-1deg); }
60% { transform: translate(-3px, 1px) rotate(0deg); }
70% { transform: translate(3px, 1px) rotate(-1deg); }
80% { transform: translate(-1px, -1px) rotate(1deg); }
90% { transform: translate(1px, 2px) rotate(0deg); }
100% { transform: translate(1px, -2px) rotate(-1deg); }
}
</style>
</head>
<body>
<div class="bubble shake">
Hello, World!
<span class="timestamp">10:30 AM</span>
</div>
<script>
function addNewMessage(message) {
const bubble = document.createElement('div');
bubble.className = 'bubble';
bubble.textContent = message;
const timestamp = document.createElement('span');
timestamp.className = 'timestamp';
timestamp.textContent = new Date().toLocaleTimeString();
bubble.appendChild(timestamp);
document.body.appendChild(bubble);
// Add shake effect
bubble.classList.add('shake');
// Remove shake effect after a short delay
setTimeout(() => {
bubble.classList.remove('shake');
}, 500);
}
// Example usage
addNewMessage('New message!');
</script>
</body>
</html>
后端主要负责处理消息的发送和接收,可以使用Node.js、Python、Java等语言实现。以下是一个简单的Node.js示例:
const express = require('express');
const app = express();
const port = 3000;
app.use(express.json());
let messages = [];
app.post('/messages', (req, res) => {
const message = req.body.message;
const timestamp = new Date().toLocaleTimeString();
messages.push({ message, timestamp });
res.status(200).send({ message, timestamp });
});
app.get('/messages', (req, res) => {
res.status(200).send(messages);
});
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
Date
对象来生成当前时间。通过以上方法,你可以实现一个带有时间戳和滴答声颤动气泡的聊天界面。希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云