時間の経過とともにオブジェクトの回転が速くなるようにしようとしていますが、アニメーションが繰り返されるたびにイベントが発生するのに問題があります。SVG/SMIL のrepeatEventが必要なようですが、次のコードでonSpinEnd()
はまったく呼び出されていないようです。私は何を間違っていますか?
<path id='coloredPart' d='…'>
<animateTransform
id='spin'
attributeName='transform'
begin='0s'
dur='5s'
type='rotate'
from='0 0 0'
to='-360 0 0'
repeatCount='indefinite'
/>
</path>
<script> <![CDATA[
var spin = document.getElementById('spin');
var onSpinEnd = function() {
var intPart = 0;
intPart = parseInt(spin.getAttribute('dur')[0].slice(0, -1));
console.log(intPart);
if (intPart > 1) --intPart;
spin.setAttribute('dur', intPart.toString() + 's');
};
spin.addEventListener('repeatEvent', onSpinEnd, false)
]]>
</script>
結局のところ、「16s」から「16」が[0].slice(0, -1))
得られません。.slice(0, -1))
意思。その行は次のようになります。
intPart = parseInt(spin.getAttribute('dur').slice(0, -1));