如何用JS播放动画
How to play an Animation with JS
我正在编写按钮悬停时的淡入淡出文本...我必须在悬停时调用动画...我该怎么做?
const button = document.getElementById("btn");
const disp_text = document.getElementById('disp_text');
button.onmouseover = function(){
//Here goes the animation to play
disp_text.innerText = "Next";
}
我试过:
const button = document.getElementById("btn");
const disp_text = document.getElementById('disp_text');
button.onmouseover = function(){
animation.Play("fadein");
disp_text.innerText = "Next";
}
但是什么都没有...
如果有人能帮忙,我将不胜感激...
我不确定“animation.fadeIn”是什么意思。据我所知,普通 JS 中没有名为“动画”的对象。
编码淡入淡出动画的一种方法是使用 CSS 属性 不透明度。
如果您要在 CSS 中编写此动画代码,您可以这样做:
#btn {opacity: 0.5; }
#btn:hover {opacity: 1}
让我知道这是否是您需要的。
下面是一些使用 javascript 在悬停按钮时设置淡入淡出动画的代码。我还实现了一个纯 css 版本。我正要使用 Animate API 实现一个版本,但我看到 @DEEPAK 已经做到了,所以这是第三种选择。
const button = document.getElementById("btn");
const disp_text = document.getElementById('disp_text');
button.onmouseover = function(){
disp_text.classList.add('button-hover');
}
button.onmouseout = function(){
disp_text.classList.remove('button-hover');
}
#disp_text {
opacity:0;
transition: opacity .25s ease-in-out;
}
#disp_text.button-hover {
opacity:1;
}
#disp_text2 {
opacity:0;
transition: opacity .25s ease-in-out;
}
#btn2:hover #disp_text2 {
opacity:1;
}
<button id='btn'>Hover over this to see the animation of the DIV below</button>
<p id='disp_text'>Next</p>
<p>The one below uses css only - no javascript. This is easy because the span is inside the button</p>
<button id='btn2'><span id='disp_text2'>Next</span></button>
.play()
只有在您提到如何 animate
时才会起作用
const button = document.getElementById("btn");
const disp_text = document.getElementById('disp_text');
button.onmouseover = function(){
disp_text.innerText = "Next";
const animation = disp_text.animate(
[
{ opacity: 0 },
{ opacity: 1 }
], {
easing: 'ease',
duration: 2000
});
animation.play();
}
<button id="btn">Hello</button>
<p id="disp_text"></p>
我正在编写按钮悬停时的淡入淡出文本...我必须在悬停时调用动画...我该怎么做?
const button = document.getElementById("btn");
const disp_text = document.getElementById('disp_text');
button.onmouseover = function(){
//Here goes the animation to play
disp_text.innerText = "Next";
}
我试过:
const button = document.getElementById("btn");
const disp_text = document.getElementById('disp_text');
button.onmouseover = function(){
animation.Play("fadein");
disp_text.innerText = "Next";
}
但是什么都没有...
如果有人能帮忙,我将不胜感激...
我不确定“animation.fadeIn”是什么意思。据我所知,普通 JS 中没有名为“动画”的对象。
编码淡入淡出动画的一种方法是使用 CSS 属性 不透明度。
如果您要在 CSS 中编写此动画代码,您可以这样做:
#btn {opacity: 0.5; }
#btn:hover {opacity: 1}
让我知道这是否是您需要的。
下面是一些使用 javascript 在悬停按钮时设置淡入淡出动画的代码。我还实现了一个纯 css 版本。我正要使用 Animate API 实现一个版本,但我看到 @DEEPAK 已经做到了,所以这是第三种选择。
const button = document.getElementById("btn");
const disp_text = document.getElementById('disp_text');
button.onmouseover = function(){
disp_text.classList.add('button-hover');
}
button.onmouseout = function(){
disp_text.classList.remove('button-hover');
}
#disp_text {
opacity:0;
transition: opacity .25s ease-in-out;
}
#disp_text.button-hover {
opacity:1;
}
#disp_text2 {
opacity:0;
transition: opacity .25s ease-in-out;
}
#btn2:hover #disp_text2 {
opacity:1;
}
<button id='btn'>Hover over this to see the animation of the DIV below</button>
<p id='disp_text'>Next</p>
<p>The one below uses css only - no javascript. This is easy because the span is inside the button</p>
<button id='btn2'><span id='disp_text2'>Next</span></button>
.play()
只有在您提到如何 animate
时才会起作用
const button = document.getElementById("btn");
const disp_text = document.getElementById('disp_text');
button.onmouseover = function(){
disp_text.innerText = "Next";
const animation = disp_text.animate(
[
{ opacity: 0 },
{ opacity: 1 }
], {
easing: 'ease',
duration: 2000
});
animation.play();
}
<button id="btn">Hello</button>
<p id="disp_text"></p>