JavaScript 动态网页实例 —— 广告效果

        广告是现代网页设计中不可或缺的内容。广告可以有很多种形式,但最终目的都是要吸引观众的注意力。尽管广告少不了画面、音效和广告语等效果,但其实现主要还是应用JavaScript 代码,只要很好掌握了JavaScript程序设计,剩下的就是创意和美工了。本章介绍几种广告效果,包括对联广告、飘动广告、滚动广告和特殊视觉效果的广告,相信读者会从中受到启发。

位置固定的对联广告

本节给出一个位置固定的对联广告,广告图片总是停留在页面的固定位置,不随页面的滚动而改变。

要点

本节代码主要使用了Style对象的visibility 属性和网页元素坐标位置及尺寸等应用,主要功能和用法如下。

  • 在网页样式表(CSS)中,除了可以通过 z-index 控制重叠元素对象之间的显示与隐藏关系外,还可以通过 display 属性和 visibility 属性控制元素对象内容的显示与隐藏。
  • display 属性和 visibility 属性的用法和效果比较相似:如果设置元素的 display 属性值为block,或设置 visibility 属性值为 visible,都可以显示元素对象内容;反之,设置元素的display 属性值为 none,或者设置 visibility 属性值为 hidden,都将隐藏元素对象内容。
  • 当使用 display 属性隐藏元素对象时,被隐藏的元素对象将不占位置,其他元素紧接着顺序显示。
  • 而使用 visibility 属性隐藏元素对象时,只是隐藏了当前元素对象的内容,但仍在原位置保留其所占区域。
  • 网页中元素对象的坐标位置和尺寸,可以通过网页样式表的方法或者 DOM方法得到在网页样式表中,定位网页元素对象使用left、top、right、bottom 属性,设置宽度和高度使用 width 和 height属性,这些网页样式属性在 JavaScript 中使用“网页元素对象,style.网页样式属性名”格式进行引用。通过这种方法可方便设置网页元素对象的位置及尺寸,但是只有在网页样式表中定义了上述属性时,JavaScript 才可对其进行引用。
  • DOM 提供了各种类型的元素对象定位及尺寸属性,这些属性基本上只用于读取,而不可进行设置,使用时的语法规则是“网页元素对象.DOM 属性名”。其中,属性名中包含“client”的宽度和高度表示真正能够显示网页内容的区域:属性名中包含“ofset”的宽度和高度表示包括了元素对象边线在内的所有区域;属性名中包含“scroll”的宽度和高度表示包含所有全部网页内容的区域。
<script language="JavaScript">
function initEcAd() 
{
document.all.AdLayer1.style.posTop = -200;
document.all.AdLayer1.style.visibility = 'visible'
document.all.AdLayer2.style.posTop = -200;
document.all.AdLayer2.style.visibility = 'visible'
MoveLeftLayer('AdLayer1');
MoveRightLayer('AdLayer2');
}
function MoveLeftLayer(layerName)
{
var x = 5;
var y = 100;// 左侧广告距离页首高度
var diff = (document.body.scrollTop + y - document.all.AdLayer1.style.posTop)*.40;
var y = document.body.scrollTop + y - diff;
eval("document.all." + layerName + ".style.posTop = parseInt(y)");
eval("document.all." + layerName + ".style.posLeft = x");
setTimeout("MoveLeftLayer('AdLayer1');", 20);
}
function MoveRightLayer(layerName)
{
var x = 5;
var y = 100;// 右侧广告距离页首高度
var diff = (document.body.scrollTop + y - document.all.AdLayer2.style.posTop)*.40;
var y = document.body.scrollTop + y - diff;
eval("document.all." + layerName + ".style.posTop = y");
eval("document.all." + layerName + ".style.posRight = x");
setTimeout("MoveRightLayer('AdLayer2');", 20);
}
document.write("<div id=AdLayer1 style='position: absolute;visibility:hidden;z-index:1'><a href='http://localhost' target='_blank'><img src=ad-01.gif border='0'></a></div>"
+"<div id=AdLayer2 style='position: absolute;visibility:hidden;z-index:1'><a href='http://localhost' target='_blank'><img src=ad-01.gif border='0'></a></div>");
initEcAd()
// JavaScript Document
</script>

分析

  • (1)程序使用一系列的 document.write()语句,分别输出左侧广告内容、右侧广告内容并将二者分别装入两个名为AdLayer1和AdLayer2 的<div>中。
  • (2)随后,使用一个for 循环语句,在页面中添加了15个2行的表格。这些表格不是必须的,其目的是比较拖动图像时的显示效果。
  • (3)函数 initEcAd()的功能是设置两个<div>的位置及其可见度。通过设置 AdLayerl 和AdLayer2 的style.posTop 和 style.visibility 实现。
  • (4)函数 MoveLefLayer(layerName)和 MoveRightLayer(layerName)的功能是设置左侧广告和右侧广告的属性。主要通过重新设置两个<div>的style.posTop和posLeft(或 posRight)实现。

随页面滚动的对联广告

本节给出一段随页面滚动的对联广告示例代码,运行该程序后,页面两侧各出现一幅带链接的图片,拉动滚动条时,图片会随页面一起滚动。

要点

本节代码主要使用了 document.getElementById(id)方法、Math.ceil( )方法、Math.abs( )方法和网页元素坐标位置及尺寸等应用,主要功能和用法如下。

  • 在DOM中,可以对页面元素进行访问,甚至对其进行操作。对于文档中的特定区域,如果已对其进行了惟一标识,则可以对该区域进行检索。
  • document.getElementById(元素标识)方法,返回 id 值为“元素标识”的对象的一个索引。
  • document.getElementsByName(元素名称)方法,返回name 值为“元素名称”的所有XHTML 元素对象的列表。
  • document.getElementsByTagName(标签名称)方法,返回别名为“标签名称”的所有XHTML 元素的列表。
  • Math 对象用于进行属性运算。其属性是数学中一些常见的常数值。在 Math 对象的方法中,除了 randomO之外的所有方法都需要一个或几个参数。典型的是三角函数在作为一个参数的值上进行操作,其他参数决定传递的参数中哪一个是最大值或最小值。
  • Math.cei(n)方法用于求大于或等于n的整数,参数n指定要进行运算的数值。与其对应的方法是 Math.floor(n)。
  • Math.abs(n)方法用于求一个数值的绝对值,参数n指定要进行运算的数值。
<script language="JavaScript">
<!--
var delta=0.8;
var collection;
var closeB=false;
function floaters()
{
this.items= [];
this.addItem= function(id,x,y,content)
{    //向页面写入一个<div>
document.write('<DIV id='+id);
document.write(' style="Z-INDEX: 10; POSITION: absolute;width:80px; height:60px;');
document.write('left:'+(typeof(x)=='string'?eval(x):x));
document.write(';top:'+(typeof(y)=='string'?eval(y):y)+'">');
document.write(content+'</DIV>');var newItem= {};
//获取元素属性
newItem.object= document.getElementById(id);
newIt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/39026.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT 官方发布桌面端,向所有用户免费开放

Open AI 官方已经发布了适用于 macOS 的 ChatGPT 桌面端应用。 此前&#xff0c;该应用一直处于测试阶段&#xff0c;仅 Plus 付费订阅用户可以使用。 目前已面向所有用户开放&#xff0c;所有 Mac 用户均可免费下载使用。 我们可以访问官网下载安装包&#xff1a;https://op…

Java利用poi实现word,excel,ppt,pdf等各类型文档密码检测

介绍 最近工作上需要对word,excel,ppt,pdf等各类型文档密码检测&#xff0c;对文件进行分类&#xff0c;有密码的和没密码的做区分。查了一堆资料和GPT都不是很满意&#xff0c;最后东拼西凑搞了个相对全面的检测工具代码类&#xff0c;希望能给需要的人带来帮助。 说明 这段…

PHP 爬虫之使用 Curl库抓取淘宝商品列表数据网页的方法

使用 PHP 的 cURL 库来抓取淘宝商品列表数据网页需要谨慎&#xff0c;因为淘宝等电商平台通常会有反爬虫机制&#xff0c;以防止数据被滥用。然而&#xff0c;如果你只是出于学习目的&#xff0c;并且了解并遵守了淘宝的robots.txt文件和相关的使用条款&#xff0c;你可以尝试使…

2024 年江西省研究生数学建模竞赛题目 B题投标中的竞争策略问题--完整思路、代码结果分享(仅供学习)

招投标问题是企业运营过程中必须面对的基本问题之一。现有的招投标平台有国家级的&#xff0c;也有地方性的。在招投标过程中&#xff0c;企业需要全面了解招标公告中的相关信息&#xff0c;在遵守招投标各种规范和制度的基础上&#xff0c;选择有效的竞争策略和技巧&#xff0…

基于JSP技术的校园餐厅管理系统

开头语&#xff1a; 你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果您对校园餐厅管理系统感兴趣或有相关需求&#xff0c;欢迎随时联系我。我的联系方式在文末&#xff0c;期待与您交流&#xff01; 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#x…

QT的编译过程

qmake -project 用于从源代码生成项目文件&#xff0c;qmake 用于从项目文件生成 Makefile&#xff0c;而 make 用于根据 Makefile 构建项目。 详细解释&#xff1a; qmake -project 这个命令用于从源代码目录生成一个初始的 Qt 项目文件&#xff08;.pro 文件&#xff09;。它…

Keil5中:出现:failed to execute ‘...\ARMCC\bin\ArmCC‘

点三个点&#xff0c;去自己的磁盘找自己的ARM\ARMCC\bin

深入解析:计算机系统总线全方位解读

在计算机组成原理中&#xff0c;总线系统是连接计算机各个部件的重要通道。本文将详细介绍系统总线的基本概念、分类、特性及性能指标、结构和控制方式。希望通过本文的讲解&#xff0c;能够帮助基础小白更好地理解计算机系统总线的工作原理。 系统总线 (System Bus) 系统总线…

查看视频时间基 time_base

时间基、codec, 分辨率&#xff0c;音频和视频的都一样&#xff0c;才可以直接使用ffmpeg -f concat -i file.txt 方式合并。 On Thu, Dec 03, 2015 at 21:54:53 0200, redneb8888 wrote: I am looking for a way to find the time base of a stream (video or audio), $ ffpr…

selenium 简介以及 selenium 环境配置

文章目录 一、初识 selenium1.selenium 简介2.selenium 三大组件3.selenium工作过程和原理4.selenium自动化测试流程5.selenium优点 二、自动化测试1.UI自动化本质2.UI自动化的前提3.适用场景4.UI自动化的原则5.UI自动化的覆盖率 三、selenium 环境配置 一、初识 selenium 1.s…

单点登录demo

gitee.com 搜索xxl(许雪里) 的sso 操作demo 完整流程图

网络安全控制相关技术

1.恶意代码&#xff08;Malware&#xff09; 网络从出现、发展演进都始终伴随着安全方面的问题&#xff0c;只是每个阶段表现的形式不同而已。在网络安全方面&#xff0c;不能不提进行网络攻击的网络病毒&#xff0c;或者说恶意代码&#xff08;Malware&#xff09;。所有恶意…

MySQL中的网络命名空间支持

Network Namespace Support&#xff08;网络命名空间支持&#xff09; 提供了在Linux系统中创建和管理多个隔离网络空间的能力。网络命名空间是来自主机系统的网络堆栈的逻辑副本。网络命名空间对于设置容器或虚拟环境非常有用。每个名称空间都有自己的IP地址、网络接口、路由表…

什么是应用安全态势管理 (ASPM):综合指南

软件开发在不断发展&#xff0c;应用程序安全也必须随之发展。 传统的应用程序安全解决方案无法跟上当今开发人员的工作方式或攻击者的工作方式。 我们需要一种新的应用程序安全方法&#xff0c;而ASPM在该方法中发挥着关键作用。 什么是 ASPM&#xff1f; 应用程序安全…

配电智能网关赋能电力系统智能化运行维护

随着智能电网和物联网技术的不断发展&#xff0c;两者之间的融合应用成为电力行业的重要趋势。配电智能网关作为连接两者的关键设备&#xff0c;在智能电网的物联网应用中发挥着重要作用。 配电智能网关能够实现对电力系统的实时监控、数据采集、远程控制等功能&#xff0c;为…

已解决org.omg.CORBA.portable.RemarshalException:在CORBA中需要重新编组的正确解决方法,亲测有效!!!

已解决org.omg.CORBA.portable.RemarshalException&#xff1a;在CORBA中需要重新编组的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 出现问题的场景 服务器端代码 客户端代码 报错原因 解决思路 解决方法 1. 检查网络连接 …

力扣:LCR 024. 反转链表(Java)

目录 题目描述&#xff1a;示例 1&#xff1a;示例 2&#xff1a;代码实现&#xff1a; 题目描述&#xff1a; 给定单链表的头节点 head &#xff0c;请反转链表&#xff0c;并返回反转后的链表的头节点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#x…

Xinstall智能安装页面:一键唤起App,提升用户体验

在移动互联网时代&#xff0c;App已经成为我们日常生活中不可或缺的一部分。然而&#xff0c;随着App数量的不断增加&#xff0c;用户面临着越来越多的选择&#xff0c;如何快速、便捷地安装并打开App成为了用户的一大痛点。针对这一问题&#xff0c;Xinstall凭借其强大的技术实…

数据结构——Hash Map

1. Hash Map简介 Hash Map是一种基于键值对的数据结构&#xff0c;通过散列函数将键映射到存储位置&#xff0c;实现快速的数据查找和存储。它可以在常数时间内完成查找、插入和删除操作&#xff0c;因此在需要频繁进行这些操作时非常高效。 2. Hash Map的定义 散列表&#xff…

计组_程序的机器级代码表示

2024.06.13&#xff1a;计算机组成原理程序的机器级代码表示 第15节 程序的机器级代码表示 5.1 x86的汇编指令格式5.2 常用指令 眼熟最基础的汇编语法和助记符即可 5.1 x86的汇编指令格式 5.2 常用指令