了解 JavaScript (6)– 广告条(Banner)

在 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

时间: 2024-10-12 07:48:23

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

Android Banner 广告条

package com.example.ex_templete; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint.Style; import android.util.AttributeSet; import android.util.

Android自定义控件——仿淘宝、网易、彩票等广告条、Banner的制作

尊重作者劳动成果,转载时请标明该文章出自 http://blog.csdn.net/allen315410/article/details/39294343 最近翻看以前的某项目时,发现了一个极其常用的效果--广告条,或者也称不上自定义组件,但是使用频率还是相当普遍的. 打开市面上各大App主界面,或多或少会出现这样的东西,甚至一个应用中出现N多个,这种展示广告的效果,不仅动态效果好,而且众所周知的"不占屏",想想在手机设备这么小的屏幕尺寸下,能放下几页甚至十几页的广告循环播放,就知道

广告条滑入滑出源代码实现

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>广告条滚动</title> <style type="text/css"> *{ padding: 0px; margin: 0 auto; } #ad{ width:1000px; height:300px; font-si

广告条滑入滑出

在html正文上面有一个广告,让整个文本向下滑动,让广告显示,然后再让广告滑到上面 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>广告条滚动</title> <style type="text/css"> *{ padding: 0px; margin: 0 auto;

Unity3d Android程序嵌入Admob广告条

原地址:http://dong2008hong.blog.163.com/blog/static/4696882720140441353482/ Seems like using a simple Android JAR files inside a Unity Android project is not such a simple thing to do. I finally managed to get AdMob working in an existing Unity Android

为ios app添加广告条

1.广告简介 2.实现步骤: 1>.添加 iAd.framework 框架 2,使用storyboard 运行结果: 2>添加 ADBannerView 视图,并设置代理方法 3>思想:一开始红色view的底部约束广告条的最底部,遮住广告条. 让广告条加载完成之前隐藏. 加载完成之后,修改红色view的地步约束 4>导入头文件,遵守协议,代码如下

JavaScript 图片广告自动与手动的切换

?1.代码 <html> <head>   <script type="text/javascript" src="jquery-1.8.js"></script>   <script type="text/javascript" src="pictrue-con.js"></script>   <style>            #pic1

ViewPaper实现轮播广告条

使用V4包中的viewPaper组件自定义轮播广告条效果. 实现viewpaper的滑动切换和定时自动切换效果. 上效果图 布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent&quo

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

基于JavaScript代码实现随机漂浮图片广告,javascript图片广告 在网上有很多这样的代码,不过未必符合W3C标准,因为在头部加上<!DOCTYPE html>类似标签之后,漂浮效果就会失效,下面分享一个符合标准的漂浮代码,使需要的朋友免去大量改造代码的繁琐. 代码一: 代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name