在本文中,我们将看到如何使用不同的 JQuery 方法来生成动画。
hide
() 和 show
()hide() 方法简单地设置内联样式 display: none
对于选定的项目。 相反,show() 方法恢复显示属性。
让我们看一个例子:
<script>
$(document).ready(function(){
// Hide displayed paragraphs
$(".hide-btn").click(function(){
$("p").hide();
});
// Show hidden paragraphs
$(".show-btn").click(function(){
$("p").show();
});
});
</script>
在第一种情况下,当您单击按钮 (hide-btn
),在第二种情况下,当您单击按钮时显示段落 (show-btn
).
您还可以指定持续时间参数,以在一段时间内动画显示和隐藏效果。
可以使用前置字符串之一指定持续时间defi黑夜 'slow'
o 'fast'
,或以毫秒为单位,以获得更高的准确性; 较高的值表示较慢的动画。
<script>
$(document).ready(function(){
// Hide displayed paragraphs with different speeds
$(".hide-btn").click(function(){
$("p.normal").hide();
$("p.fast").hide("fast");
$("p.slow").hide("slow");
$("p.very-fast").hide(50);
$("p.very-slow").hide(2000);
});
// Show hidden paragraphs with different speeds
$(".show-btn").click(function(){
$("p.normal").show();
$("p.fast").show("fast");
$("p.slow").show("slow");
$("p.very-fast").show(50);
$("p.very-slow").show(2000);
});
});
</script>
字符串预defi尼特 'fast'
表示持续时间为 200 毫秒,而字符串 'slow'
表示持续时间为 600 毫秒。
我们可以指定一个函数 callback
在方法完成后执行 show()
或戴尔' hide()
<script>
$(document).ready(function(){
// Display alert message after hiding paragraphs
$(".hide-btn").click(function(){
$("p").hide("slow", function(){
// Code to be executed
alert("The hide effect is completed.");
});
});
// Display alert message after showing paragraphs
$(".show-btn").click(function(){
$("p").show("slow", function(){
// Code to be executed
alert("The show effect is completed.");
});
});
});
</script>
jQuery 方法 toggle()
以这样的方式显示或隐藏项目:如果项目最初显示,它将被隐藏; 相反,如果隐藏,它将显示(实际上切换其可见性)。
<script>
$(document).ready(function(){
// Toggles paragraphs display
$(".toggle-btn").click(function(){
$("p").toggle();
});
});
</script>
同样,您可以指定参数 duration
对于方法 toggle()
,以这样一种方式来动画可见和隐藏之间的过渡,如方法 show()
e hide()
<script>
$(document).ready(function(){
// Toggles paragraphs with different speeds
$(".toggle-btn").click(function(){
$("p.normal").toggle();
$("p.fast").toggle("fast");
$("p.slow").toggle("slow");
$("p.very-fast").toggle(50);
$("p.very-slow").toggle(2000);
});
});
</script>
同样,你也可以指定一个函数 callback
对于方法 toggle()
.
<script>
$(document).ready(function(){
// Display alert message after toggling paragraphs
$(".toggle-btn").click(function(){
$("p").toggle(1000, function(){
// Code to be executed
alert("The toggle effect is completed.");
});
});
});
</script>
fadeIn()
e fadeOut()
您可以使用 jQuery 方法 fadeIn()
e fadeOut()
显示或隐藏 HTML 元素,逐渐增加或减少它们的不透明度并创建淡入淡出的效果。
<script>
$(document).ready(function(){
// Fading out displayed paragraphs
$(".out-btn").click(function(){
$("p").fadeOut();
});
// Fading in hidden paragraphs
$(".in-btn").click(function(){
$("p").fadeIn();
});
});
</script>
与其他 jQuery 效果方法一样,您可以选择为方法指定持续时间或速度参数 fadeIn()
e fadeOut()
,以控制淡入淡出的持续时间。 可以使用前置字符串之一指定持续时间defi黑夜 'slow'
o 'fast'
,或以毫秒为单位; 较高的值表示较慢的动画。
<script>
$(document).ready(function(){
// Fading out displayed paragraphs with different speeds
$(".out-btn").click(function(){
$("p.normal").fadeOut();
$("p.fast").fadeOut("fast");
$("p.slow").fadeOut("slow");
$("p.very-fast").fadeOut(50);
$("p.very-slow").fadeOut(2000);
});
// Fading in hidden paragraphs with different speeds
$(".in-btn").click(function(){
$("p.normal").fadeIn();
$("p.fast").fadeIn("fast");
$("p.slow").fadeIn("slow");
$("p.very-fast").fadeIn(50);
$("p.very-slow").fadeIn(2000);
});
});
</script>
方法的效果 fadeIn()
/ fadeOut()
它类似于 show()
/ hide()
, 但不同于方法 show()
/ hide()
, 前者只为目标元素的不透明度设置动画,而不为它们的大小设置动画。
你也可以指定一个函数 callback
在方法完成后运行 fadeIn()
/ fadeOut()
.
<script>
$(document).ready(function(){
// Display alert message after fading out paragraphs
$(".out-btn").click(function(){
$("p").fadeOut("slow", function(){
// Code to be executed
alert("The fade-out effect is completed.");
});
});
// Display alert message after fading in paragraphs
$(".in-btn").click(function(){
$("p").fadeIn("slow", function(){
// Code to be executed
alert("The fade-in effect is completed.");
});
});
});
</script>
fadeToggle()
jQuery 方法 fadeToggle()
通过动画显示或隐藏所选元素的不透明度,这样如果元素最初显示,它将淡出; 如果它被隐藏,它将淡出(即切换淡入淡出效果)。
<script>
$(document).ready(function(){
// Toggles paragraphs display with fading
$(".toggle-btn").click(function(){
$("p").fadeToggle();
});
});
</script>
您还可以为方法指定生命周期参数 fadeToggle()
至于方法 fadeIn()
/ fadeOut()
, 以控制淡入淡出动画的持续时间或速度。
<script>
$(document).ready(function(){
// Fade Toggles paragraphs with different speeds
$(".toggle-btn").click(function(){
$("p.normal").fadeToggle();
$("p.fast").fadeToggle("fast");
$("p.slow").fadeToggle("slow");
$("p.very-fast").fadeToggle(50);
$("p.very-slow").fadeToggle(2000);
});
});
</script>
fadeToggle() 方法也可以指定一个函数 callback
.
<script>
$(document).ready(function(){
// Display alert message after fade toggling paragraphs
$(".toggle-btn").click(function(){
$("p").fadeToggle(1000, function(){
// Code to be executed
alert("The fade-toggle effect is completed.");
});
});
});
</script>
fadeTo()
jQuery 方法 fadeTo()
它类似于方法 fadeIn()
, 但不同于方法 fadeIn()
, 方法 fadeTo()
让您将元素混合到一定程度的不透明度。
$(selector).fadeTo(speed, opacity, callback);
所需参数 opacity
指定目标元素的最终不透明度,可以是 0 到 1 之间的数字。参数 duration
o speed
此方法也需要指定动画淡入淡出的持续时间。
<script>
$(document).ready(function(){
// Fade to paragraphs with different opacity
$(".to-btn").click(function(){
$("p.none").fadeTo("fast", 0);
$("p.partial").fadeTo("slow", 0.5);
$("p.complete").fadeTo(2000, 1);
});
});
</script>
slideUp()
e slideDown()
jQuery 方法 slideUp()
e slideDown()
用于通过逐渐降低或增加它们的高度(即向上或向下滚动它们)来隐藏或显示 HTML 元素。
<script>
$(document).ready(function(){
// Slide up displayed paragraphs
$(".up-btn").click(function(){
$("p").slideUp();
});
// Slide down hidden paragraphs
$(".down-btn").click(function(){
$("p").slideDown();
});
});
</script>
与其他 jQuery 效果方法一样,您可以选择为方法指定持续时间或速度参数 slideUp()
e slideDown()
控制幻灯片动画的持续时间。 可以使用前置字符串之一指定持续时间defi黑夜 'slow'
o 'fast'
,或以毫秒为单位; 较高的值表示较慢的动画。
<script>
$(document).ready(function(){
// Sliding up displayed paragraphs with different speeds
$(".up-btn").click(function(){
$("p.normal").slideUp();
$("p.fast").slideUp("fast");
$("p.slow").slideUp("slow");
$("p.very-fast").slideUp(50);
$("p.very-slow").slideUp(2000);
});
// Sliding down hidden paragraphs with different speeds
$(".down-btn").click(function(){
$("p.normal").slideDown();
$("p.fast").slideDown("fast");
$("p.slow").slideDown("slow");
$("p.very-fast").slideDown(50);
$("p.very-slow").slideDown(2000);
});
});
</script>
您还可以指定一个回调函数在方法完成后执行 slideUp()
o slideDown()
.
<script>
$(document).ready(function(){
// Display alert message after sliding up paragraphs
$(".up-btn").click(function(){
$("p").slideUp("slow", function(){
// Code to be executed
alert("The slide-up effect is completed.");
});
});
// Display alert message after sliding down paragraphs
$(".down-btn").click(function(){
$("p").slideDown("slow", function(){
// Code to be executed
alert("The slide-down effect is completed.");
});
});
});
</script>
slideToggle()
jQuery 方法 slideToggle()
通过动画显示或隐藏所选元素的高度,这样如果元素最初显示,它将向上滚动; 如果隐藏,它将向下滚动,即在方法之间切换 slideUp()
e slideDown()
.
<script>
$(document).ready(function(){
// Toggles paragraphs display with sliding
$(".toggle-btn").click(function(){
$("p").slideToggle();
});
});
</script>
同样,您可以为方法指定生命周期参数 slideToggle()
如何 slideUp()
e slideDown()
.
<script>
$(document).ready(function(){
// Slide Toggles paragraphs with different speeds
$(".toggle-btn").click(function(){
$("p.normal").slideToggle();
$("p.fast").slideToggle("fast");
$("p.slow").slideToggle("slow");
$("p.very-fast").slideToggle(50);
$("p.very-slow").slideToggle(2000);
});
});
</script>
同样,你也可以为方法指定一个回调函数 slideToggle()
.
<script>
$(document).ready(function(){
// Display alert message after slide toggling paragraphs
$(".toggle-btn").click(function(){
$("p").slideToggle(1000, function(){
// Code to be executed
alert("The slide-toggle effect is completed.");
});
});
});
</script>
animate()
jQuery 方法 animate()
它用于创建自定义动画。 方法 animate()
用于动画数字 CSS 属性,例如 width
, height
, margin
, padding
, opacity
, top
, left
等等但非数字属性,如 color
o background-color
它们不能使用基本的 jQuery 功能进行动画处理。
方法的基本语法 animate()
如下:
$(selector).animate({ properties }, duration, callback);
方法参数 animate()
具有以下含义:
'slow'
o 'fast'
,或以毫秒为单位; 较高的值表示较慢的动画。下面是该方法的一个简单示例 animate()
单击按钮时,它会将图像从其原始位置向右移动 300 像素。
<script>
$(document).ready(function(){
$("button").click(function(){
$("img").animate({
left: 300
});
});
});
</script>
您还可以使用该方法同时为一个元素的多个属性设置动画 animate()
. 所有属性同时动画,没有任何延迟。
<script>
$(document).ready(function(){
$("button").click(function(){
$(".box").animate({
width: "300px",
height: "300px",
marginLeft: "150px",
borderWidth: "10px",
opacity: 0.5
});
});
});
</script>
您还可以使用 jQuery 的串联功能在队列中逐个为一个元素的多个属性设置动画。
下面的示例显示了一个排队或链接的 jQuery 动画,其中每个动画将在元素上的前一个动画完成后开始。 我们将在以后的文章中看到串联功能。
<script>
$(document).ready(function(){
$("button").click(function(){
$(".box")
.animate({width: "300px"})
.animate({height: "300px"})
.animate({marginLeft: "150px"})
.animate({borderWidth: "10px"})
.animate({opacity: 0.5});
});
});
</script>
这也是可能的 defi完成动画属性的相对值。 如果使用前缀指定值 +=
o -=
, 目标值是通过从属性的当前值中加上或减去指定的数字来计算的。
<script>
$(document).ready(function(){
$("button").click(function(){
$(".box").animate({
top: "+=50px",
left: "+=50px",
width: "+=50px",
height: "+=50px"
});
});
});
</script>
除了数值,每个属性都可以接受字符串 'show'
, 'hide'
e 'toggle'
. 如果您只想将属性从当前值设置为初始值,反之亦然,这将非常有用。
<script>
$(document).ready(function(){
$("button").click(function(){
$(".box").animate({
width: 'toggle'
});
});
});
</script>
stop()
jQuery 方法 stop()
用于在完成之前停止当前正在运行的 jQuery 动画或对所选元素的效果。
方法的基本语法 stop()
jQuery 可以通过以下方式给出:
$(selector).stop(stopAll, goToEnd);
上述语法中的参数含义如下:
false
,这意味着只会停止当前动画,队列中的其余动画将稍后执行。false
.这是一个演示该方法的简单示例 stop()
在实际操作中,您可以在单击按钮时开始和停止动画。
<script>
$(document).ready(function(){
// Start animation
$(".start-btn").click(function(){
$("img").animate({left: "+=150px"}, 2000);
});
// Stop running animation
$(".stop-btn").click(function(){
$("img").stop();
});
// Start animation in the opposite direction
$(".back-btn").click(function(){
$("img").animate({left: "-=150px"}, 2000);
});
// Reset to default
$(".reset-btn").click(function(){
$("img").animate({left: "0"}, "fast");
});
});
</script>
这是此方法的另一个示例,如果您再次单击该按钮Slide Toggle
” 在开始动画之后但在它完成之前,动画会立即从保存的起始点的相反方向开始。
<script>
$(document).ready(function(){
// Kill and toggle the current sliding animation
$(".toggle-btn").on("click", function(){
$(".box").stop().slideToggle(1000);
});
});
</script>
在创建动画悬停效果时,您可能遇到的最常见问题之一是当您快速放置和移除鼠标光标时,多个动画排队。 为什么,在这种情况下, mouseenter
“ mouseleave
事件在动画完成之前被快速触发。 为避免此问题并创建漂亮流畅的悬停效果,您可以添加 stop(true, true)
到方法链,像这样:
<script>
$(document).ready(function(){
$(".box").hover(function(){
$(this).find("img").stop(true, true).fadeOut();
}, function(){
$(this).find("img").stop(true, true).fadeIn();
});
});
</script>
JavaScript 语句逐行执行。 但是,由于 jQuery 效果需要一些时间才能完成,下一行代码可能会在前一个效果仍在运行时运行。 为了防止这种情况发生,jQuery 为每个效果方法提供了一个回调函数。
回调函数是在效果完成后运行的函数。 回调函数作为参数传递给效果的方法,它们通常作为最后一个方法参数出现。 例如jQuery效果方法的基本语法 slideToggle()
带有一个回调函数,可以指定如下:
$(selector).slideToggle(duration, callback);
考虑以下示例,我们在其中放置了语句 slideToggle()
e alert()
一个挨着另一个。 如果您尝试此代码,则在单击切换按钮后将立即出现警报,而无需等待滑动切换效果完成。
<script>
$(document).ready(function(){
$("button").click(function(){
$("p").slideToggle("slow");
alert("The slide toggle effect has completed.");
});
});
</script>
这是我们插入语句的前一个示例的修改版本 alert()
在该方法的回调函数中 slideToggle()
. 如果您尝试此代码,一旦滑动切换效果完成,就会出现警告消息。
<script>
$(document).ready(function(){
$("button").click(function(){
$("p").slideToggle("slow", function(){
// Code to be executed once effect is complete
alert("The slide toggle effect has completed.");
});
});
});
</script>
同样,你可以 defi完成其他 jQuery 效果方法的回调函数,例如 show()
, hide()
, fadeIn()
, fadeOut()
, animate()
等。
<script>
$(document).ready(function(){
$("button").click(function(){
$("h1, p").slideToggle("slow", function(){
// Code to be executed once effect is complete
alert("The slide toggle effect has completed.");
});
});
});
</script>
如果您尝试上面的示例代码,您将收到两次相同的警告消息,每个项目一次 <h1>
e <p>
,点击激活按钮后。
BlogInnovazione.it