transitionEndイベントでは、アニメーションで変化する要素の回数だけ実行されます。
たとえば、Xと透明度が変わる場合には、transitionEndイベントは、Xの変化で1回、透明度の変化で1回、合計2回実行されます。
とあります
下記を実行するとendが2回出るのがわかります
下記のように2つのプロパティをセットしつつ、1回しかendを出さない方法はありますでしょうか?
<style> body,html{ width:100%; height:100%; } .m{ opacity:0; transform: translateX(100%); transition: 1s ; } .m.m_{ opacity:1; transform:translateX(0%); } </style> <script> window.onload=function(){ div=document.createElement("div"); div.style.width="150px"; div.style.height="50px"; div.style.position="absolute"; div.style.top="0%"; div.style.right="0%"; div.classList.add("m"); div.setAttribute("id","div"); div.style.background="red"; div.addEventListener("transitionend", function() { alert("end"); }); document.body.appendChild(div); setTimeout("document.getElementById(\"div\").classList.add(\"m_\")",1000); } </script>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。