使用animate完成下午的sendMess.html的消息发送,要求每个div消息从右边往左边移动最后消息小时
时间: 2024-02-22 13:55:15 浏览: 65
好的,我可以帮你完成这个任务。我们可以使用jQuery和CSS3中的animate属性来实现这个动画效果。
首先,我们需要在HTML中创建一个DIV元素,用于显示发送的消息。每个消息都应该被包含在一个单独的DIV中。
```
<div class="message-container">
<div class="message">这是一条消息</div>
<div class="message">这是另一条消息</div>
<div class="message">这是最后一条消息</div>
</div>
```
接下来,我们需要编写一些CSS来定义消息和消息容器的样式:
```
.message-container {
position: relative;
overflow: hidden;
height: 200px;
}
.message {
position: absolute;
top: 0;
right: -100%;
background-color: #eee;
padding: 10px;
border-radius: 5px;
animation: slide-in 1s ease forwards;
}
@keyframes slide-in {
0% {
transform: translateX(100%);
}
100% {
transform: translateX(0%);
}
}
```
在这里,我们将消息容器设置为相对定位,并将其高度设置为200px,以便我们可以在其中添加多个消息。我们还将消息设置为绝对定位,并将其右侧位置设置为-100%,这样它们就会从右侧进入。我们还添加了一个CSS动画,它将消息从右侧滑动到左侧。
现在,我们可以使用jQuery来动态添加消息,并将它们添加到消息容器中:
```
$(document).ready(function() {
var messages = ['这是一条消息', '这是另一条消息', '这是最后一条消息'];
$.each(messages, function(i, message) {
var $message = $('<div class="message">' + message + '</div>');
$('.message-container').append($message);
});
});
```
最后,我们可以使用CSS3的动画来设置消息消失的动画,让消息从左侧滑出,然后从DOM中删除:
```
$('.message').last().animate({
left: '-100%'
}, 1000, function() {
$(this).remove();
});
```
这将从消息列表中删除最后一条消息,并将其从左侧滑出。
完整的代码如下:
```
<!DOCTYPE html>
<html>
<head>
<title>发送消息</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<style>
.message-container {
position: relative;
overflow: hidden;
height: 200px;
}
.message {
position: absolute;
top: 0;
right: -100%;
background-color: #eee;
padding: 10px;
border-radius: 5px;
animation: slide-in 1s ease forwards;
}
@keyframes slide-in {
0% {
transform: translateX(100%);
}
100% {
transform: translateX(0%);
}
}
</style>
</head>
<body>
<div class="message-container"></div>
<script>
$(document).ready(function() {
var messages = ['这是一条消息', '这是另一条消息', '这是最后一条消息'];
$.each(messages, function(i, message) {
var $message = $('<div class="message">' + message + '</div>');
$('.message-container').append($message);
});
setTimeout(function() {
$('.message').last().animate({
left: '-100%'
}, 1000, function() {
$(this).remove();
});
}, 3000);
});
</script>
</body>
</html>
```
希望这可以帮助你完成这个任务!
阅读全文