在 Web 上冲浪时,常常会见到定期在图像之间切换的广告条。我们可以用 JavaScript 来实现,重复循环显示它们。

创建循环的广告条

RotatingBanner.html 页面中在循环的广告条中加载第一个图像,其他工作交由 JavaScript 来处理。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Rotating Banner</title>
<script src="RotatingBanner.js"></script>
<link rel="stylesheet" href="banner.css">
</head> <body>
<div class="centered">
<img src="images/reading1.gif" id="adBanner" alt="Ad Banner">
</div>
</body>
</html>

RotatingBanner.js 脚本循环显示图像。

window.onload = rotate;

//初始值为 0,该变量值能取值0,1,2,和 adImages 数组元素对应
var thisAd = 0; function rotate(){
var adImages = new Array("images/reading1.gif", "images/reading2.gif", "images/reading3.gif");
thisAd++;
if(thisAd == adImages.length){
thisAd = 0;
}
document.getElementById("adBanner").src = adImages[thisAd]; setTimeout(rotate, 2000);
//指定一个操作多长时间执行一次,这里设置的是2秒 }

效果如下:


在循环广告条中添加链接

广告条常常用来做广告,而且常常希望在广告条中建立链接,让访问者可以通过单击链接进入与广告相关的站点。

RotatingBannerWithLinks.html 页面在 <img> 标签外增加了一个链接标签 <a>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Rotating Banner with Links</title>
<script src="RotatingBannerWithLinks.js"></script>
<link rel="stylesheet" href="banner.css">
</head> <body>
<div class="centered">
<a href="linkPage.html"><img src="images/banner1.gif" id="adBanner" alt="ad banner"></a>
</div>
</body>
</html>

RotatingBannerWithLinks.js 脚本增加了一个数组,这个数组中包含链接的地址。

window.onload = initBannerLink;

var thisAd = 0;

function initBannerLink(){
//检查 adBanner 是否是包含在 <a> 中
if(document.getElementById("adBanner").parentNode.tagName == "A"){
//设置 <a> 的 onclick 事件调用 newLocaton 函数
document.getElementById("adBanner").parentNode.onclick = newLocation;
}
rotate();
} function newLocation(){
var adURL = new Array("negrino.com", "sun.com", "microsoft.com");
document.location.href = "http://www." + adURL[thisAd];
return false; //不用在加载 href 了,JavaScript 已经处理好了
} function rotate(){
var adImages = new Array("images/banner1.gif", "images/banner2.gif", "images/banner3.gif");
thisAd++;
if(thisAd == adImages.length){
thisAd = 0;
}
document.getElementById("adBanner").src = adImages[thisAd]; setTimeout(rotate, 2000);
}

效果如下:

www.negrino.com 访问有些慢。。。


建立循环式幻灯片

Web 站点上的幻灯片每次向用户显示一个图像,并且让用户能够控制显示图像的进度(可向前也可向后)。

ImageSlideshow.html 将创建这个幻灯片页面。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Image Slideshow</title>
<script src="ImageSlideshow.js"></script>
<link rel="stylesheet" href="banner.css">
</head> <body>
<div class="centered">
<h1>Welcome, Robot Overlords!</h1>
<img src="images/robot1.jpg" id="myPicture" width="200" height="400" alt="Slideshow">
<h2>
<a href="previous.html" id="prevLink">&lt;&lt; Previous </a>&nbsp;&nbsp;
<a href="next.html" id="nextLink">Next &gt;&gt;</a>
</h2>
</div>
</body>
</html>

ImageSlideshow.js 脚本实现单击链接控制图像的前后切换。

window.onload = initLinks;

var myPix = new Array("images/robot1.jpg", "images/robot2.jpg", "images/robot3.jpg");
var thisPic = 0; function initLinks(){
document.getElementById("prevLink").onclick = processPrevious;
document.getElementById("nextLink").onclick = processNext;
} function processPrevious(){
//先判断,再 -1
if(thisPic == 0){
thisPic = myPix.length;
}
thisPic--;
document.getElementById("myPicture").src = myPix[thisPic];
return false;
} function processNext(){
//首先 +1
thisPic++;
if(thisPic == myPix.length){
thisPic = 0;
}
document.getElementById("myPicture").src = myPix[thisPic];
return false;
}

效果如下:


显示随机图像

如果你的站点包含大量图形,那么可能希望用户在进入站点的时候从图像中随机选择要显示的。

RandomImage.html 创建要显示随机图像的页面。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Random Image</title>
<script src="RandomImage.js"></script>
<link rel="stylesheet" href="banner.css">
</head> <body>
<img src="images/spacer.gif" width="305" height="312" id="myPicture" alt="some image">
</body>
</html>

RandomImage.js 脚本随机从三种毛绒玩具中显示,主要使用 Math.random 方法生成随机数。

window.onload = choosePic;

function choosePic(){
//建立一个包含3个图像路径的数组 myPix
var myPix = new Array("images/lion.jpg", "images/tiger.jpg", "images/bear.jpg");
//Math.floor 将结果向下取整数, Math.random * myPix.length 将产生 0~3 之间的数,最终也就是 0,1,2
var randomNum = Math.floor((Math.random() * myPix.length));
document.getElementById("myPicture").src = myPix[randomNum];
}

效果如下:


随机开始循环显示图像

如果有许多图像要显示,并且不希望每次加载页面都从同样的图像开始,下面的示例结合了循环广告条和随机图像的代码。

RotatingRandomBanner.html 中有一个 spacer.gif 图像,用于占位。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Rotating Random Banner</title>
<script src="RotatingRandomBanner.js"></script>
<link rel="stylesheet" href="banner.css">
</head> <body>
<div class="centered">
<img src="images/spacer.gif" id="adBanner" alt="Ad Banner">
</div>
</body>
</html>

RotatingRandomBanner.js 脚本从一个随机图像开始循环显示。

window.onload = choosePic;

var adImages = new Array("images/reading1.gif", "images/reading2.gif", "images/reading3.gif");
var thisAd = 0; function choosePic(){
thisAd = Math.floor((Math.random() * adImages.length));
document.getElementById("adBanner").src = adImages[thisAd]; rotate();
} function rotate(){
thisAd++;
if(thisAd == adImages.length){
thisAd = 0;
}
document.getElementById("adBanner").src = adImages[thisAd]; setTimeout(rotate, 2000); }

效果如下:


示例代码下载

banner.rar

了解 JavaScript (6)– 广告条(Banner)的更多相关文章

  1. Unity3d Android程序嵌入Admob广告条

    原地址:http://dong2008hong.blog.163.com/blog/static/4696882720140441353482/ Seems like using a simple A ...

  2. 利用RecyclerView实现无限轮播广告条

    代码地址如下:http://www.demodashi.com/demo/14771.html 前言: 公司产品需要新增悬浮广告条的功能,要求是可以循环滚动,并且点击相应的浮条会跳转到相应的界面,在实 ...

  3. 【转】Android循环滚动广告条的完美实现,封装方便,平滑过渡,从网络加载图片,点击广告进入对应网址

    Android循环滚动广告条的完美实现,封装方便,平滑过渡,从网络加载图片,点击广告进入对应网址 关注finddreams,一起分享,一起进步: http://blog.csdn.net/finddr ...

  4. JavaScript浮动广告代码,容纯DIV/CSS对联漂浮广告代码,兼容性非常好的js右下角与漂浮广告代码

    基于JavaScript代码实现随机漂浮图片广告,javascript图片广告 在网上有很多这样的代码,不过未必符合W3C标准,因为在头部加上<!DOCTYPE html>类似标签之后,漂 ...

  5. Android中使用ViewPager实现广告条

    我们在使用电商或视频的手机客户端时,通常会看到广告条的效果.在网上搜索时才知道使用的是ViewPager,于是自己也做了一个Demo. 以下是效果图: 图中包括背景图片.文字描述以及白点. 其中Vie ...

  6. android自定义控件之滚动广告条

    在一些电子商务网站上经常能够看到一些滚动的广告条,许多软件在首次使用时也有类似的广告条,如图: 其实在github上有实现这种效果的控件,不过这东西做起来也是很简单,我们今天就来看看该怎么做. 先来看 ...

  7. 自定义控件(视图)2期笔记03:自定义控件之使用系统控件(优酷案例之广告条Viewpager)

    1.首先我们看看运行效果,如下: 2. 下面就是详细实现这个效果的过程: (1)新建一个Android工程,命名为"广告条的效果",如下: (2)这里用到一个控件ViewPager ...

  8. ViewPaper实现轮播广告条

    使用V4包中的viewPaper组件自己定义轮播广告条效果. 实现viewpaper的滑动切换和定时自己主动切换效果. 上效果图 布局文件 <RelativeLayout xmlns:andro ...

  9. Android仿淘宝头条滚动广告条

    之前我使用TextView+Handler+动画,实现了一个简单的仿淘宝广告条的滚动,https://download.csdn.net/download/qq_35605213/9660825: 无 ...

随机推荐

  1. var关键字详解

    1,var只能定义局部变量,而不能定义成员变量 2,定义的时候必须同时完成初始化,而不能使用var定义变量为null 3,var本身不是一个新类型,只是用来修饰一个可以推断出具体类型的局部变量 var ...

  2. mysql远程连接:ERROR 1130 (HY000): Host '*.*.*.*' is not allowed to connect to this MySQL server解决办法

    安装完MySQL后,远程连接数据库的时候,出现 ERROR 1130 (HY000): Host '192.168.0.1' is not allowed to connect to this MyS ...

  3. Linux -- Centos 下配置LNAMP 服务器环境

    1.Mysql centos 7 下mysql被替换掉,如有需要请看另一篇: centos 6.5下: yum install mysql mysql-server mysql-devel 启动mys ...

  4. ActiveMQ学习笔记之异常

    1.PUT was not successful: 404 Not Found 结果:jetty.xml中开启BlobMessage相关配置 2.Consumer消费时:FileNotFoundExc ...

  5. iOS开发零基础--Swift基础篇--常量&变量的定义

    什么是常量和变量 在Swift中规定:在定义一个标识符时必须明确说明该标识符是一个常量还是变量 使用let来定义常量,定义之后不可以修改 使用var来定义变量,定义之后可以修改 常量和变量的使用注意: ...

  6. Windows Phone的简单学习

    这次我主要学习了Windows Phone的开发,以及一些简单代码及用处.我了解到了windowsphone的一些功能,下面是我了解到的一些信息. Image 设置好图片的长和宽.结合了Border效 ...

  7. 15 个很棒的 Bootstrap UI 界面编辑器

    Bootstrap Magic BootSwatchr Bootstrap Live Editor Fancy Boot Style Bootstrap Lavish Bootstrap ThemeR ...

  8. Asp.NET MVC 拍卖网站,拆解【2】 Asp.NET MVC章回,第(1)节

    时间和篇幅所限,MVC不会介绍基本的建站过程,请参照博客园技术专题文章传送门  英语足够好的请直接去微asp.net 官网 传送门(强烈推荐,尤其是想使用最新技术的时候更应该直接去官网),本文主要介绍 ...

  9. Android资源命名规范

    Android资源命名规范 命名模板为:缩写_主界面_功能部分(一) 缩写:ic ----------------------iconbg---------------------background ...

  10. Server Develop (九) Simple Web Server

    Simple Web Server web服务器hello world!-----简单的socket通信实现. HTTP HTTP是Web浏览器与Web服务器之间通信的标准协议,HTTP指明了客户端如 ...