jQuery 特效之淡入淡出

209 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第24天,点击查看活动详情

什么是淡入与淡出

在平时制作ppt的时候我们可能遇见过这种说法,其效果让页面的内容颜色越来越淡,直到消失,下一张 PPT 的显示就从淡变深,这就是淡入淡出的效果了。

fadeOut,fadeIn

在jQuery里面fadeIn 方法可以让元素淡入,它逐渐改变元素的不透明度,让不透明度从 0 逐渐变为 1,从而实现淡入的效果。

fadeOut 则用于让元素淡出,也是通过修改元素的不透明度,让不透明度逐渐从 1 变为 0,从而实现淡出的效果。

其语法格式为:

// 淡入
$().fadeIn(speed, easing, callback);

// 淡出
$().fadeOut(speed, easing, callback);

关于参数

speed:可选参数,用于设置显示的速度,其值可以是以毫秒为单位的数值,也可以是 slow、normal、fast 等值 easing 可选参数,用于设置动画在不同点上元素的速度,其默认值是 swing,表示开头和结尾的速度慢,中间的速度快。 callback 可选参数,是方法执行完成后,执行的一个函数。

实践测试

在vscode里面编写代码,html页为三个div

image.png

这里我们把样式变成三个方块并列,并且给各自附上颜色

image.png

这是js代码

      $(function () {
        $("div")
          .mouseover(function () {
            $(this).fadeOut(500);
          })
          .mouseout(function () {
            $(this).fadeIn(500);
          });
      });
    </script>

结果如下:

图片描述

  • 使用 fadeOut 方法实现当鼠标放在元素上,该元素的背景颜色会逐渐变淡直到消失。
  • 使用 fadeIn 方法实现当鼠标移出元素,背景颜色慢慢变深知道恢复原状。
  • 注意:fadeIn 和 fadeOut 方法与 show 和 hide 方法不同,淡入淡出,是颜色渐渐变淡直到消失。

fadeToggle 方法

fadeToggle 方法可以让元素在淡入和淡出动画效果之间进行切换。

其语法格式为:

$().fadeToggle(speed, easing, callback);

fadeToggle 方法参数说明如下:

  • speed 可选参数,用于设置显示的速度,其值可以是以毫秒为单位的数值,也可以是 slow、fast 等值。
  • easing 可选参数,用于设置动画在不同点上元素的速度,其默认值是 swing,表示开头和结尾的速度慢,中间的速度快。
  • callback 可选参数,是方法执行完成后,执行的一个函数。

实验

html代码为一张图片和一个按钮

image.png

js代码给按钮绑定了一个点击事件,当点击按钮时,页面上的图片就会执行淡入淡出的效果了。

image.png

实验结果为:

图片描述

思考:如果我们不想图片完全消失可以怎么做呢?

fadeTo 方法

fadeTo 方法也是用来实现淡入淡出效果的,它比 fadeToggle 方法多了一个参数 opacity,可以用来控制元素淡出的透明度。

其使用格式为:

$().fadeTo(speed, opacity, callback);

fadeTo 方法的参数说明如下:

  • speed 可选参数,用于设置显示的速度,其值可以是以毫秒为单位的数值,也可以是 slow、fast 等值。
  • opacity 表示元素的透明度,它是 fadeTo 方法必须有的一个参数,透明度的取值范围在 0.0 ~ 1.0 之间。
  • callback 可选参数,是方法执行完成后,执行的一个函数。

实验代码:

。。。。。。
    <script>
      $(function () {
        $("#fadeTo").click(function () {
          $("img").fadeTo(200, 0.2); // 淡出
        });
        $("#reset").click(function () {
          $("img").fadeTo(100, 1.0); // 恢复
        });
      });
    </script>
  </head>
  <body>
    <img src="animal1.jpg" width="300px" height="250px" /><br />
    <input type="button" value="淡出" id="fadeTo" />
    <input type="button" value="恢复" id="reset" />
  </body>
</html>

结果为:

图片描述