前端入门(自留)——jquery元素淡入与淡出

103 阅读2分钟

相关知识

jquery方法参数举例补充
fadeIn淡入speed—显示速度(fast,slow,normal,毫秒数)
easing—在动画的不同点上元素的速度
  swing(默认):开头结尾慢,中间快
  linear匀速
fn—回调函数
$('#img').fadeIn('fast',
function(){console.log("fadeIn");})
fadeOut淡出同fadeIn
fadeToggle淡入/淡出切换同fadeIn若元素已隐藏,单击时淡入;若元素已显示,单击时淡出(可以简单理解为fadeIn和fadeOut参数相同时的结合)
fadeTo同fadeIn,
opacity—透明度(0完全透明~1完全不透明)
$('#img').fadeTo('slow',0.3);opacity参数为0时,元素仍占据空间

效果

(只针对前三张图片进行,每张图片的变化速度不同,第四张图片作为空间参考)

  • 隐藏(fadeIn):第二张图片先淡出,再第一张,再第三张
  • 显示(fadeOut):按第一二三的顺序依次淡入,前一张显示完毕才开始后一张的淡入过程
  • 显示/隐藏(fadeToggle):若图片已被隐藏,则按顺序依次淡入,否则按顺序依次淡出
  • 变透明(fadeTo):三张图片同时变透明,透明度不相同,透明度为0的第二张图片仍然占据空间
  • 恢复不透明(fadeTo):三张图片恢复至完全不透明

fade.gif

补充说明

原本设置了一个按钮绑定toggle函数,单击按钮则元素的透明度变淡,再次单击则恢复不透明。但jquery1.7后.toggle方法不再是“两个函数轮流进行”,而是被绑定元素(即按钮)的 display 显示/隐藏 相互切换,而toggle中的function函数会被立即执行。故将该按钮拆分成两个,一个控制透明度变淡,一个控制恢复不透明。

引入jquery.easing后,easing参数可选32种。

代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>fade淡入淡出</title>
    <script type="text/javascript" src="../js/jquery-3.7.1.js"></script>
    <style type="text/css">
        img{
            width: 100px;
            height: 130px;
            margin-top: 20px;
        }
    </style>
</head>
<body>
    <div class="button-box">
        <input type="button" value="显示(fadeIn)" id="fadeInBtn">
        <input type="button" value="隐藏(fadeOut)" id="fadeOutBtn">
        <input type="button" value="显示/隐藏(fadeToggle)" id="fadeToggleBtn">
        <input type="button" value="变透明(fadeTo)" id="fadeToBtn">
        <input type="button" value="不透明(fadeTo)" id="fadeToBtn2">
    </div>
    <img src="../images/jquery-fade/1.jpg" id="Img1" alt="">
    <img src="../images/jquery-fade/2.jpg" id="Img2" alt="">
    <img src="../images/jquery-fade/3.jpg" id="Img3" alt="">
    <img src="../images/jquery-fade/4.jpg" id="Img4" alt="">

    <script type="text/javascript">
        // 依次淡入
        $("#fadeInBtn").click(function(){
            $("#Img1").fadeIn("fast",function(){
                $("#Img2").fadeIn("slow",function(){
                    $("#Img3").fadeIn(1000)
                })
            })
        });

        // 同时淡出
        $("#fadeOutBtn").click(function(){
            $("#Img1").fadeOut("slow");
            $("#Img2").fadeOut("fast");
            $("#Img3").fadeOut(1000);
        })

        // 依次淡入淡出
        $("#fadeToggleBtn").click(function(){
            $("#Img1").fadeToggle("fast",function(){
                $("#Img2").fadeToggle("slow",function(){
                    $("#Img3").fadeToggle(1000);
                })
            })
        })

        // 元素变透明(全透明仍占据空间)
        $("#fadeToBtn").click(function(){
            $("#Img1").fadeTo("fast",0.15);
            $("#Img2").fadeTo("slow",0);
            $("#Img3").fadeTo(1000,0.3);
        });
        
        // 元素恢复不透明
        $("#fadeToBtn2").click(function(){
            $("#Img1").fadeTo("fast",1);
            $("#Img2").fadeTo("slow",1);
            $("#Img3").fadeTo(1000,1);
        });

    </script>
</body>

</html>