我有一个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;
答案 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存在,我可能会遗漏一些东西。我试图创建一个最小的表示。