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.pswp.cn/diannao/39026.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/39026.shtml
英文地址,請注明出處:http://en.pswp.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 常用指令