要在JavaScript中实现发表留言时添加表情特效,可以使用以下步骤和代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>留言表情特效</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="container">
<textarea id="message" placeholder="请输入留言..."></textarea>
<div id="emoji-picker">
<!-- 表情选择器 -->
<span class="emoji" data-emoji="😊">😊</span>
<span class="emoji" data-emoji="😂">😂</span>
<span class="emoji" data-emoji="🤣">🤣</span>
</div>
<button id="submit-btn">提交</button>
<div id="messages"></div>
</div>
<script src="script.js"></script>
</body>
</html>
.container {
width: 300px;
margin: 0 auto;
}
#message {
width: 100%;
height: 100px;
margin-bottom: 10px;
}
#emoji-picker {
display: flex;
gap: 5px;
}
.emoji {
cursor: pointer;
font-size: 20px;
transition: transform 0.2s;
}
.emoji:hover {
transform: scale(1.2);
}
#messages {
margin-top: 20px;
}
document.addEventListener('DOMContentLoaded', () => {
const messageInput = document.getElementById('message');
const emojiPicker = document.getElementById('emoji-picker');
const submitBtn = document.getElementById('submit-btn');
const messagesContainer = document.getElementById('messages');
emojiPicker.addEventListener('click', (event) => {
if (event.target.classList.contains('emoji')) {
const emoji = event.target.getAttribute('data-emoji');
insertEmoji(messageInput, emoji);
}
});
submitBtn.addEventListener('click', () => {
const message = messageInput.value.trim();
if (message) {
displayMessage(message);
messageInput.value = '';
}
});
function insertEmoji(input, emoji) {
const start = input.selectionStart;
const end = input.selectionEnd;
const value = input.value;
input.value = value.substring(0, start) + emoji + value.substring(end);
input.selectionStart = input.selectionEnd = start + emoji.length;
}
function displayMessage(message) {
const messageElement = document.createElement('div');
messageElement.textContent = message;
messageElement.classList.add('message');
messagesContainer.appendChild(messageElement);
}
});
通过这种方式,用户在发表留言时可以选择并插入表情,从而增加互动性和趣味性。
领取专属 10元无门槛券
手把手带您无忧上云