当前位置: 首页 > news >正文

漂浮广告,IE,FireFox下兼容,多个漂浮不冲突

      将广告内容放在div中,设置一个id,然后用下面方法调用
var adcls=new AdMove("div的id");
adcls.Run();
注意,在调用前要先引用Main.js和AdFloat.js,div也要在调用前写好,原因就不用说了吧

或者也可以用下面方法,在页面加载完成时调用,就不用考虑位置了addEvent(window,"load",initad);
function initad(){
var adcls=new AdMove("div的id");
adcls.Run();
}

 

    还有两个方法一般情况下没什么用,有兴趣的可以试试,功能是设置漂浮的起始坐标和方向的,如果省掉的话是随机位置随机方向
adcls.SetLocation(x,y)
adcls.SetDirection(dirx,diry)

 

    漂浮广告的斜率是每次碰壁后随机改变的,这样就决不可能出现多个广告,起始位置和方向一致导致其中一个总是被挡住,虽然几率很小

 

 

ExpandedBlockStart.gif 代码
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head >< title > wahaha </ title >
< meta  http-equiv ="Content-Type"  content ="text/html;charset=gb2312"   />
< script  type ="text/javascript" >
<!--
// 公共脚本文件 main.js
function  addEvent(obj,evtType,func,cap){
    cap
= cap || false ;
if (obj.addEventListener){
     obj.addEventListener(evtType,func,cap);
   
return   true ;
}
else   if (obj.attachEvent){
        
if (cap){
         obj.setCapture();
         
return   true ;
     }
else {
      
return  obj.attachEvent( " on "   +  evtType,func);
   }
}
else {
   
return   false ;
    }
}
function  getPageScroll(){
    
var  xScroll,yScroll;
if  (self.pageXOffset) {
   xScroll 
=  self.pageXOffset;
else   if  (document.documentElement  &&  document.documentElement.scrollLeft){
   xScroll 
=  document.documentElement.scrollLeft;
else   if  (document.body) {
   xScroll 
=  document.body.scrollLeft;
}
if  (self.pageYOffset) {
   yScroll 
=  self.pageYOffset;
else   if  (document.documentElement  &&  document.documentElement.scrollTop){
   yScroll 
=  document.documentElement.scrollTop;
else   if  (document.body) {
   yScroll 
=  document.body.scrollTop;
}
arrayPageScroll 
=   new  Array(xScroll,yScroll);
return  arrayPageScroll;
}
function  GetPageSize(){
    
var  xScroll, yScroll;
    
if  (window.innerHeight  &&  window.scrollMaxY) { 
        xScroll 
=  document.body.scrollWidth;
        yScroll 
=  window.innerHeight  +  window.scrollMaxY;
    } 
else   if  (document.body.scrollHeight  >  document.body.offsetHeight){
        xScroll 
=  document.body.scrollWidth;
        yScroll 
=  document.body.scrollHeight;
    } 
else  {
        xScroll 
=  document.body.offsetWidth;
        yScroll 
=  document.body.offsetHeight;
    }
    
var  windowWidth, windowHeight;
    
if  (self.innerHeight) {
        windowWidth 
=  self.innerWidth;
        windowHeight 
=  self.innerHeight;
    } 
else   if  (document.documentElement  &&  document.documentElement.clientHeight) {
        windowWidth 
=  document.documentElement.clientWidth;
        windowHeight 
=  document.documentElement.clientHeight;
    } 
else   if  (document.body) {
        windowWidth 
=  document.body.clientWidth;
        windowHeight 
=  document.body.clientHeight;
    } 
    
if (yScroll  <  windowHeight){
        pageHeight 
=  windowHeight;
    } 
else  { 
        pageHeight 
=  yScroll;
    }
    
if (xScroll  <  windowWidth){ 
        pageWidth 
=  windowWidth;
    } 
else  {
        pageWidth 
=  xScroll;
    }
    arrayPageSize 
=   new  Array(pageWidth,pageHeight,windowWidth,windowHeight) 
    
return  arrayPageSize;
}
// 广告脚本文件 AdMove.js
/*

例子
<div id="Div2">
    ***** content ******
</div>
var ad=new AdMove("Div2");
ad.Run();
*/
// //
var  AdMoveConfig = new  Object();
AdMoveConfig.IsInitialized
= false ;
AdMoveConfig.ScrollX
= 0 ;
AdMoveConfig.ScrollY
= 0 ;
AdMoveConfig.MoveWidth
= 0 ;
AdMoveConfig.MoveHeight
= 0 ;
AdMoveConfig.Resize
= function (){
    
var  winsize = GetPageSize();
    AdMoveConfig.MoveWidth
= winsize[ 2 ];
    AdMoveConfig.MoveHeight
= winsize[ 3 ];
    AdMoveConfig.Scroll();
}
AdMoveConfig.Scroll
= function (){
    
var  winscroll = getPageScroll();
    AdMoveConfig.ScrollX
= winscroll[ 0 ];
    AdMoveConfig.ScrollY
= winscroll[ 1 ];
}
addEvent(window,
" resize " ,AdMoveConfig.Resize);
addEvent(window,
" scroll " ,AdMoveConfig.Scroll);
function  AdMove(id){
    
if ( ! AdMoveConfig.IsInitialized){
        AdMoveConfig.Resize();
        AdMoveConfig.IsInitialized
= true ;
    }
    
var  obj = document.getElementById(id);
    obj.style.position
= " absolute " ;
    
var  W = AdMoveConfig.MoveWidth - obj.offsetWidth;
    
var  H = AdMoveConfig.MoveHeight - obj.offsetHeight;
    
var  x  =  W * Math.random(),y  =  H * Math.random();
    
var  rad = (Math.random() + 1 ) * Math.PI / 6;
     var  kx = Math.sin(rad),ky = Math.cos(rad);
    
var  dirx  =  (Math.random() < 0.5 ? 1 : - 1 ), diry  =  (Math.random() < 0.5 ? 1 : - 1 );
    
var  step  =   1 ;
    
var  interval;
    
this .SetLocation = function (vx,vy){x = vx;y = vy;}
    
this .SetDirection = function (vx,vy){dirx = vx;diry = vy;}
    obj.CustomMethod
= function (){
        obj.style.left 
=  (x  +  AdMoveConfig.ScrollX)  +   " px " ;
        obj.style.top 
=  (y  +  AdMoveConfig.ScrollY)  +   " px " ;
        rad
= (Math.random() + 1 ) * Math.PI / 6;
        W = AdMoveConfig.MoveWidth - obj.offsetWidth;
        H
= AdMoveConfig.MoveHeight - obj.offsetHeight;
        x 
=  x  +  step * kx * dirx;
        
if  (x  <   0 ){dirx  =   1 ;x  =   0 ;kx = Math.sin(rad);ky = Math.cos(rad);} 
        
if  (x  >  W){dirx  =   - 1 ;x  =  W;kx = Math.sin(rad);ky = Math.cos(rad);}
        y 
=  y  +  step * ky * diry;
        
if  (y  <   0 ){diry  =   1 ;y  =   0 ;kx = Math.sin(rad);ky = Math.cos(rad);} 
        
if  (y  >  H){diry  =   - 1 ;y  =  H;kx = Math.sin(rad);ky = Math.cos(rad);}
    }
    
this .Run = function (){
        
var  delay  =   10 ;
        interval
= setInterval(obj.CustomMethod,delay);
        obj.onmouseover
= function (){clearInterval(interval);}
        obj.onmouseout
= function (){interval = setInterval(obj.CustomMethod, delay);}
    }
}
// -->
</ script >
</ head >
< body >
    
< div  id ="gg1"  style ="width:100px;height:100px;background-color:red;color:yellow" >
     广告1
    
</ div >
    
< div  id ="gg2"  style ="width:100px;height:100px;background-color:blue;color:yellow" >
     广告2
    
</ div >
    
< div  id ="gg3"  style ="width:100px;height:100px;background-color:green;color:yellow" >
     广告3
    
</ div >
    
< script  type ="text/javascript" >
    
<!--
        
var  ad1 = new  AdMove( " gg1 " );
        ad1.Run();
var  ad2 = new  AdMove( " gg2 " );
        ad2.Run();
var  ad3 = new  AdMove( " gg3 " );
        ad3.Run();
    
// -->
     </ script >
</ body >
</ html >

 

 

转载于:https://www.cnblogs.com/jhxk/articles/1684290.html

相关文章:

  • 需求引导设计 切莫教条主义
  • RSA简介(三)——寻找质数
  • 北京初“探”,还是初“谈”
  • 售前支持服务流程设计的考虑
  • XStream(xml/bean转换)
  • iis不能读取数据库的解决方案
  • php学习的一些笔记
  • android manifest.xml 文件
  • ireport +jasperreport 中文不能显示
  • rtmp简要流程
  • 安装office2003时提示找不到MI561407.CAB
  • 浅析MySQL中的Index Condition Pushdown (ICP 索引条件下推)和Multi-Range Read(MRR 索引多范围查找)查询优化...
  • comake2
  • MOSS 2010:Visual Studio 2010开发体验(8)——Silverlight应用
  • java 多线程 - 1
  • JS 中的深拷贝与浅拷贝
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 《深入 React 技术栈》
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • axios 和 cookie 的那些事
  • CentOS7 安装JDK
  • classpath对获取配置文件的影响
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JS题目及答案整理
  • nginx 负载服务器优化
  • orm2 中文文档 3.1 模型属性
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • React系列之 Redux 架构模式
  • vuex 笔记整理
  • 笨办法学C 练习34:动态数组
  • 不上全站https的网站你们就等着被恶心死吧
  • 欢迎参加第二届中国游戏开发者大会
  • 普通函数和构造函数的区别
  • 如何进阶一名有竞争力的程序员?
  • 使用agvtool更改app version/build
  • 小而合理的前端理论:rscss和rsjs
  • Hibernate主键生成策略及选择
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (力扣)1314.矩阵区域和
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (三)模仿学习-Action数据的模仿
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)项目管理杂谈-我所期望的新人
  • (转)重识new
  • .NET 动态调用WebService + WSE + UsernameToken
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET开发不可不知、不可不用的辅助类(一)