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

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路径');

方法

reload() 重新加载: 类似于 F5
备注:location.reload(true)  强制从服务器获取页面location.reload(false) 从浏览器本地缓存中获取页面

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  --->

在这里插入图片描述

案例练习

  • 拖拽

    鼠标按下事件: onmousedown鼠标抬起事件: onmouseup鼠标移动事件: onmousemove案例思路:1. 鼠标按下时候的位置和鼠标离开时候的位置是相同的2. 鼠标按下时候的位置 =  鼠标在页面中的位置(e.pagex) - 当前元素在页面中的位置(offsetLeft)3. 元素最后移动的位置 = 鼠标移动后的位置 - 鼠标按下时候的位置
    
  • 放大镜

     1. onmouseenter 和 onmouseleave 属于一组,不会有事件冒泡2. onmouseover 和 onmouseout 属性一组,有事件冒泡
    
  • 封装动画

    animate.js
    

``

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第六节:深究事务的相关性质、隔离级别及对应的问题、死锁相关

一. 相关概念 前面系列中的章节的: 第二十二节: 以SQLServer为例介绍数据库自有的锁机制(共享锁、更新锁、排它锁等)和事务隔离级别 介绍了各种锁以及事务的隔离级别,是从数据库的角度进行介绍的,本章节是通过EF Core为载体&…

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

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

UIAutomator简介

简介 Android 4.3发布的时候包含了一种新的测试工具–uiautomator,uiautomator是用来做UI测试的。也就是普通的手工测试,点击每个控件元素 看看输出的结果是否符合预期。比如 登陆界面 分别输入正确和错误的用户名密码然后点击登陆按钮看看是否能否登陆以…

从零开始实现ASP.NET Core MVC的插件式开发(五) - 插件的删除和升级

标题:从零开始实现ASP.NET Core MVC的插件式开发(五) - 使用AssemblyLoadContext实现插件的升级和删除 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/11395828.html 源代码:https://github.com/lamondlu/Mystique 前景回…

【JavaWeb】石家庄地铁搭乘系统——第一版(功能尚未完善)

小组成员:高达,程超然 项目目的:能算出地铁搭乘的最优路线并显示在地图上 个人任务:调用队友写好的java代码,将结果显示在网页上 新的知识:百度地图API,使用JQuery的AJAX异步提交 进度&#xff…

扫描枪连接zebra打印机打印条码标签无需电脑

在一些流水线生产的现场,需要及时打印条码标签,由于现场环境和空间限制,无法摆放电脑或者通过连接电脑来打印条码标签的速度太慢, 瑞科条码特提供了一套扫描枪直接连接条码打印机,扫描枪扫描条码之后直接打印输出条码标…

简单的动画函数封装(1)

//创建简单的动画函数封装效果(目标对象&#xff0c;目标位置) function animate(obj,target){var id setInterval(function(){if(obj.offsetLeft > target){clearInterval(id);}else{obj.style.left obj.offsetLeft 5 px;}},30) }可以实现如下效果&#xff1a; <div…

NodeMCU学习(三) : 进入网络世界

阅读原文可以访问我的个人博客 把NodeMCU连接到路由器网络上 NodeMCU可以被配置为Station模式和softAP模式或者Station AP模式&#xff0c;当它被配置为Station模式时&#xff0c;就可以去连接Access Point&#xff08;如路由器&#xff09;。当它被配置为Soft Access Point模…

操作系统原理之进程调度与死锁(三)

一、进程调度的功能与时机 进程调度&#xff1a;进程调度的功能由操作系统的进程调度程序完成 具体任务&#xff1a;按照某种策略和算法从就绪态进程中为当前空闲的CPU选择在其上运行的新进程。 进程调度的时机&#xff1a;进程正常或异常结束、进程阻塞、有更高优先级进程到来…

模拟京东侧边栏

思路&#xff1a; // 1. 获取元素 // 1.1 获取一组li // 1.2 获取一组类名为item的div // 1.3 获取类名为slide的div// 2. 循环遍历给每一个li注册onmouseenter&#xff0c;并且每一个li添加一个index表示索引 // 2.1 循环遍历把所有的li的类名设置为,把所有的item的display设…

ViewPager + TabLayout + Fragment + MediaPlayer的使用

效果图 在gradle里导包 implementation com.android.support:design:28.0.0 activity_main <?xml version"1.0" encoding"utf-8"?><LinearLayout xmlns:android"http://schemas.android.com/apk/res/android" xmlns:tools"http…

vs code打开文件显示的中文乱码

这种情况下&#xff0c;一般是编码格式导致的&#xff0c;操作办法&#xff1a; 鼠标点击之后&#xff0c;上面会弹出这个界面&#xff0c;双击选中 然后从UTF-8换到GB2312&#xff0c;或者自己根据情况&#xff0c;更改编码格式 转载于:https://www.cnblogs.com/132818Creator…

操作系统原理之内存管理(第四章第一部分)

内存管理的⽬标&#xff1a;实现内存分配和回收&#xff0c;提高内存空间的利用率和内存的访问速度 一、存储器的层次结构 寄存器&#xff1a;在CPU内部有一组CPU寄存器&#xff0c;寄存器是cpu直接访问和处理的数据&#xff0c;是一个临时放数据的空间。 高速缓冲区&#xff1…

自写图片遮罩层放大功能jquery插件源代码,photobox.js 1.0版,不兼容IE6

版权声明&#xff1a;本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/u010480479/article/details/27362147 阿嚏~~~ 话说本屌丝没啥开发插件的经验&#xff0c;可是天公不作美&#xff0c;公司须要让我自己开发个图片放大的插件 但公司老大的话&#xff0…

黑白两客进入页面(1)

<div><span>欢</span><span>迎</span><span>来</span><span>到</span><span><strong>黑白两客</strong></span><span>的</span><span>博</span><span>客</sp…

zookeeper学习之原理

一、zookeeper 是什么 Zookeeper是一个分布式协调服务&#xff0c;可用于服务发现&#xff0c;分布式锁&#xff0c;分布式领导选举&#xff0c;配置管理等。这一切的基础&#xff0c;都是Zookeeper提供了一个类似于Linux文件系统的树形结构&#xff08;可认为是轻量级的内存文…

前端js基础智能机器人

<script>var flag true;while(flag) {//获取用户输入信息 var code prompt(你好,我是小娜\n请输入编号或者关键词选择功能,输入Q(q)退出聊天\n1.计算\n2.时间\n3.笑话);switch( code ) {case q:case Q:alert(狠心的抛弃了小娜);flag false;break;case 1:case 计算:var…

2018-2019-2 《Java程序设计》第6周学习总结

20175319 2018-2019-2 《Java程序设计》第6周学习总结 教材学习内容总结 本周学习《Java程序设计》第七章和第十章&#xff1a; 内部类&#xff1a; 1.内部类可以使用外嵌类的成员变量和方法。 2.类体中不可以声明类变量和类方法。 3.内部类仅供外嵌类使用。 4.类声明可以使用s…

Hbase基本原理

一、hbase是什么 HBase 是一种类似于数据库的存储层&#xff0c;也就是说 HBase 适用于结构化的存储。并且 HBase 是一种列式的分布式数据库&#xff0c;是由当年的 Google 公布的 BigTable 的论文而生。HBase 底层依旧依赖 HDFS 来作为其物理存储。 二、hbase的列式存储结构 行…

最终的动画函数封装(2)

<button>点击触发1</button><button>点击触发2</button><div></div><style>*{margin: 0;padding: 0;}div{width: 100px;height: 100px;background-color: red;position: relative;top: 100px;left: 0;}.div1{display: block;width: …