jQuery的fadeOut()
和fadeIn()
方法是用于创建淡出和淡入动画效果的函数:
fadeOut()
: 通过逐渐降低元素的不透明度来隐藏元素,最终将display
属性设置为none
fadeIn()
: 通过逐渐增加元素的不透明度来显示元素,从display:none
状态变为可见状态要在同一个位置实现一个div淡出后另一个div淡入的效果,有几种常见方法:
$("#div1").fadeOut(function() {
$(this).hide(); // 确保隐藏
$("#div2").fadeIn();
});
<style>
.fade-container {
position: relative;
height: 200px; /* 固定高度 */
}
.fade-div {
position: absolute;
top: 0;
left: 0;
width: 100%;
}
</style>
<div class="fade-container">
<div id="div1" class="fade-div">第一个内容</div>
<div id="div2" class="fade-div" style="display:none">第二个内容</div>
</div>
<script>
$("#div1").fadeOut(function() {
$("#div2").fadeIn();
});
</script>
$("#div1").fadeOut().promise().done(function() {
$("#div2").fadeIn();
});
原因:没有使用相同的定位方式或容器 解决:使用相对/绝对定位确保两个div在同一位置
原因:可能是在动画完成前就开始了下一个动画 解决:使用回调函数或promise确保顺序执行
原因:两个div高度不同且容器高度未固定 解决:为容器设置固定高度或使用CSS过渡
// 带有自定义持续时间和回调的版本
$("#div1").fadeOut(500, "linear", function() {
$("#div2").fadeIn(800, "swing", function() {
console.log("动画完成");
});
});
通过合理使用这些方法,可以创建出流畅自然的元素切换效果,提升用户体验。
没有搜到相关的沙龙