0

CSS left プロパティと Javascript の setInterval 関数を調整して、JavaScript でスライダー効果を作成しようとしています。私のコードは次のようになります

<body onload="move('imagetag');">
    <div id="container">
        <img id="imagetag" src="img.jpg" style="left:40px; position:absolute;">
    </div>
    <script>
        function move(tag) {
            var target = document.getElementById(tag).style;
            var current = target.left;

            function moveObject() {
                current = parseInt(current) + 10 + 'px';
                console.log(current);
                setTimeout(moveObject, 1000);
            }
            setTimeout(moveObject, 1000);
        }
    </script>
</body>

console.log は正しい値を出力しますが、CSS には反映されません。

4

1 に答える 1

2

これは、スタイルを記述せず、それを読み取って値自体を編集するだけで、target.left を編集しないためです。

            function move(tag) {    
                var target = document.getElementById(tag).style;
                var current = target.left;                  
                function moveObject () {
                    current = parseInt(current) + 10 + 'px';
                    console.log(current);
                    target.left = current;  // <- 
                    setTimeout( moveObject,1000);
                }
                setTimeout( moveObject, 1000);
            }
于 2013-08-30T07:57:47.373 に答える