如何使用setTimeout方法在指定时间后移动轮播? JavaScript的

时间:2016-07-23 00:24:17

标签: javascript html css carousel settimeout

我有一个div,其中3张图片彼此相邻。 最初显示1个图像,而另外2个图像使用溢出隐藏:隐藏在父div上。 然后我使用setInterval方法将图像1px的div移动到每个毫秒左边,直到div向左移动150px。 到那时,由于溢出,第一个图像已移出视野:隐藏,第二个图像现在处于视野中。此时,它会使用setTimeout方法按预期暂停一秒钟。但事情开始出错了。经过1秒后......第三张图像加速并停在应该的位置......或者它加速并超出停止点并超出视野。然后你点击按钮越多,图像就会开始消失!我不认为我正确使用setTimeout。当我在调试器中观察它时... setTimeout调用的函数(pause())以随机的间隔一遍又一遍地循环,然后继续执行脚本的其余部分。然后再次循环回来。它应该只运行一次...在setTimeout调用它之后1秒,然后再也不会运行。



function move() {
    var element = document.getElementById('mover');
    var pos = -300;
    var go = setInterval(animate, 1);
    
    function animate() {
        if (pos === 0) {
            clearInterval(go);
        } else if (pos === -150) {
            function pause() {
                pos++;
            }
            setTimeout(pause, 1000);
            
        } else {
            pos++;
            element.style.left = pos + 'px';
        }
    }
}

* {
    box-sizing: border-box;
}

img {
    width: 150px;
    height: 225px;
}

#overflow {
    overflow: hidden;
    width: 150px;
    height: 225px;
}

#mover {
    position: relative;
    left: -300px;
    width: 450px;
    font-size: 0;
}

<div id="overflow">
            <div id="mover">
                <img src="http://images.primewire.ag/thumbs/2763151_Mr_Robot_2015_30.jpg">
                <img src="http://images.primewire.ag/thumbs/2777450_Outcast_2016.jpg">
                <img src="http://images.primewire.ag/thumbs/2770130_Ash_vs_Evil_Dead_1969.jpg">
            </div>
        </div>
        
        <br>
        <button onclick="move()">Click me</button>
&#13;
&#13;
&#13; 对不起,我是一个完整的初学者,我知道必须有我没考虑过的事情。有人可以告诉我,我做错了什么?

1 个答案:

答案 0 :(得分:1)

这可能不是你想要的,但希望这里有一些有用的东西:

https://jsfiddle.net/tobyl/g01zd64o/17/

jQuery的:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let name : String=arrDict[indexPath.row].valueForKey("name") as! String
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
    if segue.identifier == "SecondSegue" {
        let viewController = segue.destinationViewController as! SecondViewController
        viewController.passedVariable = name
    }
}

注意:我不清楚为什么你的一些javascript存在,我可能会遗漏一些东西。我试图创建一个最小的表示。