分享
 
 
 

(原创)飘浮广告显示脚本类(VBS,JS双版)

王朝vb·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在写一个项目时要用到广告模块,为了不想用ASP生成脚本代码时较麻烦,于是产生了写脚本类的念头,即是用一个类模块的脚本代码去控制所有在同一页面显示的漂浮广告。但在写的过程中发现JS脚本竟然在setTimeout里不能使用类的方法。奇怪,是不是我弄错了还是JS脚本就不能这样??但VBS脚本就可以!我晕……

不说了,贴代码:

[VBS脚本代码]

'/****************漂浮广告显示类****************************************************

'/* 作者:死在水中的鱼

'/* 脚本语言:VBS

'/* 用法:

'/* Set Adver1=New AdverClass

'/* Adver1.ObjName="Adver1" '设置当前的对象名 [本身对象变量名]

'/* Adver1.ImgType=1 '图片的类型 0=普通图片 1=Flash动画

'/* Adver1.ImageWidth=299 '图片的宽度

'/* Adver1.ImageHeight=87 '图片的高度

'/* ####以下方法显示广告图片(Flash) 对象.PrintHtml "图片地址","链接地址","提示信息"

'/* Adver1.PrintHtml "http://edu.qq.com/flash/moto-button.swf","http://www.chinese.bj.cn/","这是什么"

'/***********************************************************************************

Class AdverClass

Public DivID

Public ObjName

Private ObjDiv

Public Delay '改变数

Public ImgType

Private iStep

Private iTop,iLeft,Width,Height

Private TopFlag,LeftFlag

'广告图片的大小

Public ImageWidth,ImageHeight

Private Sub Class_Initialize

Randomize

DivID=Int(Rnd(Time)*9999+1)

Delay=80

Height=document.body.clientHeight

Width=document.body.clientWidth

iTop=0

iLeft=0

TopFlag=False:LeftFlag=False

iStep=3

ImgType=0 '0 是图片 1 是FLASH文件

ImageWidth=0

ImageHeight=0

End Sub

Private Sub Class_Terminate

End Sub

Public Sub ScrollImg()

Dim offHeight,offWidth,iRnd

offWidth=ObjDiv.offsetWidth

offHeight=ObjDiv.offsetHeight

ObjDiv.style.left = iLeft + document.body.scrollLeft

ObjDiv.style.top = iTop + document.body.scrollTop

iRnd=Int(Rnd(Time)*99+1)

If iRnd>97 Then TopFlag=Not TopFlag

iRnd=Int(Rnd(Time)*9+1)

If iRnd>98 Then LeftFlag=Not LeftFlag

If TopFlag Then

iTop=iTop+iStep*Rnd(Time)

Else

iTop=iTop-iStep*Rnd(Time)

End If

If LeftFlag Then

iLeft=iLeft+iStep*Rnd(Time)

Else

iLeft=iLeft-iStep*Rnd(Time)

End If

If iTop<0 Then

iTop=0

TopFlag=True

ElseIf iTop>Height-offHeight Then

iTop=Height-offHeight

TopFlag=False

End If

If iLeft<0 Then

iLeft=0

LeftFlag=True

ElseIf iLeft>Width-offWidth Then

iLeft=Width-offWidth

LeftFlag=False

End If

End Sub

Private Sub Start()

setInterval ObjName&".ScrollImg()", Delay

End Sub

Public Sub PrintHtml(ByVal ImgSrc,ByVal adHref,ByVal adTitle)

If ImgType=0 Then

Call PrintImageHtml(ImgSrc,adHref,adTitle)

Else

Call PrintFlashHtml(ImgSrc,adHref,adTitle)

End If

Execute "Set ObjDiv=document.all.img"&DivID

iLeft=Int(Rnd(Time)*(Width-100)+1)

iTop=Int(Rnd(Time)*(Height-100)+1)

ObjDiv.style.top=iTop

ObjDiv.style.left=iLeft

Call Start()

End Sub

Private Sub PrintImageHtml(ByVal ImgSrc,ByVal adHref,ByVal adTitle)

If ImageWidth=0 Or Not IsNumeric(ImageWidth) Then

ImageWidth=""

Else

ImageWidth=" width='"&ImageWidth&"'"

End If

If ImageHeight=0 Or Not IsNumeric(ImageHeight) Then

ImageHeight=""

Else

ImageHeight=" height='"&ImageHeight&"'"

End If

document.write "<div id=""img"&DivID&""" style=""position:absolute;"">"

document.write "<a href="""&adHref&""" target=""_blank"" title='"&adTitle&"'>"

document.write "<img src="""&ImgSrc&""" alt="""&adTitle&""" border=""0"""&ImageWidth&ImageHeight&"></a></div>"

End Sub

Private Sub PrintFlashHtml(ByVal ImgSrc,ByVal adHref,ByVal adTitle)

If ImageWidth=0 Or Not IsNumeric(ImageWidth) Then

ImageWidth=80

End If

ImageWidth=" width='"&ImageWidth&"'"

If ImageHeight=0 Or Not IsNumeric(ImageHeight) Then

ImageHeight=80

End If

ImageHeight=" height='"&ImageHeight&"'"

document.write "<div id=""img"&DivID&""" style=""position:absolute;"">"

document.write "<a href="""&adHref&""" target=""_blank"" title='"&adTitle&"'>"

document.write "<object codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0'"&ImageWidth&ImageHeight&" align='middle'>"

document.write "<param name='movie' value='"&ImgSrc&"'>"

document.write "<param name='quality' value='high'>"

document.write "<embed src='"&ImgSrc&"'"&ImageWidth&ImageHeight&" quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash'></embed></object>"

document.write "</a></div>"

End Sub

End Class

[JS脚本]

//*****************漂浮广告显示类****************************************************

//* 作者:死在水中的鱼

//* 脚本语言:JavaScript

//* 用法:

//* var adver=new adverClass

//* adver.setObjName("adver"); //这句不能setTime所以没有用

//* adver.setDivID(1); //这句可以不用

//* adver.setImageType(1); //设为0时或不写这句时则是普通图片,1则为Flash动画文件

//* adver.setImagePX(299,87); //设置图片的宽度与高度

//* adver.showAdver("http://edu.qq.com/flash/moto-button.swf","http://www.chinese.bj.cn/","这是什么");

//* var adver1=new adverClass();

//* adver1.showAdver("img.gif","http://www.chinese.bj.cn/","这是什么");

//* setTimer();

//* //因为类里不能写setTime所以只好拿出来写-_-##(VBS脚本竟然可以。我倒)

//* function setTimer(){

//* adver.floatScroll();

//* adver1.floatScroll();

//* setTimeout("setTimer()",80);

//* }

//***********************************************************************************

function adverClass(){

var objName="";

var imageType=0;

var imageWidth=imageHeight=0;

var iTop=iLeft=0;

var topFlag=leftFlag=false;

var divID=0,objDiv=null;

var offWidth=offHeight=0;

var width=document.body.clientWidth;

var height=document.body.clientHeight;

var delay=30; //时间的延迟值

var topStep=2,leftStep=3; //一步跨多少

var inter;

//此处是当外部不设置divID的值能够确保层的ID是唯一

divID=Math.round(Math.random()*100000)

//广告的类型 0=普通图片 1=Flash广告图片

this.setImageType=function(sType){

if(sType!=1&&sType!=0){sType=0;}

imageType=sType;

}

//外部调用的变量名

this.setObjName=function(sName){objName=sName;}

//广告图片的高度与宽度

this.setImagePX=function(iWidth,iHeight){

if(!isNaN(iWidth)){

imageWidth=iWidth;

}else{

imageWidth=0;

}

if(!isNaN(iHeight)){

imageHeight=iHeight;

}else{

imageHeight=0;

}

}

//设置广告所在层的ID值

this.setDivID=function(iDiv){divID=iDiv;}

//主函数,显示广告代码

this.showAdver=function(adImgSrc,adHref,adTitle){

if(imageType==0){

showImageHtml(adImgSrc,adHref,adTitle);

}else{

showFlashHtml(adImgSrc,adHref,adTitle);

}

eval("objDiv=document.all.img"+divID+";");

//取得图片的宽度

offWidth=objDiv.offsetWidth;

offHeight=objDiv.offsetHeight;

//随机显示广告的开始位置

iLeft=Math.round(Math.random()*(width-offWidth));

iTop=Math.round(Math.random()*(height-offHeight));

objDiv.style.pixelLeft=iLeft;

objDiv.style.pixelTop=iTop;

//定时开始

//startTimer();

}

//主函数,漂浮游动显示广告

this.floatScroll=function(){

var iRnd;

iRnd=Math.round(Math.random()*100); //此值是为了能使多图显示时产生不同的轨迹

if(objDiv==null)return;

objDiv.style.pixelLeft = iLeft + document.body.scrollLeft;

objDiv.style.pixelTop = iTop + document.body.scrollTop;

if(iRnd>98){leftFlag=!leftFlag;}

iRnd=Math.round(Math.random()*100);

if(iRnd>99){topFlag=!topFlag;}

if(leftFlag){

iLeft=iLeft+leftStep*Math.random();

}else{

iLeft=iLeft-leftStep*Math.random();

}

if(topFlag){

iTop=iTop+topStep*Math.random();

}else{

iTop=iTop-topStep*Math.random();

}

if(iLeft<0){

iLeft=0;

leftFlag=true;

}

else if(iLeft>width-offWidth){

iLeft=width-offWidth;

leftFlag=false;

}

if(iTop<0){

iTop=0;

topFlag=true;

}

else if(iTop>height-offHeight){

iTop=height-offHeight;

topFlag=false;

}

}

//定时移动广告的图片

function startTimer(){

if(objName=="")return;

//alert(objName+".floatScroll();");

//inter=setInterval(objName+".floatScroll()",delay);

}

//显示图片的HTML代码

function showImageHtml(adImgSrc,adHref,adTitle){

var sWidth,sHeight;

if(imageWidth<5){

sWidth="";

}else{

sWidth=" width='"+imageWidth+"'";

}

if(imageHeight<5){

sHeight="";

}else{

sHeight=" height='"+imageHeight+"'";

}

document.write("<div id='img"+divID+"' style='position:absolute;'>");

document.write("<a href='"+adHref+"' target='_blank' title='"+adTitle+"'>");

document.write("<img src='"+adImgSrc+"' border='0'"+sWidth+sHeight+">");

document.write("</a></div>");

}

//显示Flash文件的HTML代码

function showFlashHtml(adImgSrc,adHref,adTitle){

var sWidth,sHeight;

if(imageWidth<5){

sWidth=" width='80'";

}else{

sWidth=" width='"+imageWidth+"'";

}

if(imageHeight<5){

sHeight=" height='80'";

}else{

sHeight=" height='"+imageHeight+"'";

}

document.write("<div id='img"+divID+"' style='position:absolute;'>");

document.write("<a href='"+adHref+"' target='_blank' title='"+adTitle+"'>");

document.write("<object codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0'"+sWidth+sHeight+" align='middle'>");

document.write("<param name='movie' value='"+adImgSrc+"'>");

document.write("<param name='quality' value='high'>");

document.write("<embed src='"+adImgSrc+"'"+sWidth+sHeight+" quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash'></embed></object>");

document.write("</a></div>");

}

}

示例代码(包括两种脚本的使用):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE> 漂浮广告显示脚本类演示 </TITLE>

</HEAD>

<BODY>

<!--VBS脚本版的广告显示类示例程序-->

<SCRIPT LANGUAGE="vbscript" src="Advervbs.vbs"></SCRIPT>

<SCRIPT LANGUAGE="vbscript">

Dim Adver,Adver1

Set Adver=New AdverClass

Adver.ObjName="Adver"

Adver.DivID=20

Adver.PrintHtml "img.gif","http://www.chinese.bj.cn/","这是什么"

Set Adver1=New AdverClass

Adver1.ObjName="Adver1"

Adver1.ImgType=1

Adver1.ImageWidth=299

Adver1.ImageHeight=87

Adver1.PrintHtml "http://edu.qq.com/flash/moto-button.swf","http://www.chinese.bj.cn/","这是什么"

</SCRIPT>

<!--JS脚本版的广告显示类示例程序-->

<SCRIPT LANGUAGE="JavaScript" src="AdverClass.js"></SCRIPT>

<SCRIPT LANGUAGE="JavaScript">

var adver=new adverClass();

adver.setObjName("adver");

adver.setDivID(1);

adver.setImageType(1);

adver.setImagePX(299,87);

adver.showAdver("http://edu.qq.com/flash/moto-button.swf","http://www.chinese.bj.cn/","这是什么");

var adver1=new adverClass();

adver1.showAdver("img.gif","http://www.chinese.bj.cn/","这是什么");

setTimer();

function setTimer(){

adver.floatScroll();

adver1.floatScroll();

setTimeout("setTimer()",80);

}

</SCRIPT>

</BODY>

</HTML>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有