我正在为一个慈善机构建立一个非常简单的移动网站,他们希望在底部显示他们自己的广告横幅,供当地的支持企业使用。我有一个简单的 Javascript,它每 10 秒将图像横幅交换为序列中的下一个:
window.onload = function ()
{
var rotator = document.getElementById("adBox");
var images = rotator.getElementsByTagName("img");
for (var i = 1; i < images.length; i++)
{
images[i].style.display = "none";
}
var counter = 1;
setInterval(function ()
{
for (var i = 0; i < images.length; i++)
{
images[i].style.display = "none";
}
images[counter].style.display = "block";
counter++;
if (counter == images.length)
{
counter = 0;
}
}, 7000); //1000 = 1 second
};
<body ontouchstart="">
<div id="adBox">
<img src="_/ads/1.jpg" alt="One" width="320" height="70">
<img src="_/ads/2.jpg" alt="Two" width="320" height="70">
<img src="_/ads/3.jpg" alt="Three" width="320" height="70">
<div>
</body>
但是,当您加载不同的页面时,这会重置并返回到序列的开头。我想要做的是在一个固定的服务器时间(比如午夜)开始序列,然后循环,这样当你加载一个新页面时,你不会回到横幅的开头,而是去'广告对于那个服务器时间'。
我认为这是最简单、最公平的广告方式。我确实考虑过使用 iFrame,但这意味着主站点必须放在一个位置,而且我认为 iFrame 在触摸设备上的支持不是很好(这将是一个主要问题)。