JavaScript

BOM介绍

概念

BOM(Browser Object Model)即浏览器对象模型。
本质: 通过对象抽象浏览器中的一些功能 例如:(刷新页面,alert,confirm,pormpt,跳转 ...)

BOM顶级对象

window对象是js中的顶级对象,定义在全局作用域中的变量、函数都会变成window对象的属性和方法,在调用的时候可以省略window。☞备注:1.文档document也属于window对象中的一个2.window代表整个窗口

页面加载事件

1.
window.onload = function() {}   ===> 页面加载完成:页面上的所有元素都创建完成,并且引用的外部资源都下载完毕(js,css)

定时器

  • setTimeout()

隔一段时间执行,只执行一次  ==》定时炸弹☞ 使用window.setTimeout(function, time);function: 处理程序,可以是匿名函数time: 间隔时间,毫秒☞ 清除定时器1. setTimeout有一个返回值,代表当前定时器的标识2. clearTimeOut(定时器标识)案例:删除提示效果过程:点击按钮,显示一个层,3秒以后自动消失
  • setInterval()

隔一段时间执行,并且会重复执行 ===》 类似于闹钟☞ 使用
window.setInterval(function, time);
function: 处理程序,可以是匿名函数
time:时间,毫秒☞ 清除定时器clearInterval(定时器id);☞ 课堂案例:
1.时钟案例
2.动画效果 offsetLeft: 水平偏移量相对HTMLoffsetTop: 垂直偏移量相对HTML

location对象

location对象是window对象下的一个属性,使用location可以设置或者获取浏览器地址栏中的url

属性

href:实现页面跳转
获取地址 :location.href
设置地址 :location.href = "http://www.baidu.com"如果希望在新窗口中打开页面:window.open('url路径');

方法

☞ assign()  委派 : 作用于href的作用一样,可以实现页面跳转
location.assign("http://www.baidu.com")☞ replace() 替换: 跳转页面,浏览器不记录历史,浏览器中后退按钮无法使用
location.replace("http://www.baidu.com")☞ reload() 重新加载: 类似于 F5
备注:location.reload(true)  强制从服务器获取页面location.reload(false) 从浏览器本地缓存中获取页面F5,刷新页面从缓存中加载Ctrl + F5 强制刷新页面(从服务器获取页面)

其他属性

  • url组成

统一资源定位符(网站地址)scheme://host:port/path?query#fragment
例如:http://www.baidu.com:port/index.html?name=zs&age=18#bottom
通信协议,常用的http,ftp
  • host
主机,服务器域名系统(DNS)或者IP地址
  • port
端口号,默认端口号 8080
  • pathname
路径,代表一个具体的文件目录或者一个文件夹

属性介绍

location.host   --> 主机名(域名)
location.pathname   ---> 文件路径
location.protocol   ---> 协议
location.port  ----> 端口

offset【获取元素位置和大小】

☞ dom.offsetLeft  ---> 水平偏移
☞ dom.offsetTop   ---> 垂直偏移
备注:1.offsetLeft默认是相对整个HTML标签,如果其父元素是一个定位元素那么就相对其父元素(类似于css中的绝对定位)☞ dom.offsetWidth  ---> 获取当前元素在浏览器中的实际宽度(内容+边框+内边距)
☞ dom.offsetHeight ---> 获取当前元素在浏览器中的实际高度(内容+边框+内边距)   

client【获取元素位置和大小】

☞ dom.clientLeft  --> 获取元素边框的左边框的宽度
☞ dom.clientTop --->  获取元素上边框的宽度☞ dom.clientWidth   -->  元素宽度【不包括边框,但是包括内边距】
☞ dom.clientHeight  -->  元素高度【不包括边框,但是包括内边距】总结:clientHeight = 内容区域 + paddingclientWidth = 内容区域 + padding

scroll【获取元素位置和大小】

☞ dom.scrollLeft   --->
☞ dom.scrollTop    --->滚动条向上滚动的距离【内容滚出去的距离】  [滚动事件 onscroll]☞ dom.scrollWidth   ---> 1. 如果内容区域小于当前元素,那么scrollWidth就代表当前元素大小【算内边距,不算边框】2. 如果内容区域大于当前元素,那么scrollWidth就等于内容区域大小 + 左内边距☞ dom.scrollHeight  --->

案例练习

素最后移动的位置 = 鼠标移动后的位置 - 鼠标按下时候的位置


- ### 弹出登录窗口(模拟模态窗口)- ### 放大镜```js1. onmouseenter 和 onmouseleave 属于一组,不会有事件冒泡2. onmouseover 和 onmouseout 属性一组,有事件冒泡
  • 封装动画

    animate.js
    

js(Dom+Bom)第七天(1)相关推荐

  1. js(Dom+Bom)第七天(2)

    webAPI 01-动画封装 应用到的知识点 点击事件 给元素设置一个绝对定位 定时器(setInterval) 封装动画1的步骤: 让元素设置为绝定位 设置元素的开始位置(从哪开始移动) 设置元素的 ...

  2. js(Dom+Bom)第一天(1)

    JavaScript-DOM(BOM)操作 核心知识 获取页面元素 事件 设置样式 学习目标 能够使用id名,标签名等方式获取页面中元素 能够给标签注册点击事件,并实现对应效果 能够给标签通过js方式 ...

  3. js(Dom+Bom)第六天(1)

    webAPI 01-键盘事件 知识点-onkeydown事件[掌握] onkeydown: 当键盘上的键被按下时候触发的一个事件 知识点-onkeyup事件[掌握] onkeyup: 键盘上键弹起时候 ...

  4. js(Dom+Bom)第五天(2)

    webAPI 01-事件监听 为什么要学事件监听 之前给元素注册事件的时候,同一个事件会被覆盖掉 事件监听的本质 通过另外一种方式给元素注册事件, 同时可以解决同一个事件不会被覆盖掉. 知识点-通过 ...

  5. js(Dom+Bom)第五天(1)

    JavaScript BOM介绍 概念 BOM(Browser Object Model)即浏览器对象模型. 本质: 通过对象抽象浏览器中的一些功能 例如:(刷新页面,alert,confirm,po ...

  6. js(Dom+Bom)第一天(2)

    webAPI 00-复习 内置对象中的方法 01-JavaScript组成 知识点-ECMASCRIPT 重点回顾 存储容器 变量 数组 对象 逻辑语法 分支语句 循环语句 switch语句 知识点- ...

  7. js(Dom+Bom)第八天—Swiper(插件)

    Swiper插件(库) 01-基本介绍 Swiper 是一款免费以及轻量级的移动设备触控滑块的js框架,使用硬件加速过渡(如果该设备支持的话).主要使用于移动端的网站.移动web apps,nativ ...

  8. js(Dom+Bom)第四天(1)

    webAPI 1-通过DOM节点方式获取元素 1-0注意事项 下面的内容都在在文档树上直接操作的 (节点 + 元素)重点是: 与元素相关的内容 1-1与父节点相关的操作方式 1-1-1.知识点-判断父 ...

  9. js(Dom+Bom)第三天(2)

    webAPI 0-操作标签属性 系统属性 作用: 1. 可以操作标签身上的任何一个系统中的自带属性 (id, class, name ....) 2. 还可以操作用户自定义的属性 dom.getAtt ...

最新文章

  1. SAP WM高阶之下架策略M(Small Large Quantity)
  2. STL erase() 迭代器失效
  3. 按键精灵文字识别插件_按键精灵——如何实现办公自由(二)
  4. 计算机视觉算法与应用清华大学,计算机视觉-清华大学.ppt
  5. vue结合ueditor富文本编辑器(换肤分离)
  6. java 多态_Java面向对象 —— 多态
  7. 复旦博士用130行代码搞定核酸统计,2分钟解决人工一小时工作量
  8. Flask-SQLAlchemy 对数据库的过滤查询
  9. python基础之字符编码、文件处理
  10. access9磅字体是多_字体大小(几号-几磅)
  11. 弗吉尼亚大学计算机就业如何,假设你是新华中学的学生李华,高中毕业后想到美国弗吉尼亚大学(University of Virginia)计算机专业深造...
  12. centos7 分辨率修改_centos系统修改屏幕分辨率问题
  13. 通信天线建模与MATLAB仿真分析,通信天线建模与MATLAB仿真分析代码
  14. 写给面临危机的计算机类学生们的肺腑之言 转
  15. Echo写入一句话木马+分段写入
  16. 资金存管,专治各种预付无良商家卷款跑路
  17. 人生感悟:欲望适度则为利,欲望过度则为害,高级java开发工程师简历
  18. jQuery基础(二)
  19. android opengl 百度地图,androidsdk | 百度地图API SDK
  20. 【定量分析、量化金融与统计学】R语言:多元线性回归实例

热门文章

  1. QT 文字字体和颜色设置
  2. 详解各类以太网标准10BASE-T/100BASE-T4/100BASE-FX/1000BASE-X等
  3. [LeetCode]高频算法题
  4. [机器学习] --- 参数优化与模型选择
  5. Linux下使用g++编译C++程序——Compiling Cpp
  6. linux uvc支持H264格式
  7. 欢迎使用CSDN-markdown编辑器333333
  8. 银行真的已经是夕阳行业了吗?
  9. 说两句电视剧《东归英雄》
  10. 深入理解const char*p,char const*p,char *const p,const char **p,char const**p,char *const*p,char**const