0
点赞
收藏
分享

微信扫一扫

jQuery淡入淡出动画实现方法及实例代码

jQuery 提供了多种方便的淡入淡出(Fade In/Out)动画方法,用于控制元素的透明度,实现平滑的显示和隐藏效果。

主要淡入淡出方法

fadeIn([duration], [easing], [callback])

作用:将匹配元素的不透明度从 0(完全透明/隐藏)逐渐增加到 1(完全不透明/显示),实现淡入效果。

参数:

duration (可选):动画持续时间。可以是字符串 "slow" (600ms), "fast" (200ms),或以毫秒为单位的数字 (如 400)。

easing (可选):指定切换效果的函数。默认是 "swing"(慢-快-慢),也可用 "linear"(匀速)。

callback (可选):动画完成时执行的函数。

fadeOut([duration], [easing], [callback])

作用:将匹配元素的不透明度从 1(完全不透明/显示)逐渐减少到 0(完全透明/隐藏),实现淡出效果。

参数:同 fadeIn。

fadeToggle([duration], [easing], [callback])

作用:在 fadeIn() 和 fadeOut() 之间切换。如果元素当前是隐藏的,则执行 fadeIn;如果当前是显示的,则执行 fadeOut。

参数:同 fadeIn。

fadeTo(duration, opacity, [easing], [callback])

作用:将匹配元素的不透明度动画到指定的值(opacity)。opacity 是一个 0.0 到 1.0 之间的数字。

参数:

duration (必需):动画持续时间。

opacity (必需):目标不透明度值。

easing (可选):切换效果函数。

callback (可选):动画完成时执行的函数。

淡入淡出代码示例

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jQuery 淡入淡出示例</title>
    <!-- 引入 jQuery 库 -->
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
    <style>
        .box {
            width: 200px;
            height: 100px;
            margin: 10px;
            padding: 10px;
            background-color: #3498db;
            color: white;
            border: 1px solid #2980b9;
            text-align: center;
            line-height: 100px;
            font-weight: bold;
            display: none; /* 初始隐藏,用于 fadeIn 演示 */
        }
        button {
            margin: 5px;
            padding: 10px 15px;
            font-size: 14px;
            cursor: pointer;
        }
        .btn-group {
            margin-bottom: 20px;
        }
    </style>
</head>
<body>
    <h1>jQuery 淡入淡出动画演示</h1>
    <div class="btn-group">
        <h3>1. fadeIn() 和 fadeOut()</h3>
        <button id="btnFadeIn">淡入显示</button>
        <button id="btnFadeOut">淡出隐藏</button>
    </div>
    <div class="btn-group">
        <h3>2. fadeToggle()</h3>
        <button id="btnToggle">切换显示/隐藏</button>
    </div>
    <div class="btn-group">
        <h3>3. fadeTo()</h3>
        <button id="btnToHalf">淡到半透明 (0.5)</button>
        <button id="btnToFull">淡到完全不透明 (1.0)</button>
        <button id="btnToHidden">淡到完全透明 (0.0)</button>
    </div>
    <!-- 用于演示的元素 -->
    <div id="demoBox" class="box">这是一个演示盒子</div>
    <script>
        $(document).ready(function() {
            // 1. fadeIn 和 fadeOut
            $('#btnFadeIn').click(function() {
                // 使用默认速度(400ms)淡入
                $('#demoBox').fadeIn();
                // 或者指定速度:$('#demoBox').fadeIn(800);
                // 或者使用慢速:$('#demoBox').fadeIn('slow');
            });
            $('#btnFadeOut').click(function() {
                // 使用慢速淡出,并在完成后执行回调函数
                $('#demoBox').fadeOut('slow', function() {
                    // 动画完成后执行
                    console.log('淡出动画已完成!');
                    // 可以在这里添加其他操作
                });
            });
            // 2. fadeToggle
            $('#btnToggle').click(function() {

                // 切换显示状态,使用快速动画

                $('#demoBox').fadeToggle('fast');

            });


            // 3. fadeTo

            $('#btnToHalf').click(function() {

                // 淡到半透明,持续 600ms

                $('#demoBox').fadeTo(600, 0.5);

            });

            $('#btnToFull').click(function() {

                // 淡到完全不透明,使用线性动画

                $('#demoBox').fadeTo('slow', 1.0, 'linear');

            });

            $('#btnToHidden').click(function() {
                // 淡到完全透明(隐藏),持续 1000ms
                $('#demoBox').fadeTo(1000, 0.0, function() {
                    console.log('已完全透明');
                });
            });
            // 额外提示:可以链式调用,例如淡出后立即淡入
            // $('#demoBox').fadeOut(500).fadeIn(500);
        });
    </script>
</body>
</html>

举报

相关推荐

0 条评论