JSFiddle - React, Tailwind, and code Playground
HTML
<h1>輪播廣告</h1>
<div id="ad"></div>
JavaScript
//廣告的資料
var adData = [{
img: 'http://lh3.ggpht.com/UYX3ro5qLZDMyInieR4avSQsmpDVRlbNId4jpGWNzC3sYBh9Ayz1LAoRJciQGECucWXNb0Fzck4VtDqUvvQpLStCA6z2OlwivM09gELP',
link: 'http://www.google.com/doodles/first-day-of-summer-2013'
}, {
img: 'http://lh6.ggpht.com/-piIYxGNeFjvr5FUYpNQyYTAvDSoqizlbmdkfWCXXkVoLosT3dZ77nl_tujI8_hLiUwY_SbMS4l7FynmTJWSSjH_0uDWwMLF2WGbgfqA',
link: 'http://www.google.com/doodles/50th-anniversary-of-the-i-have-a-dream-speech'
}, {
img: 'http://www.google.com/logos/2010/manuel-de-falla10-hp.gif',
link: 'http://www.google.com/doodles/134th-birthday-of-manuel-de-falla'
}, {
img: 'http://www.google.com/logos/2012/olympics-archery-2012-hp.jpg',
link: 'http://www.google.com/doodles/archery-2012'
}];
//廣告播放器
var AdPlayer = function (adPlaceHolder, adData) {
var currentElm, placeHolder, adList;
placeHolder = document.getElementById(adPlaceHolder);
adList = adData;
renderAd();
this.start = function () {
getAd();
setInterval(function () {
hideAd();
getNewAd();
}, 3000);
};
//產生廣告元素
function renderAd() {
var template = '<div id="ad-{{no}}" style="display:none"><a href="{{url}}" rel="nofollow"><img src="{{imgPath}}" border="0" width="335" /></a></div>';
for (var i = 0; i < adList.length; i++) {
var adContent = placeHolder.innerHTML;
var temp = template;
temp = temp.replace(/{{no}}/, i);
temp = temp.replace(/{{url}}/, adList[i].link);
temp = temp.replace(/{{imgPath}}/, adList[i].img);
adContent += temp;
placeHolder.innerHTML = adContent;
}
}
//改變廣告的狀態
function getAd() {
var no = getRandomNo();
currentElm = document.getElementById("ad-" + no);
currentElm.style.display = "block";
}
//相同功能,只是增加程式的描述性
var getNewAd = getAd;
function hideAd() {
currentElm.style.display = "none";
...