前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浮动广告代码实例「建议收藏」

浮动广告代码实例「建议收藏」

作者头像
全栈程序员站长
发布2022-11-08 10:24:23
2.2K0
发布2022-11-08 10:24:23
举报

大家好,又见面了,我是你们的朋友全栈君。

很多网站的页面都有漂浮的广告效果,虽然烦人,但也确实起到了良好的宣传效果。

各大代码网站也有关于漂浮代码的实例,很多存在着兼容性问题,不符合W3C标准,本站修复了兼容性问题,下面就简单介绍一下如何实现此效果。

代码如下:

代码语言:javascript
复制
 [HTML] 纯文本查看 复制代码 运行代码 
 
 
 
 
 
 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 
 
 
 
<!DOCTYPE html>  
< 
html 
>  
< 
head 
>  
< 
meta  
charset 
= 
" utf-8" 
>  
< 
head 
> 
< 
title 
>浮动广告</ 
title 
> 
< 
script  
type 
= 
"text/javascript" 
>  
window.onload=function(){ 
 
   
var x=50,y=60;  
   
var xin=true, yin=true;  
   
var step=1;  
   
var delay=10;  
   
var obj=document.getElementById("ad");  
   
function float(){  
     
var L=T=0; 
     
var R=document.documentElement.clientWidth-obj.offsetWidth;  
     
var B =document.documentElement.clientHeight-obj.offsetHeight;  
     
obj.style.left=(x+document.body.scrollLeft||document.documentElement.scrollLeft)+"px"; 
     
obj.style.top=(y+document.body.scrollTop||document.documentElement.scrollTop)+"px"; 
     
x = x + step*(xin?1:-1);  
     
if(x < L){ xin = true; x = L}  
     
if(x > R){ xin = false; x = R}  
     
y=y + step*(yin?1:-1)  
     
if(y < T){ yin = true; y = T }  
     
if(y > B){ yin = false; y = B }  
   
}  
   
var flag= setInterval(float, delay)  
   
obj.onmouseover=function(){clearInterval(flag)}  
   
obj.onmouseout=function(){flag=setInterval(float, delay)}  
} 
</ 
script 
> 
< 
body 
> 
< 
div  
id 
= 
"ad"  
style 
= 
"position:absolute" 
> 
   
< 
a  
href 
= 
"#"  
target 
= 
"_blank" 
> 
     
< 
img  
src 
= 
"mytest/JS/ad.jpg"  
border 
= 
"0" 
> 
   
</ 
a 
> 
</ 
div 
> 
</ 
body 
> 
</ 
html 
> 

图片可以在文档中随机的漂浮,下面就简单介绍一下如何实现此效果。

一.实现原理:

将div块采用绝对定位,里面包裹着图片,实际上是这个div块进行漂浮。然后通过定时器函数不断调用float来实现div的漂浮效果,此函数能够判断div块是否碰触边缘,然后再进行位置调整。

二.代码注释:

(1).window.οnlοad=function(){},当文档完全加载完成再去执行函数中的代码。

(2).var x=50,y=60,声明两个变量x和y用来存放漂浮div的初始坐标。

(3). var xin=true, yin=true,设置两个标志。

(4).var step=1,设置div漂浮的幅度。

(5).var delay=10,用来设置定时器函数执行的时间间隔。

(6).var obj=document.getElementById(“ad”),获取id属性值为ad的对象。

(7).function float(){},此函数规定了div块的漂浮原则。

(8).var L=T=0,声明两个变量并赋值为零,用来判断div块是否已经到达网页的左边缘和下边缘。

(9).ar R=document.documentElement.clientWidth-obj.offsetWidth,可见宽度减去div块的宽度,也就是剩余空间的宽度。

(10).var B=document.documentElement.clientHeight-obj.offsetHeight,可见高度减去div块的高度,也就是剩余空间的高度。

(11).obj.style.left=(x+document.body.scrollLeft||document.documentElement.scrollLeft)+”px”,用来规定div的left属性值,之所以使用scrollleft是因为有可能网页的宽度过宽出现横向滚动条,之所以使用||是为了消除浏览器兼容性问题。

(12).obj.style.top=(y+document.body.scrollTop||document.documentElement.scrollTop)+”px”,这个和上面同理,不过方位不一样。

(13).x=x+step*(xin?1:-1),计算x的值。

(14).if(x < L){ xin = true; x = L} ,如果div块到达网页的左边缘,如果是的话将xin的值设置为true,并且将x的值设置为L,即为零。

(15).if(x > R){ xin = false; x = R} ,如果div块到达网页的右边缘,则将xin的值色织为false,并将x的值的设置为r。

(16).var flag=setInterval(float,delay) ,使用定时器函数调用float()函数。

(17).obj.οnmοuseοver=function(){clearInterval(flag)} ,当鼠标放在div上,停止漂浮。

(18).obj.οnmοuseοut=function(){flag=setInterval(float, delay)},当鼠标离开,继续漂浮。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/191320.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月20日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档