浮动对联广告 上下及水平窗口自适应浮动广告代码 兼容if,firefox

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Content-Language" content="zh-cn">
<title>浮动对联测试页面——有DOCTYPE声明</title>
<style type="text/css">
<!--
body {
 background:url(http://voice.qq.com/love/images/page_bg.gif);
 font-family: "Verdana";
 font-size: 12px;
 margin: 0;
}
-->
</style>
</head>

<body>
<table width="750" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#00CCFF">
  <tr>
    <td height="1800" align="center" valign="top"><br><br><strong>页面内容区域</strong></td>
  </tr>
  <tr>
    <td align="center"><script language="JavaScript" src="http://sms.qq.com/js_css/copyright_js/inc_foot_black.js"></script></td>
  </tr>
</table>

<!-- QQ无线对联广告 -->
<script src="smsline_double.js"></script>
<!-- /QQ无线对联广告 -->
</body>
</html>

 

smsline_double.js文件

js文件

 

/*
sms.qq.com 上下及水平窗口自适应浮动广告代码
created by ouyang
20051222 update by jornnyliu
20051227 updated by ouyang
20060214 updated by nokersang 情人节光棍版:)

What's new (发布时请去掉部分注译)
1.兼容IE6.0&Mozilla Firefox
2.去除对DOCTYPE声明的依赖,有无或不同声明皆有相同效果
3.水平动态自适应调整,可调用时定义页面内容宽度适应性加强
4.任何情况下无拉不尽滚动出现,解决浮动通病
5.实现功能同时精简程序代码
6.修正代码中的一些Bug

注:在有DOCTYPE声明但未设定页面边界值为零之页面中浮动会有轻微错位,但对使用基本无影响(我们的网页基本都没有留边界的)!

带注译版文件大小:11,898字节
无注译版文件大小:9,829字节
*/

// common
<!--
function MM_findObj(n, d) { //v4.01
 var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
 d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
 if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
 for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
 if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
 var i,p,v,obj,args=MM_showHideLayers.arguments;
 for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
 if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
 obj.visibility=v; }
}

// 关闭广告(提供给flash使用的关闭接口)
function closead(){
 closeNum=2;//设定关闭广告的数量,1-只关闭本身;2-同时关闭全部
 if(closeNum==1){
 document.activeElement.parentNode.style.visibility= 'hidden'; //仅当广告类型为flash时在IE下有效,firefox下将不会关闭任何广告
 }
 if(closeNum==2){//可以兼容firefox
 MM_showHideLayers("leftad","","hide");
 MM_showHideLayers("rightad","","hide");
 }
}
//-->

//浏览器窗口参数定义及获取函数,兼容IE6&MF by nokersang *
var theX; //浏览器窗口宽度
if(document.documentElement.clientWidth<document.body.clientWidth&&document.documentElement.clientWidth){
 theX = 'document.documentElement.clientWidth';
}else{
 theX = 'document.body.clientWidth';
}

var theY; //浏览器窗口高度
if(document.documentElement.clientHeight<=document.body.clientHeight&&document.documentElement.clientHeight){
 theY = 'document.documentElement.clientHeight';
}else{
 theY = 'document.body.clientHeight';
}

function scrollTop() //浏览器滚动条位置
{
 var scrollTop;
 if (document.documentElement && document.documentElement.scrollTop){
  scrollTop = document.documentElement.scrollTop;
 }else if (document.body){
  scrollTop = document.body.scrollTop;
 }else if (window.pageYOffset){
  scrollTop = window.pageYOffset;
 }
 return scrollTop;
}

// 参数设置,包括广告显示数量、广告文件的规格、类型、地址和广告边距,左右可使用不同设置,如果设置了不显示某侧广告那么该广告的所有参数设置都无效
var delta=0.075;
var collection,right_ad,left_ad,LeftAd_Type,RighAd_Type;

if(contentWidth == null)//判断参数contentWidth是否存在,便于接受页面参数为不同内容宽度页面定制浮动 by nokersang
{
var contentWidth=752;//页面内容区域宽度,建议使用4的整数倍
}
var maxHeight=410;//定义可见的浮动内容最下沿距浏览器窗口内容部分顶端的高度,建议留几像素余地

var display="both"//设定广告显示数量。left:只显示左侧;right:只显示右侧;both:全部显示;none:全部关闭
  
var LeftAd_Type="swf";//设定左侧广告类型,swf:flash文件;pic:jpg或gif文件
var LeftAd_Dime="d"//设定左侧广告规格。d:对联类 100*300;f:浮标类 80*80
var LeftAd_Url="http://sms.qq.com/pub/item/party_lover_100x300_060209.swf";//设定左广告文件的地址
var LeftAd_link="";//设置左侧广告的跳转连接地址(flash无须设置)
var LeftAd_top=80;//设定左广告top边距(常规情况无需更改)
var LeftAd_left=eval(theX)<=(contentWidth+200)?0:Math.round((eval(theX)-contentWidth)*0.25-50);//设定左广告left边距,浮动在内容之外空间上自动居中 by nokersang

var RightAd_Type="swf";//设定右侧广告类型,swf:flash文件;pic:jpg或gif文件
var RightAd_Dime="d"//设定右侧广告规格。d:对联类 100*300;f:浮标类 80*80
var RightAd_Url="http://sms.qq.com/pub/mq/item/mq_100x300_060124.swf";//设定右广告文件的地址
var RightAd_link="";//设置右侧广告的跳转连接地址(flash无须设置)
var RightAd_top=80;//设定右广告top边距(常规情况无需更改)
var RightAd_left=eval(theX)>(contentWidth+200)?Math.round(eval(theX)*0.75+contentWidth*0.25-50):Math.round(screen.width*0.75+125);//设定右广告left边距,浮动在内容之外空间上自动居中 by nokersang

// "返回顶部"的设置
var ifGoTop="y";//是否出现“返回顶部”。y:出现;n:隐藏

//以下代码无须改动
var gotop="<table width=100 border=0 cellpadding=0 cellspacing=0> <tr> <td><a onClick=/"javascript:window.scroll(0,0);return false;/" style=/"cursor:pointer/"><img src=http://sms.qq.com/images2005/bt_gotop.gif width=18 height=18 border=0 /></a></td> <td><a onClick=/"javascript:window.scroll(0,0);return false;/" style=/"cursor:pointer/" οnmοuseοver=/'this.style.color=/"#AAA/"/' οnmοuseοut=/'this.style.color=/"#000/"/'>返回页顶</a></td></tr></table>"// 对联返回改为js方式 by jornnyliu
if (LeftAd_Type=="pic"&&LeftAd_Dime=="d"){
  left_ad="<table width=100 border=0 cellspacing=0 cellpadding=0><tr><td height=24 background=http://sms.qq.com/images2005/pub_double_close.gif align=right><a href=http://sms.qq.com target=_blank><img src=http://sms.qq.com/images2005/link_sms.gif border=0></a><img src=http://sms.qq.com/images2005/bt_double_closead.gif width=22 border=0 οnclick=/"javascript:closead();return false/" style=/"cursor:pointer/"/></td> </tr> <tr> <td height=276 align=center valign=middle background=http://sms.qq.com/images2005/pub_double_bg.gif><a href="+LeftAd_link+" target=_blank><img src="+LeftAd_Url+" width=90 height=267 border=0 /></a></td> </tr> </table>";
 }
if (LeftAd_Type=="pic"&&LeftAd_Dime=="f"){
  left_ad="<a href="+LeftAd_link+" target=_blank><img src="+LeftAd_Url+" width=80 height=80 border=0 /></a>";
 }
if (RightAd_Type=="pic"&&RightAd_Dime=="d"){
  right_ad="<table width=100 border=0 cellspacing=0 cellpadding=0> <tr> <td height=24 background=http://sms.qq.com/images2005/pub_double_close.gif align=right><a href=http://sms.qq.com target=_blank><img src=http://sms.qq.com/images2005/link_sms.gif border=0></a><img src=http://sms.qq.com/images2005/bt_double_closead.gif width=22 border=0 οnclick=/"javascript:closead();return false/" style=/"cursor:pointer/"/></td> </tr> <tr> <td height=276 align=center valign=middle background=http://sms.qq.com/images2005/pub_double_bg.gif><a href="+RightAd_link+" target=_blank><img src="+RightAd_Url+" width=90 height=267 border=0 /></a></td> </tr> </table>"
 }
if (RightAd_Type=="pic"&&RightAd_Dime=="f"){
  right_ad="<a href="+RightAd_link+" target=_blank><img src="+RightAd_Url+" width=80 height=80 border=0 /></a>";
 }
if (LeftAd_Type=="swf"&&LeftAd_Dime=="d"){
  left_ad="<object id=flashad classid=/"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000/" codebase=/"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0/" width=/"100/" height=/"300/"> <param name=/"movie/" value=/""+LeftAd_Url+"/" /> <param name=/"quality/" value=/"high/" /><param name=/"wmode/" value=/"transparent/" /><embed src=/""+LeftAd_Url+"/" width=/"100/" height=/"300/" quality=/"high/" pluginspage=/"http://www.macromedia.com/go/getflashplayer/" type=/"application/x-shockwave-flash/"></embed> </object>";
 }
if (LeftAd_Type=="swf"&&LeftAd_Dime=="f"){
  left_ad="<object classid=/"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000/" codebase=/"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0/" width=/"80/" height=/"80/"> <param name=/"movie/" value=/""+LeftAd_Url+"/" /> <param name=/"quality/" value=/"high/" /><param name=/"wmode/" value=/"transparent/" /><embed src=/""+LeftAd_Url+"/" width=/"80/" height=/"80/" quality=/"high/" pluginspage=/"http://www.macromedia.com/go/getflashplayer/" type=/"application/x-shockwave-flash/"></embed> </object>";
 }
if (RightAd_Type=="swf"&&RightAd_Dime=="d"){
  right_ad="<object id=flashad classid=/"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000/" codebase=/"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0/" width=/"100/" height=/"300/"> <param name=/"movie/" value=/""+RightAd_Url+"/" /> <param name=/"quality/" value=/"high/" /><param name=/"wmode/" value=/"transparent/" /><embed src=/""+RightAd_Url+"/" width=/"100/" height=/"300/" quality=/"high/" pluginspage=/"http://www.macromedia.com/go/getflashplayer/" type=/"application/x-shockwave-flash/"></embed> </object>";
 }
if (RightAd_Type=="swf"&&RightAd_Dime=="f"){
  right_ad="<object classid=/"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000/" codebase=/"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0/" width=/"80/" height=/"80/"> <param name=/"movie/" value=/""+RightAd_Url+"/" /> <param name=/"quality/" value=/"high/" /><param name=/"wmode/" value=/"transparent/" /><embed src=/""+RightAd_Url+"/" width=/"80/" height=/"80/" quality=/"high/" pluginspage=/"http://www.macromedia.com/go/getflashplayer/" type=/"application/x-shockwave-flash/"></embed> </object>";
 }

function floaters() {
 this.items = [];
 this.addItem = function(id,x,y,content){
  var str = '<DIV id='+id+' style="Z-INDEX:10; POSITION: absolute;display:block;left:'+(typeof(x)=='string'?eval(x):x)+'px;top:'+(typeof(y)=='string'?eval(y):y)+'px">'+content+'</DIV>';
  document.write(str);

  var newItem = {};
  newItem.object = document.getElementById(id);
  newItem.x = x;
  newItem.y = y;
  this.items[this.items.length] = newItem;
 }
 this.play = function(){
  collection = this.items
  setInterval('play()',10);
 }
}
function play(){
 //动态根据窗口大小判断隐藏 by nokersang
 if(eval(theX)<parseInt(contentWidth+200)||eval(theY)<maxHeight){
  for(var i=0;i<collection.length;i++)
   {
   collection[i].x=(collection[i].object.offsetLeft?collection[i].object.offsetLeft:collection[i].x);//MF层位置保存,兼容代码 nokersang
   collection[i].object.style.display="none";
   }
 }else{
  for(var i=0;i<collection.length;i++)
   {
   var followObj=collection[i].object;
   var followObj_x=(typeof(collection[i].x)=='string'?eval(collection[i].x):collection[i].x);
   var followObj_y=(typeof(collection[i].y)=='string'?eval(collection[i].y):collection[i].y);
   if(collection[i].object.style.display!="block"){
    followObj.style.left=followObj_x+"px" //MF层位置获取,兼容代码 nokersang
    collection[i].object.style.display="block";
   }
   //左右浮动区别处理动态处理代码,动态浮动,解决窗口水平变小时Flash跳动及短时间出现水平滚动条问题 by nokersang *
   if(i==0&&display!="right"){
    if(followObj.offsetLeft!=Math.round((eval(theX)-contentWidth)*0.25-50)){
    var dx=((eval(theX)-contentWidth)*0.25-50-followObj.offsetLeft)*delta;
    dx=(dx>0?1:-1)*Math.ceil(Math.abs(dx));
    followObj.style.left=followObj.offsetLeft+dx+"px";
    }
   }else{
    if(followObj.offsetLeft!=Math.round(eval(theX)*0.75+contentWidth*0.25-50)){
    var dx=(Math.ceil(eval(theX)*0.75+contentWidth*0.25-50)-followObj.offsetLeft);
    dx=(dx<0&&(followObj.offsetLeft+100)>eval(theX)?dx:dx*delta);
    dx=(dx>0?1:-1)*Math.ceil(Math.abs(dx));
    followObj.style.left=followObj.offsetLeft+dx+"px";
    }
   }
   if(followObj.offsetTop!=(scrollTop()+followObj_y)) {
    var dy=(scrollTop()+followObj_y-followObj.offsetTop)*delta;
    dy=(dy>0?1:-1)*Math.ceil(Math.abs(dy));
    followObj.style.top=followObj.offsetTop+dy+"px";
   }
   collection[i].object.style.display="block";
  }
 }
} 
    
var theFloaters = new floaters();
 
if (display=="both"){
 theFloaters.addItem('leftad',LeftAd_left,LeftAd_top,left_ad);
 theFloaters.addItem('rightad',RightAd_left,RightAd_top,right_ad);
}
if (display=="left"){
 theFloaters.addItem('leftad',LeftAd_left,LeftAd_top,left_ad);
}
if (display=="right"){
 theFloaters.addItem('rightad',RightAd_left,RightAd_top,right_ad);
}
if (ifGoTop=="y"){
 theFloaters.addItem('gotop',RightAd_left,390,gotop);
}
theFloaters.play();

document.write("<SCRIPT language=JavaScript event=FSCommand() for=flashad> leftad.style.visibility='hidden'; rightad.style.visibility='hidden'; </SCRIPT>");

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值