首页 期权学习期权知识正文

JS漂浮广告代码 浮动广告代码效果实现

xiaojiucai 期权知识 2020-08-18 523 0

这个JavaScript漂浮广告代码是我自己学习的时候写的,不过一次只有漂一个,复制就能用了。也可以根据自已的需要修改成多个飘浮的效果(差不多每一行代码我都注释了,很容易看得懂,写得也比较完善了)。希望站长朋友喜欢。

这个是前端开发的必备的技能,实现思路及方法下面都写得很详细。Js漂浮广告代码比较经典的浮动广告,到现还很实用,如果你是一位站长的话,这种代码是必备的,希望对你有用处。 

<!DOCTYPE html>    
<html>    
	<head>    
		<meta charset="UTF-8">    
		<title></title>    
		<style type="text/css">    
			*{    
				padding: 0;    
				margin: 0;    
			}    
			#dd{    
				width: 700px;    
				height: 450px;    
				border: 1px solid blue;    
				background: url(../zb_users/upload/2019/04/201904151555302161716963.jpg) no-repeat;    
				position: absolute;    
				left: 0;    
				top: 0;    
			}    
		</style>    
		<script type="text/javascript">    
			window.onload = function(){    
				var dd = document.getElementById('dd');    
				var tt = document.getElementById('tt');    
//				clientHeight 获得可视区域的宽高    
				var ks1 = document.documentElement.clientHeight;    
//				获得可视区域的宽度    
				var ks2 = document.documentElement.clientWidth;    
//				计算可以达到的最大的top和left值    
//				可视的高度减去这个图片元素本身的高度offsetHeight(就是从上到底的高度)    
				var jd = ks1 - dd.offsetHeight;    
//				可视性的宽度减去这个元素本身的宽度(就是从左到右的宽度)    
				var kd = ks2- dd.offsetWidth;    
//				## 假如x=1或y=1; 1调成5就不能正常显示,因为假如比如高度是309,你一次加5就不能正好到309下面再做判断就不成立了,就控制不住了。所以要在将新值赋值回去之前先做一个判断    
//				var x=1,y=1;    
				var x=5,y=5;    
//				定时器调用的函数开始         为了方便调用,先把定时器独立出来    
//				先给取个名字叫ww    
				function ww(){    
//					获得旧的left和top值        offsetLeft;如果是没有定位的元素,参照于离它最近的有定位属性的元素来获得结果    
					var kk = dd.offsetLeft;    
					var ww = dd.offsetTop;    
//					计算新的left和top值    
//					var kkt = kk+1;    
//					把1改成x可变量  在抓元素上面写 x=1  ,y=1    
					var kkt = kk+x;    
//					var wwt = ww+1;    
					var wwt = ww+y;    
//					## 在这里先做一个判断    
//					假如新的值大过可视最大值  ,那么最新的值就等于最大的值    
					if (wwt>jd) {    
						wwt=jd;    
					}    
					if (kkt>kd) {    
						kkt=kd;    
					}    
//					判断最大的还要判断最小的才行,要不然小的时候控制不住变负数了    
					if (wwt<0) {    
						wwt=0;    
					}    
					if (kkt<0) {    
						kkt=0;    
					}    
//					将新值赋值回去    
					dd.style.left = kkt+'px';    
					dd.style.top = wwt+'px';    
					if (wwt==jd) {    
//						从上到下到底后减top值    
						y=-5;    
					}    
//					wwt==0到顶后又加1,把top变大    
					if (wwt==0) {    
						y=5;    
					}    
//					left走到最大最右后减1    
					if (kkt==kd) {    
						x=-5;    
					}    
//					left走回到最小最左后加1    
					if (kkt==0) {    
						x=5;    
					}    
				}    
//				定时器调用的函数结束	
    
//				调用定时器  这个可以用局部var    
				var nn = setInterval(ww,20);    

//				给dd加移入事件     onmouseover 用户鼠标移入元素时触发的事件    
				dd.onmouseover = function(){    
//					停止定时器    当鼠标移动到就停止    
					clearInterval(nn);    
				}    
//				给dd加移出事件    
				dd.onmouseout = function(){    
//					恢复定时器  这个用全局定时器    
				nn = setInterval(ww,20);	
    
				}    
//			做一个点击关闭    
//			tt的单击事件    
			tt.onclick = function(){    
//				让广告隐藏    在抓元素那里先抓tt这个元素要不然关不掉    
				dd.style.display = 'none';    
			}    
//			浏览器窗口改变事件    onresize 事件会在窗口或框架被调整大小时发生    
			window.onresize = function(){    
//				让广告归位    
				dd.style.left = 0;    
				dd.style.top = 0;    
//				归位变0后,怕它-5成负数飘走    到0后加    为了严谨的写法    
				x=5,y=5;    
//				我们的窗口发生改变了,当然也要从新获得一下可视大小值重新计算可以到达最大的left和top值    
//				clientHeight 获得可视区域的宽高    
				var ks1 = document.documentElement.clientHeight;    
//				获得可视区域的宽度    
				var ks2 = document.documentElement.clientWidth;    
//				计算可以达到的最大的top和left值    
//				可视的高度减去这个图片元素本身的高度offsetHeight(就是从上到底的高度)    
//				上面要加到这个局部变量改一下var,设成全局变量要不然只能作用在这里上面抓不到    
				jd = ks1 - dd.offsetHeight;    
//				可视性的宽度减去这个元素本身的宽度(就是从左到右的宽度)    
				kd = ks2- dd.offsetWidth;	
    
			}    
		}    
		</script>    
	</head>    
	<body>    
		<div id="dd">    
			<img src="https://www.qiquanji.com/data/img/dmj/201904151555302357204596.jpg" alt=""  id="tt"/>    
		</div>    
	</body>    
</html>

原文链接:https://www.qiquanji.com/post/7108.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。