首页
学习
活动
专区
圈层
工具
发布

jQuery fadeOut一个div,fadeIn另一个在它的位置

jQuery fadeOut和fadeIn动画效果实现

基础概念

jQuery的fadeOut()fadeIn()方法是用于创建淡出和淡入动画效果的函数:

  • fadeOut(): 通过逐渐降低元素的不透明度来隐藏元素,最终将display属性设置为none
  • fadeIn(): 通过逐渐增加元素的不透明度来显示元素,从display:none状态变为可见状态

实现方法

要在同一个位置实现一个div淡出后另一个div淡入的效果,有几种常见方法:

方法1:使用回调函数

代码语言:txt
复制
$("#div1").fadeOut(function() {
    $(this).hide(); // 确保隐藏
    $("#div2").fadeIn();
});

方法2:使用CSS定位确保位置相同

代码语言:txt
复制
<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>

方法3:使用promise实现更流畅的过渡

代码语言:txt
复制
$("#div1").fadeOut().promise().done(function() {
    $("#div2").fadeIn();
});

优势

  1. 平滑过渡:提供视觉上流畅的元素切换效果
  2. 用户体验好:比直接显示/隐藏更友好
  3. 简单易用:jQuery内置方法,无需复杂代码
  4. 可定制:可以设置动画持续时间和缓动函数

常见问题及解决方案

问题1:两个div位置不对齐

原因:没有使用相同的定位方式或容器 解决:使用相对/绝对定位确保两个div在同一位置

问题2:动画不流畅或闪烁

原因:可能是在动画完成前就开始了下一个动画 解决:使用回调函数或promise确保顺序执行

问题3:高度变化导致页面跳动

原因:两个div高度不同且容器高度未固定 解决:为容器设置固定高度或使用CSS过渡

应用场景

  1. 图片轮播/幻灯片效果
  2. 内容切换展示
  3. 表单步骤切换
  4. 通知消息的显示和隐藏
  5. 页面元素的动态更新

高级用法示例

代码语言:txt
复制
// 带有自定义持续时间和回调的版本
$("#div1").fadeOut(500, "linear", function() {
    $("#div2").fadeIn(800, "swing", function() {
        console.log("动画完成");
    });
});

通过合理使用这些方法,可以创建出流畅自然的元素切换效果,提升用户体验。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【jQuery案例】手风琴

    ,本次案例将会实现一个简单的手风琴效果,当鼠标指针滑过方块时,当前方块状态会发生变化 手风琴案例 案例分析 手风琴效果的实现并不复杂,需要用到jQuery中的fadeIn()和fadeOut()方法,以及鼠标指针进入事件...利用选择器获取到页面中的小方块时,通过fadeIn()和fadeOut()方法控制方块的显示与隐藏。 案例实现 HTML 页面结构主要使用div、ul、li标签。...思路: 1、设置一个div,类名为king,用于存放方块。 2、设置方块结构,使用ul定义无序列表结构,使用li代表小方块结构。li的类名为current,表示初始状态。...3、在li标签内部定义两个div元素,类名分别为big和small。big表示大方块,small表示小方块。 4、通过颜色类名red1和red2等方式设置大小方块的颜色。...position:relative是基于该元素本身原来的位置来定位,当它进行位置移动时,它还是占用着原来的位置。 6、设置初始状态。

    2.3K20

    jQuery 教程:简单的遮罩弹窗效果

    遮罩弹出效果就是网页中背景变成半透明,然后在屏幕中间出现一个菜单之类的东西。这种效果在网上很常见,例如:QQ空间浏览相册等。这种效果的好处就是,可以让用户聚焦到弹出的菜单中。...遮罩用到了两个 div ,一个作为背景,要覆盖整个网页,另一个是内容显示层,通常要居中处理。...通常情况下,一般用 absolute 属性值来实现这种效果,因为它的兼容性更好。但是在实际应用当中,当页面很长,往下滚动的时候,使用 absolute 遮罩层也会跟随滚动。...更多技巧和方法 更平缓的显示 点击之后,突然出现并不是一个好方法。所以我又增加了一个按钮,点击之后通过 fadeIn、fadeOut 方法来控制渐隐。...function(){ $('.bg').fadeOut(800); $('.content').fadeOut(800); }); 这样简单的方法,就增强了用户体验。

    2K20

    jQuery 尺寸、位置操作

    jQuery 尺寸、位置操作 ​ jQuery中分别为我们提供了两套快速获取和设置元素尺寸和位置的API,方便易用,内容如下。 1.1. ...jQuery 尺寸操作 ​ jQuery 尺寸操作包括元素宽高的获取和设置,且不一样的API对应不一样的盒子模型。 语法   1.以上参数为空,则是获取相应值,返回的是数字型。...1.2. jQuery 位置操作 ​ jQuery的位置操作主要有三个: offset()、position()、scrollTop()/scrollLeft() , 具体介绍如下: 语法 1. offset...,就可以拿到当前小模块的索引号5.就可以把animate要移动的距离求出来:当前索引号内容区模块它的offset().top6.然后执行动画即可 1.5....// 选出对应索引号的内容区的盒子 计算它的.offset().top var current = $(".floor .w").eq($(this).index()).offset(

    1.4K20

    【一起来烧脑】读懂JQuery知识体系

    背景 在现在就业的过程中,会运用JQuery是你的加分项,那么什么是JQuery,嗯,jquery是JavaScript的函数库,是一种轻量级的JavaScript库,写得少,做的多,导致jQuery有很多技术人员在使用它做项目...淡入淡出 fadeIn() jQuery fadeIn()用于淡入已隐藏的元素 fadeOut() jQuery fadeOut() 方法用于淡出可见元素 fadeToggle() jQuery...fadeToggle() 方法可以在 fadeIn() 与 fadeOut() 方法之间进行切换 fadeTo() jQuery fadeTo() 方法允许渐变为给定的不透明度 $(selector...slow"); $("#div3").fadeIn(3000); }); $(selector).fadeOut(speed,callback) $("button").click(function...(){ $("#div1").fadeOut(); $("#div2").fadeOut("slow"); $("#div3").fadeOut(3000); }); $(selector

    3K30

    jquery - 页面弹框 - 阻止事件冒泡示例

    需求 编写一个简单的页面弹框的示例,功能要求如下: 一个点击按钮,点击可以弹出一个弹框 弹框固定出现在页面的中间位置 需要写一个背景mask,用于遮掩背景,设置透明度0.3 点击弹框外的位置,弹框就可以消失不见...写了点击外部$(document)就隐藏的事件发现,当点击#btn的按钮,触发了fadeIn()方法显示弹框。...这个思路不涉及事件冒泡的阻止,但是属于同一个click()方法的阻止,因为点击$(document)的click()事件应该不会冒泡到它下面的元素.pop,不过可以在这里验证一下。...验证点击$(document)的click()事件是否会冒泡至下方的元素.pop 在.pop写一个alert()就可以验证出来了。 ?...点击#close后,正常执行fadeOut(),并且在.pop处已经截断了事件冒泡,所以在#close的 click()最后不用写return false;。

    3.7K10

    jQuery中的一些事件以及动画

    在jQuery类库的不同版本中效果可能不太一样(1.0、2.0、3.0),和浏览器也有关系 案例1:测试两种方式的区别【个数+顺序】 区别1:顺序,上面我们已经测试了,理论上先执行jQuery方式...,如果点击了p标签就会触发到两个事件,一个是p自己的点击事件,一个是div的点击事件。...因为p是在div中,属于div的一部分。...是展开的就从下往上收缩div,如果是收缩的,就从上往下展开 淡入淡出(透明度) 淡入淡出同样有三种,fadeIn、fadeOut、fadeToggle.我们一样用三个按钮分别实现 <input type...click(function(){ $(".big").fadeIn(1000); }) 点击按钮div从透明逐渐显示 fadeOut(time):淡出(透明度增加) $("#fadeOut")

    2.5K20

    第73天:jQuery基本动画总结

    ; }); 8、jQuery中淡入动画fadeIn fadeOut是淡出效果,相反的还有淡入效果fadeIn,方法使用上两者都是一致的,只是结果相反 .fadeIn( [duration...可选的 callback 参数是 fadeToggle完成后所执行的函数名称。 fadeToggle() 方法可以在 fadeIn() 与 fadeOut() 方法之间进行切换。...(和上面的方式一样) 10、jQuery中淡入效果fadeTo 淡入淡出fadeIn与fadeOut都是修改元素样式的opacity属性,但是他们都有个共同的特点,变化的区间要么是0,要么是1 fadeIn...竖向动作,slideToggle 通过高度变化来切换所有匹配元素的可见性 fadeToggle方法 - fadeToggle() 方法在 fadeIn() 和 fadeOut() 方法之间切换。...,则返回值就是jQuery对象中第一个元素相对于它同辈元素的位置 - 如果在一组元素上调用 .index() ,并且参数是一个DOM元素或jQuery对象, .index() 返回值就是传入的元素相对于原先集合的位置

    3.9K10

    jQuery的简单使用

    通过jQuery注册事件 jQuery注册事件也很简单,通过选择器包装好标签对象后,调用相关的事件方法即可,调用事件方法时需要传递一个函数对象,当事件被触发就会执行函数里的代码。...在jQuery里的事件名称并没有与html中的事件名称有多大区别,还是那个熟悉的味道熟悉的套路,示例: 一个css方法可以添加样式,以键值的方式添加: <!...控制标签 通过jQuery可以很方便的控制标签,例如可以对某个标签增加子标签,或者删除某个标签等等,append方法就可以给某个标签添加一个子标签: <!...fade方法: fadeIn() 方法用于淡入已隐藏的元素 fadeOut() 方法用于淡出可见元素 fadeToggle() 方法可以在 fadeIn() 与 fadeOut() 方法之间进行切换 fadeTo

    7.6K10
    领券