涉及到offset等有关获取各种尺寸问题下

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>广告</title>
<style>
*{
padding: 0;
margin: 0;
}
#ad{
width: 300px;
height: 200px;
background: url(images/400.jpg) no-repeat;
position: absolute;
left: 0;
top: 0;
}
#close{
width: 20px;
height: 20px;
}
</style>
</head>
<script type="text/javascript">
window.onload = function(){
var ad= document.getElementById("ad");
var close = document.getElementById("close"); // 获得可视区域的宽高
var win_height = document.documentElement.clientHeight;
var win_width = document.documentElement.clientWidth; // 计算可以到达的最大top和left值
var max_top = win_height - ad.offsetHeight;//屏幕高度减去图片高度
var max_left = win_width - ad.offsetWidth;
var x = 2;y = 5;//xy均为移动速度 //设置函数控制怎么移动
function run(){
// 获得旧的left和top
var old_left = ad.offsetLeft;
var old_top = ad.offsetTop; // 计算新的
var new_left = old_left + x;//加上移动速度x,y
var new_top = old_top + y; // 需要判断超出,控制速度及其方向
if (new_top>max_top) {//加速到屏幕边沿时,设置new_top = max_top;即速度为0就停下
new_top = max_top;
}
if (new_left>max_left) {
new_left = max_left;
}
if (new_left<0) {
new_left = 0
}
if (new_top<0) {
new_top = 0
}
// 赋值
ad.style.left = new_left + 'px';
ad.style.top = new_top + 'px';
//当new_top = max_top;即速度为0,此时速度设为相反方向即可
if (new_top == max_top) {
y = -2;
}
if (new_top == 0) {
y = 2;
}
if (new_left == max_left) {
x = -2;
}
if (new_left == 0) {
x = 2;
} } // 设置定时器,每隔一段时间就改变一下left top
var timer = setInterval(run,3);
// 定时器结束 //给ad加鼠标移入事件
ad.onmouseover = function(){
// 停止定时器
clearInterval(timer)
}; // 给ad加鼠标移出事件
ad.onmouseout = function(){
//重启定时器
timer = setInterval(run,3)
}; //点击关闭广告
close.onclick = function(){
ad.style.display = 'none';
}; // 窗口改变事件
window.onresize = function(){//window.onresize = function(){....}浏览器尺寸变化响应事件
//广告归位
//重新将广告放到左上角
ad.style.left = 0;
ad.style.top = 0;
// 将他的速度重新定义
x = 2;
y = 5; // 重新获得可视区域的宽高
win_height = document.documentElement.clientHeight;
win_width = document.documentElement.clientWidth; // 重新计算可以到达的最大top和left值
max_top = win_height - ad.offsetHeight;
max_left = win_width - ad.offsetWidth;
}
}
</script>
<body>
<div id="ad">
<img src="data:images/X.jpg" id="close">
</div>
</body>
</html>

次总结

js之广告的更多相关文章

  1. Js浮动广告效果实现

    第一种 漂浮广告 不符合W3CJavaScript漂浮广告代码,很不错,代码精简,不过一次只有漂一个,复制就能用了.希望站长朋友喜欢. <html> <head> <ti ...

  2. js 添加广告

    需要调用广告的页面 <script type="text/javascript">    var xzname="巨蟹座";</script& ...

  3. js添加广告模块,随页面移动而移动

    实现如下的效果,一般用于广告, 这是通过运动来实现的,大家可以先自己写写,再看看和小编我写的是不是同一个思想 <style> #div1{ width:100px; height:100p ...

  4. js屏蔽广告

    最近遇到有些广告的问题,首先是在手机端,可能是用户访问了一些小网站的,(你懂得),然后在访问我的网站时,会带小广告过来,通常是wifi被dns劫持的情况下导入到广告脚本, 1.处理这些要知道广告的根源 ...

  5. js之广告弹出自动关闭

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  6. js 漂浮广告

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  7. js漂浮广告实现代码(合集经典)

    <html> <head> <title>漂浮广告</title> <body> <div id="codefans_net ...

  8. JS动态广告浏览

    <script language="JavaScript"> function addEventSimple(obj,evt,fn){ if(obj.addEventL ...

  9. js对联广告代码,兼容性高

    var browser = { ie6: function () { return ((window.XMLHttpRequest == undefined) && (ActiveXO ...

随机推荐

  1. 二维码Zxing&Zbar

    二维码Zxing&Zbar 前言:该项目主要介绍了二维码扫描.闪光灯开启.本地二维码图片识别.二维码生成.分别是zxing和zbar(网格二维码)分别实现,具体效果运行项目apk... 开发环 ...

  2. 目前比较全的CSS重设(reset)方法总结(转)

    原文地址 在当今网页设计/开发实践中,使用CSS来为语义化的(X)HTML标记添加样式风格是重要的关键.在设计师们的梦想中都存在着这样的一个完美世界:所有的浏览器都能够理解和适用多有CSS规则,并且呈 ...

  3. 个人发现的createProcess调用漏洞

    现在的杀毒软件都会杀掉c盘下的program.exe程序,所以某种意义上而言,这个漏洞算不上“漏洞”. 问题描述 眼睛护士版本:3.0.18.301存在createProcess调用漏洞. 详细说明 ...

  4. java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]. Specify @BootstrapWith's 'value' attribute or make the default bootstrapper class available.

    1.前几天搭建单元测后,今天用其测试,结果报了这个问题.网上搜索后,刚开始以为原因是  Spring的 依赖版本的问题,我现在的依赖是: 因为其他的比如说 spring-content  spring ...

  5. 初看Mybatis 源码 (三) SQL是怎么执行的

    前面说到Java动态代理,Mybatis通过这种方式实现了我们通过getMapper方式得到的Dao接口,可以直接通过接口的没有实现的方法来执行sql. AuthUserDao mapper = se ...

  6. 这么多小程序,会微信小程序就够了

    随着小程序的普及以及小程序体验的逐步升级,现在小程序的地位已经凸现出来.各大平台纷纷推出自己的小程序平台. 最早的是微信小程序,支付宝小程序,快应用,百度小程序去年上来,18年底头条程序也发布. 那么 ...

  7. Session跨域、Session共享、Mode=StateSever方式解决问题

    前言 很多童鞋在工作或面试的过程中,也许会遇到这样的问题,使用Session,怎样让多个站点实现Session共享的问题,也就是在A站点登录,那么在B站点就不需要重新登录了那?如果采用Session保 ...

  8. 索引反向使用案例,加index_desc hint

    drop index idx_t;create index idx_t on t(owner desc,object_type asc); select /*+index(a,idx_t)*/ * f ...

  9. htm5 手机自适应问题 文本框被激活(获取焦点)时,页面会放大至原来尺寸。

    加上这句话就ok啦 <meta name="viewport" content="width=device-width, initial-scale=1.0, mi ...

  10. ubuntu 18.4 鼠标右键菜单 添加文件

    执行以下指令,在template文件夹中,增加一个空文件 touch ~/Templates/Empty\ Document