0
<html>
<head>
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
    setInterval(function(){
    var i = 1;
        while(i<3){

             var left = $("#"+i).offset().left;
            $("#"+i).css({'left':left}).animate({'left':'-10000px'},8000);
            if(i == 1){
                i++;
            }
            if(i == 2){
                i--;
            }
        }


    },2500);

});
</script>
</head>

<body>
<div id=myDivWrapper style="overflow:hidden">
<div id=1 style="right:0;width:100%;height:100%;background:url('1.jpg');position:absolute;"></div>
<div id=2 style="right:0;width:100%;height:100%;background:url('2.jpg');">
</div>
<body>
</html>

我正在尝试使用 while 循环创建一个 JQuery 图像滑块。这里 i 是我要递增的整数。我不希望 i 为 3,因此循环将停止。因此,我使用了一个决策语句来查找如果 i 为 1 则增加它,如果 i 为 2 则减少它。但这会导致浏览器延迟并且不起作用。我知道这个剧本很疯狂。但是你能弄清楚我在哪里犯错了吗?

4

2 回答 2

2

你的问题在这里..

if(i == 1){
   i++;
}
if(i == 2){
    i--;
}

看看当 i 为 1 时,第一个语句为真,然后第二个 if 将被执行,所以那时 i 为 2,所以它再次减少 i 的值。所以这是导致浏览器延迟的问题。使用 else 或 else if 来解决这个问题。

这里是。

if(i == 1) {
    i++;
}
else {
    i--;
}

OR

if(i == 1) {
   i++;
}
else if(i==2) {
  i--;
}

两者都是相同的,并且将为您工作。

于 2013-08-10T07:35:18.207 回答
1

使用如下:

    if(i == 1){
        i++;
    }else if(i == 2){
        i--;
    }

你应该使用else

于 2013-08-10T07:25:24.367 回答