javascript - 如何使图像从左侧 0,0 位置向右滑动到右侧末端?

标签 javascript html css

我有这个代码:

   <script type="text/javascript">
      var animate, left=0, imgObj=null;

function init(){

   imgObj = document.getElementById('myImage');
   imgObj.style.position= 'absolute';
   imgObj.style.top = '240px';
   imgObj.style.left = '-300px';
   imgObj.style.visibility='hidden';

   moveRight();
}

function moveRight(){
    left = parseInt(imgObj.style.left, 10);
    if (10 >= left) {
        imgObj.style.left = (left + 5) + 'px';
        imgObj.style.visibility='visible';

        animate = setTimeout(function(){moveRight();},20);

    } else {
        stop();
    }
}

function stop(){
   clearTimeout(animate);
}

window.onload = function() {init();};
   </script>
<img id="myImage" src="http://newsxpressmedia.com/files/radar-simulation-files/radar007339.Gif" style="margin-left:170px;" />

它所做的是将屏幕中间的一张图像从左侧移动到中心。 但我想要它做的是将图像从左上角 0,0 移动到右侧的末端到右上边界而不是停止但图像将再次从右到右移动离开了。

我一直不明白这个 px 值。现在它设置为前 240 和左 -300。我试图将它更改为 0 和 0,但它没有将它放在左上角,而且图像根本没有移动。

我如何更改代码,以便它开始将图像从左上角移动到右上角,我如何添加更多图像,以便它像幻灯片一样从左到右不停地移动它们?

最佳答案

试试这个:

<script>
    var animate, left=0, imgObj=null, right;

    function init(){

       imgObj = document.getElementById('myImage');
       imgObj.style.position= 'absolute';
       imgObj.style.top = 0;
       imgObj.style.left = 0;
       imgObj.style.visibility='visible';

       right = document.documentElement.clientWidth - imgObj.width;
       moveRight();

    }

    function moveRight(){
        if (left < right) {
            left += 5;
            imgObj.style.left = Math.min(left, right) + 'px';

            animate = setTimeout(moveRight,20); // call moveRight in 20msec
        }
    }

    window.onload = init;
</script>
<img id="myImage" src="http://newsxpressmedia.com/files/radar-simulation-files/radar007339.Gif" />

DEMO

现在回答您的第二个问题:

how can i add more images so it will move them nonstop from left to right like slide ?

您只需更改一点代码,即可处理多个图像:

<script>
    var imgObjs=null;

    function init(){
       imgObjs = document.getElementsByTagName('img');
        for(var i = imgObjs.length; i--; ) {
           var imgObj = imgObjs[i];
           imgObj.style.position='absolute';
           imgObj.style.top = 0;
           imgObj.style.display='none';        
        }

       moveImage(0);
    }

    function moveImage(i) {
        var imgObj = imgObjs[i],
            right = document.documentElement.clientWidth - imgObj.width;

        left = imgObj.style.left = 0;
        imgObj.style.display='block';

        function moveRight(){
            if (left < right) {
                left += 5;
                imgObj.style.left = Math.min(left, right) + 'px';

                setTimeout(moveRight,20); // call moveRight in 20msec
            } else {
                imgObj.style.display='none';
                moveImage((i+1)%imgObjs.length);
            }
        }
        moveRight();
    }

    window.onload = init;
</script>
<img src="http://newsxpressmedia.com/files/radar-simulation-files/radar007337.Gif" />
<img src="http://newsxpressmedia.com/files/radar-simulation-files/radar007338.Gif" />
<img src="http://newsxpressmedia.com/files/radar-simulation-files/radar007339.Gif" />

DEMO

关于javascript - 如何使图像从左侧 0,0 位置向右滑动到右侧末端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27068083/

相关文章:

html - CSS div 高度填充剩余空间并在达到屏幕最大高度时滚动

html - 如何将固定位置的 flex 容器覆盖在另一个 flex 容器上?

javascript - 为什么 .getElementByTagName 的 .parent 未定义

javascript - 如何更改javascript中动态创建的按钮的值

javascript - 直接下载文件,而不是从 window.open(url)

javascript - 测量鼠标点击时间长度的计时器

html - 如何设置图标旁边的列表和段落的样式?

javascript - 移动导航 jQuery 跳转,调整大小时导航消失?

javascript - onclick() 改变图像不断重置

javascript - 使用绝对定位的内部 Div 生成相对定位的 Div