一、BOM
1、操作浏览器的一些方法 (浏览器对象模型)
2、window是is中的顶级变量,是一个全局的变量,所有人都可以访问到它,基本 的方法和属性
(document,alert,console.log,这些东西都是window的),由于他太常用可以省略不写,全局变 量和全局函数是window的一个属性和方法
 
3、window.onload=function(){ 【入口函数】
事件会在页面加载完成后,以及页面中的所有图片都加载完才开始执行
} img标签会加载,而图片不会被加载,是为了优化,这样获取图片的属性就不可以,所以
要使用window.load()
3'使用:当在单独的页面写JS时 会比较常使用
window.load如果写了多个 ,后面的会覆盖前边的
3'' window.open("打开的窗口地址",“-self/-blank(默认)”,“窗口的属性(高度和宽 度)”)--》可以写在一个函数里--》但是这个很少用
window.close(没有参数)--》把自己给关了,所有在open的时候要在全局接受一下设定的窗口 ,然后用它来调用.close就可以。
 
4、定时器
①延时定时器
语法:setTimeout(函数function,delay【单位是毫秒】)
setTimeout(funnction(){},5000) //5秒之后去执行这里的函数,并返回一个数值类型的延时定时器的ID,可以用、timer来接收
setTimeout(bang【函数名】,5000)
clearTimeout( timer【定时器的ID】); -->他们都是windom来调用的
②间歇定时器
setInterval(函数function,delay) 同样返回一个ID //每隔一段时间都会调用这个函数
clearInterval(timer)
 
定时器不会卡住程序,他后边的程序还是可以执行的,单线程先是执行他下边的程序,然后等执行定时器时,就会一直执行。
惊天巨坑:在定时器里不要使用this,因为定时器是有window来调用的
定时器实质:设置一个定时器,就是让window没隔多少秒去执行一次,他后边 的代码不会再执行了,开启一个定时器,不会妨碍后边代码的执行,其实就是让代码每隔多少秒去执行一次
 
5、其他的BOM对象(了解)
① location.href="http://baidu.com" //用来页面跳转
②刷新 : 刷新的时候,地址没变,浏览器会读缓存
强制刷新 : ctrl+f5 不读缓存 ,所有的资源都重新去加载
 
location.reload(true/false) //默认不写就是false就是刷新,传的是true就是强制刷新
③其他属性
通过IP找电脑,通过端口找程序
http://www.baidu.com?wd=呵呵 找关键字
 
6、其他对象
① navigator console.log(navigatorr.userAgent)//在控制台中写,(编辑器在前加window) 查看浏览器的版本信息
浏览器兼容性: 能力检测:判断有没有这个能力,如果没有,就用另外一种方式
代理检测:检查浏览器的版本 (谷歌浏览器可以再控制台中编程)
②history.forward( )等页面跳转完,有历史时,往前跳 ==history.go(1)
history.back( )往后==history.go(-1)
 
③screen.width/height 获取屏幕的宽度和高度
screen.availWidth/availHeight 高度会变(默认 )
7、动画
offset家族
①style.width:只能获取行内式
获取的是字符串的格式,还带px,如还的用parseInt
可以设置宽度,记得带单位
offsetwidth:真是的大小,获取盒子自身的宽度(padding+border+width)
获取的类型是字符类型,可以直接运算
是一个只读属性,只能获取,不能设置
总结:获取用offsetWidth 设置用style.width
 
②offsetParent 距离自己最近的有定位的父元素
parentNode 找的永远是自己的亲爹
③offsetTop offsetLeft//真实的位置 自己的左侧距离offsetParent左侧的
真实的距离 ;获取到的是字符类型;是只读属性
只能获取不能设置;margin会影响他的大小。
style.left:只能获取行内样式 (获取的是left设置的样式值,就是设多少就是多
少);获取到的是字符串 ;可以进行设置
 
动画公式
注意:动画中,想让left有效果,别忘记加定位,加单位
对象的当前位置=对象的当前位置+对象要走的长度
leader=leader+step // 当前的位置 盒子一次移动的距离
注意:一秒钟执行25次就可以看到动画效果
timer只是定时器的编号,是个数值而已

BOM以及定时器的更多相关文章

  1. 13 -1 BOM和定时器

    一 BOM JavaScript基础分为三个部分: ECMAScript:JavaScript的语法标准.包括变量.表达式.运算符.函数.if语句.for语句等. DOM:文档对象模型,操作网页上的元 ...

  2. BOM心得-定时器

    写在前面的话:之前一直以为定时器的返回值是Object类型,所以timer初始化也是写null,今天发现返回值是number,进而发觉这个返回值代表的是定时器的索引,指代这是第几个定时器 个人觉得只用 ...

  3. BOM之定时器

    JavaScript中的时间是通过定时器控制的,他们分别是window.setInterval和window.setTimeout,我们当然可以省略window,直接使用方法名称调用. 一     s ...

  4. JS中定时器的返回数值ID值

    定时器会返回一个数字值id,可以由clearInterval(id)或clearTimeout(id)来实现对对应定时器的清除. setInterval()/setTimeout()BOM中的Wind ...

  5. web前端面试第一次[定时器]

    BOM中定时器--计时器 定时器参数两个:(函数,时间(单位ms(1000ms=1s))) 时间设置1s,每过1s执行一次函数 //设置定时器 setInterval(funtion(){ alert ...

  6. 前端3 — js — BOM没完( 不了解也行 )

    1.js是什么? -- 英文全称javascript javaScript(简称"JS") 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言.虽然它是作为开发Web页面的脚 ...

  7. Web前端学习路线

    第一阶段: HTML+CSS:HTML进阶.CSS进阶.div+css布局.HTML+css整站开发. JavaScript基础:Js基础教程.js内置对象常用方法.常见DOM树操作大全.ECMAsc ...

  8. 关于web前端的学习路线

    第一阶段: HTML+CSS:HTML进阶.CSS进阶.div+css布局.HTML+css整站开发. JavaScript基础:Js基础教程.js内置对象常用方法.常见DOM树操作大全.ECMAsc ...

  9. (1)写给Web初学者的教案-----学习Web的知识架构

    1:学习Web的知识架构 前文中我们简单的介绍了一些关于Web的基本知识,这里任老师再次强调一下凡是用浏览器打开的网站我们就称之为Web应用程序(B/S结构).除此之外其它需要下载安装的软件或是手机  ...

随机推荐

  1. Maven创建web项目:SpringMVC+Mybatis 【转】

    IDEA14创建Maven管理的SpringMVC+Mybatis,web项目 项目构建步骤 1.File->New->Project 勾选Create from archetype 点击 ...

  2. PyCharm断点调试django

    我在用PyCharm开发django程序的时候,对于打印日志调试程序的方式感觉还是有点麻烦和不直观,所以研究了一下断点调试的方法如下: 1.打开你的工程,在菜单栏里找到Run-->Edit Co ...

  3. css属性兼容主流浏览器

    目前,对于网页中一些浏览器兼容性问题,可以使用css hack(css 招数)和浏览器Bug修复的方式解决. 名词解释: css Hack:针对特定浏览器编写冗余代码,这是一种欺骗浏览器的行为,预示着 ...

  4. 原创 C++应用程序在Windows下的编译、链接:第三部分 静态链接(二)

    3.5.2动态链接库的创建 3.5.2.1动态链接库的创建流程 动态链接库的创建流程如下图所示: 在系统设计阶段,主要的设计内容包括:类结构的设计以及功能类之间的关系,动态链接库的接口.在动态链接库中 ...

  5. Hibernate 系列 08 - 对象识别机制

    目录导读: Hibernate 系列 学习笔记 目录 本篇目录: 为了区别不同的对象,有两种识别方法: 1. 内存地址识别(“==”号识别) 2. equals()和hashCode()识别 1. 以 ...

  6. hadoop作业调度策略

    一个Mapreduce作业是通过JobClient向master的JobTasker提交的(JobTasker一直在等待JobClient通过RPC协议提交作业),JobTasker接到JobClie ...

  7. java——HashMap的实现原理,自己实现简单的HashMap

    数据结构中有数组和链表来实现对数据的存储,但是数组存储区间是连续的,寻址容易,插入和删除困难:而链表的空间是离散的,因此寻址困难,插入和删除容易. 因此,综合了二者的优势,我们可以设计一种数据结构-- ...

  8. QTimer的用法

    1.singleShot的用法 代码: QTextEdit *testEdit = new QTextEdit("hello world"); testEdit->setMa ...

  9. shell脚本批量收集linux服务器的硬件信息快速实现

    安装ansible批量管理系统.(没有的话,ssh远程命令循环也可以) 在常用的数据库里面新建一张表,用你要收集的信息作为列名,提供可以用shell插入.

  10. 前端小菜鸟的Mobile之旅---开篇

          背景:前段时间有幸参与了公司一个基于H5的手机APP项目,(我们用的React+ES6+Webpack+Cordova开发),由此开始接触一些关于H5开发手机APP方面的知识,下面Shar ...