0
アニメーション中に純粋なJavascriptを使用してテキストをフェードアウトしようとしています。しかし、これを行うのではなく、私のスクリプトはすぐにそれをフェードアウトしています。誰もがなぜこれが起きているのか、jQueryを使わずに修正する方法を説明できますか? HTMLテキストは時間の経過ではなく直ちにフェードアウトします
<div id="scrollingTextHolder">
<p id="scrollingText">Hello</p>
<button id="moveText">Move Text</button>
</div>
CSS
#scrollingText{
display: block;
margin-top: 25px;
color: black;
}
JS
window.addEventListener("load", function(){
var scrollSpeed = window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.msRequestAnimationFrame ||
window.oRequestAnimationFrame ||
function(callback){
window.setTimeout(callback, 1000/60)
};
var moveText = document.getElementById("moveText");
function animateText(){
var scrollingTextElement = document.getElementById("scrollingText");
var currentPosition = parseInt(window.getComputedStyle(scrollingTextElement).getPropertyValue("margin-top"));
var moveTo = 247;
scrollingTextElement.style.opacity = scrollingTextElement.style.opacity - 0.1;
console.log(scrollingTextElement.style.opacity);
if(currentPosition <= moveTo){
scrollingTextElement.style.marginTop = (currentPosition + 3) +"px";
}
if(currentPosition == moveTo){
cancelAnimationFrame(requestAnimationFrame(animateText));
}
requestAnimationFrame(animateText);
}
moveText.addEventListener("click", function(){
requestAnimationFrame(animateText);
})
})