.src和.alt在示例中做了什么?

时间:2017-03-25 08:03:56

标签: javascript

我正在学习Javascript。我已经达到了srcalt的目的。我得到了这个例子,但我不明白这个例子中有什么意义。有人可以解释一下吗? (第4和第5行)。为什么函数Change()在最后再次执行?(完整代码)

function Change() {  
  var first = document.getElementById('traffic');
  var obj = list[next];
  first.src = obj.src;
  first.alt = obj.src;
  timer = setTimeout(Change, obj.interval);
  nextlight = nextlight + 1;
  if (nextlight == list.length)
    nextlight = 0;
}

完整代码:

<!DOCTYPE html> 
<html> 
<body>

<h1>JavaScript Code</h1>
<p>Traffic Light</p>

<img id="traffic" src="only red1.jpg">
<button type="button" onclick="Change()">Change Light</button>

<script>
var list = [{
  src: "only red1.jpg",
  interval: 10000
}, {
  src: "red-yellow 2.jpg",
  interval: 5000
}, {
  src: "green3.jpg",
  interval: 3000
}, {
  src: "yellowonly4.jpg",
  interval: 1000
}];

var next = 0;
var timer;

function Change() {  
  var first = document.getElementById('traffic');
  var obj = list[next];
  first.src = obj.src;
  first.alt = obj.src;
  timer = setTimeout(Change, obj.interval);
  next = next + 1;
  if (next == list.length)
    next = 0;
}

Change();
</script>

</body> 
</html>

所有帮助表示感谢,我只是想学习。

4 个答案:

答案 0 :(得分:1)

import UIKit import Auk class SliderViewController: UIViewController, UIScrollViewDelegate { @IBOutlet weak var scrollView: UIScrollView! @IBOutlet weak var labelForInfo: UILabel! @IBOutlet weak var navBarTitle: UINavigationItem! var lastPoint: CGPoint? var listForDescr: [Int : String] = [Int : String]() func scrollViewWillBeginDragging(_ scrollView: UIScrollView) { lastPoint = scrollView.contentOffset } func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { if (lastPoint?.x)! < scrollView.contentOffset.x { //print(scrollView.auk.currentPageIndex ?? 0) navBarTitle.title = listForDescr[scrollView.auk.currentPageIndex ?? 0] } else if (lastPoint?.x)! > scrollView.contentOffset.x { //print(scrollView.auk.currentPageIndex ?? 0) navBarTitle.title = listForDescr[scrollView.auk.currentPageIndex ?? 0] } } override func viewDidLoad() { super.viewDidLoad() self.scrollView.delegate = self labelForInfo.text = "" scrollView.backgroundColor = UIColor.white var count: Int = 0 for picture in LogInViewController.dictionaryForSlider { scrollView.auk.show(url: picture.key, accessibilityLabel: picture.value) listForDescr.updateValue(picture.value, forKey: count) count+=1 } } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } 包含obj元素,因此分配给<img>obj.src会更改图片显示的网址。如果你这样做

obj.alt

图像将显示绿灯。

该功能在最后执行,以便它进行第一次换灯,然后启动定时器,在几秒钟后再次更换它。

答案 1 :(得分:0)

如果要在显示所有灯光后停止迭代,则需要清除超时

timer = setTimeout(Change, obj.interval);
nextlight = nextlight + 1;
if (nextlight == list.length)
    clearTimeout(timer);
}

关于src和alt的另一个问题

src:设置图像的来源 - 找到图像的路径

alt:设置替代文字,以防未找到图片或浏览器因某种原因无法显示。

答案 2 :(得分:0)

src是source的缩写。在这种情况下,它是存储在“列表”中的对象的对象属性,并指向图像。 Change函数迭代var列表,​​并使用列表中对象的不同图像源,即确保交通灯为红色,黄色和绿色。更改函数仅在结尾执行,它仅在之前声明。

答案 3 :(得分:0)

.src为您提供图像的路径/来源。 .alt提供备用文本(如果未找到图像,则显示此空间上的替代文本)