基于JavaScript代码实现随机漂浮图片广告


Posted in Javascript onJanuary 05, 2016

在网上有很多这样的代码,不过未必符合W3C标准,因为在头部加上<!DOCTYPE html>类似标签之后,漂浮效果就会失效,下面分享一个符合标准的漂浮代码,使需要的朋友免去大量改造代码的繁琐。

代码一:

代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>漂浮广告代码</title>
<style type="text/css">
#thediv
{
 z-index:100; 
 position:absolute; 
 top:43px; 
 left:2px;
 height:100px;
 width:100px; 
 background-color:red;
}
</style>
<script type="text/javascript"> 
var xPos=300; 
var yPos=200; 
var step=1; 
var delay=8; 
var height=0; 
var Hoffset=0; 
var Woffset=0; 
var yon=0; 
var xon=0; 
var pause=true; 
var interval; 
function changePos() 
{ 
 width=document.documentElement.clientWidth; 
 height=document.documentElement.clientHeight; 
 Hoffset=thediv.offsetHeight; 
 Woffset=thediv.offsetWidth; 
 thediv.style.left=(xPos+document.body.scrollLeft+document.documentElement.scrollLeft)+"px"; 
 thediv.style.top=(yPos+document.body.scrollTop+document.documentElement.scrollTop)+"px"; 
 if(yon) 
 {
  yPos=yPos+step;
 } 
 else 
 {
  yPos=yPos-step;
 } 
 if(yPos<0) 
 {
  yon=1;
  yPos=0;
 } 
 if(yPos>=(height-Hoffset)) 
 {
  yon=0;
  yPos=(height - Hoffset);
 } 
 if(xon) 
 {
  xPos=xPos + step;
 } 
 else 
 {
  xPos=xPos - step;
 } 
 if(xPos < 0) 
 {
  xon = 1;
  xPos = 0;
 } 
 if(xPos >= (width - Woffset)) 
 {
  xon = 0;
  xPos = (width - Woffset); 
 } 
} 
function start() 
{ 
 thediv.visibility="visible"; 
 interval=setInterval('changePos()',delay); 
} 
function pause_resume() 
{ 
 if(pause) 
 { 
  clearInterval(interval); 
  pause = false;
 } 
 else 
 { 
  interval = setInterval(changePos,delay); 
  pause = true; 
 } 
}
window.onload=function()
{
 thediv.style.top=yPos; 
 start(); 
}
</script> 
</head> 
<body> 
<div id="thediv"></div> 
</body> 
</html>

以上代码实现了我们的要求,红色div块能够能够在网页中随机漂浮,并且兼容各个浏览器。代码的实现过程这里就不多介绍了,如有任何问题可以跟帖留言。

代码二:JS随机漂浮广告代码具体实例

代码如下:

<!--随机漂浮广告开始-->
<div id="float" style="position:absolute; z-index:3;(我建议大家把这里设为100,这样浮动图就不会被遮住了) left: 512px; width: 83px; top: 9px; height: 53px;">
   <img src="piaofu.gif" width="100" height="50"> </div>
<script type="text/javascript">
  <!--随机漂浮广告 -->
  var xPos=0,yPos=0;//x,y轴坐标
  var xon=0;//图片在x轴移动方向
  var yon=0;//图片在y轴移动方向
  var step=1;   //移动距离
  var img=document.getElementByIdx_x("float");//图片层
  function floatP()
  {
   var width=document.body.clientWidth;//浏览器宽度
   var height=document.body.clientHeight;//浏览器高度
   var Hoffset=img.offsetHeight;//图片高度
   var Woffset=img.offsetWidth;//图片宽度
   img.style.left=xPos+document.body.scrollLeft;//图片距离浏览器左侧位置
   img.style.top=yPos+document.body.scrollTop;//图片距离浏览器顶端位置
   if(yon==0){
   yPos=yPos+step;//图片在y轴方向上下移动
   }else{
   yPos=yPos-step;
   }
   if(yPos<0){//飘到顶端,沿y轴向下移动
   yon=0;
   yPos=0;
   }
   if(yPos>=(height-Hoffset)){//飘到低端,沿y轴向上移动
   yon=1;
   yPos=(height-Hoffset);
   }
   if(xon==0){//x轴向右移动
   xPos=xPos+step;
   }else{
   xPos=xPos-step;//x轴向左移动
   }
   if(xPos<0){//飘到左侧时沿x轴向右移动
   xon=0;
   xPos=0;
   }
   if(xPos>=(width-Woffset)){//飘到右侧时沿x轴向左移动
   xon=1;
   xPos=(width-Woffset);
   }
   setTimeout("floatP()",30);//定时调用。
  }
  window.onload=floatP();
</script>

 代码如下:

<script>
var x = 50,y = 60 //浮动层的初始位置,分别对应层的初始X坐标和Y坐标
var xin = true, yin = true //判断层的X坐标和Y坐标是否在在控制范围之内,xin为真是层向右移动,否则向左;yin为真是层向下移动,否则向上
var step = 1 //层移动的步长,值越大移动速度越快
var delay = 10 //层移动的时间间隔,单位为毫秒,值越小移动速度越快
var obj=document.getElementByIdx_x("float") //捕获id为ad的层作为漂浮目标
function floatAD() {
var L=T=0 //层移动范围的左边界(L)和上边界(T)坐标
var R= document.body.clientWidth-obj.offsetWidth //层移动的右边界
var B = document.body.clientHeight-obj.offsetHeight //层移动的下边界
obj.style.left = x + document.body.scrollLeft //更新层的X坐标,实现X轴方向上的运动;document.body.scrollLeft为文档区域的滚动条向右拉的距离,以保证在滚动条右拉时层仍在可见范围内
obj.style.top = y + document.body.scrollTop //更新层的Y坐标,实现Y轴方向上的运动;document.body.scrollTop为文档区域的滚动条向下拉的距离,以保证在滚动条下拉时层仍在可见范围内
x = x + step*(xin?1:-1) //通过判断层的范围决定层在X轴上的运动方向
if (x < L) { xin = true; x = L} //层超出左边界时的处理
if (x > R){ xin = false; x = R} //层超出右边界时的处理
y = y + step*(yin?1:-1) //通过判断层的范围决定层在Y轴上的运动方向
if (y < T) { yin = true; y = T } //层超出上边界时的处理
if (y > B) { yin = false; y = B } //层超出下边界时的处理
}
var itl= setInterval("floatAD()", delay) //每delay秒执行一次floatAD函数
obj.onmouseover=function(){clearInterval(itl)} //层在鼠标移上时清除上面的间隔事件,实现层在的鼠标移上时停止运动的效果
obj.onmouseout=function(){itl=setInterval("floatAD()", delay)} //层在鼠标移开时开始间隔事件,实现层在的鼠标移开时继续运动的效果
</script>

三水点靠木友情提醒大家需要注意事项:

在网页中插入Flash和浮动广告,你会发现在浮动广告浮到Flash处时会在下面,我们如何解决这个问题呢,其它很简单

在flash代码的位置加入下面语句就可以了

<param name="wmode" value="opaque">

例:

如果下面是flash所在位置的代码:

代码如下:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="780" height="165">
<param name="movie" value="banner1.swf">
<param name="quality" value="high">
<param name="menu" value="false">
<param name="wmode" value="opaque"><!--主要是这句-->
<embed src="banner1.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="780" height="165"></embed>
</object>
Javascript 相关文章推荐
Extjs学习笔记之六 面版
Jan 08 Javascript
基于Jquery的动态添加控件并取值的实现代码
Sep 24 Javascript
javascript instanceof 内部机制探析
Oct 15 Javascript
js中 计算两个日期间的工作日的简单实例
Aug 08 Javascript
JS获取一个未知DIV高度的方法
Aug 09 Javascript
JavaScript如何获取到导航条中HTTP信息
Oct 10 Javascript
JavaScript生成指定范围的时间列表
Mar 19 Javascript
Vue.js样式动态绑定实现小结
Jan 24 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
Mar 13 Javascript
微信小程序实现卡片层叠滑动效果
Jun 21 Javascript
浅谈JS中this在各个场景下的指向
Aug 14 Javascript
Vue3.x源码调试的实现方法
Oct 13 Javascript
多个js毫秒倒计时同时进行效果
Jan 05 #Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
Jan 04 #Javascript
实例详解jQuery结合GridView控件的使用方法
Jan 04 #Javascript
jQuery EasyUI之DataGrid使用实例详解
Jan 04 #Javascript
JavaScript原型及原型链终极详解
Jan 04 #Javascript
jQuery实现简单的点赞效果
May 29 #Javascript
jQuery+Ajax实现无刷新操作
Jan 04 #Javascript
You might like
php的memcached客户端memcached
2011/06/14 PHP
详谈PHP程序Laravel 5框架的优化技巧
2016/07/18 PHP
PHP面向对象程序设计之类与反射API详解
2016/12/02 PHP
利用laravel+ajax实现文件上传功能方法示例
2017/08/13 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
thinkPHP5.1框架中Request类四种调用方式示例
2019/08/03 PHP
thinkphp5+layui实现的分页样式示例
2019/10/08 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
2020/05/26 PHP
js constructor的实际作用分析
2011/11/15 Javascript
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
jQuery插件实现表格隔行换色且感应鼠标高亮行变色
2013/09/22 Javascript
jquery解析JSON数据示例代码
2014/03/17 Javascript
js控制网页背景音乐播放与停止的方法
2015/02/06 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
基于JS实现省市联动效果代码分享
2016/06/06 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
JavaScript版经典游戏之扫雷游戏完整示例【附demo源码下载】
2016/12/12 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
Rollup处理并打包JS文件项目实例代码
2018/05/31 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
2015/03/17 HTML / CSS
毕业生优秀推荐信
2013/11/26 职场文书
自我评价200字分享
2013/12/17 职场文书
技术总监个人的自我评价范文
2013/12/18 职场文书
《钱学森》听课反思
2014/03/01 职场文书
经典洗发水广告词
2014/03/13 职场文书
优秀广告词大全
2014/03/19 职场文书
工地安全质量标语
2014/06/07 职场文书
网络营销计划
2015/01/17 职场文书
遗嘱格式范本
2015/08/07 职场文书
在python中读取和写入CSV文件详情
2022/06/28 Python
搭建zabbix监控以及邮件报警的超级详细教学
2022/07/15 Servers