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.pswp.cn/news/248210.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248210.shtml
英文地址,請注明出處:http://en.pswp.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 前景回…

JDBC Druid式link

準備工作:導入包------druid-1.0.9.jar src文件夾下放下druid.properties文件 且其中的url和數據庫名要配置完備 import JdbcUtils.JDBCUtils;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.PseudoColumnUsage;import java.sql…

vs strcore.cpp(156) 內存泄漏

在一個靜態函數的線程回調中,一個cstring的對象沒釋放。 遇到這種問題: 1、查看所有的指針對象,有沒有合適的回收 2、查看代碼的malloc,看看有沒有free 3、一點一點注釋代碼,定位位置 轉載于:https://www.cnblogs.com/…

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

webAPI 01-鍵盤事件 知識點-onkeydown事件[掌握] onkeydown: 當鍵盤上的鍵被按下時候觸發的一個事件知識點-onkeyup事件[掌握] onkeyup: 鍵盤上鍵彈起時候觸發的一個事件知識點-onkeypress事件[了解] onkeypress: 當鍵盤上的鍵被按下時候觸發的事件onkeydown 和 onkeypress的區…

【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;可認為是輕量級的內存文…

mysql鎖表查詢和解鎖操作

解除正在死鎖的狀態有兩種方法&#xff1a; 第一種&#xff1a; 1.查詢是否鎖表 show OPEN TABLES where In_use > 0; 2.查詢進程&#xff08;如果您有SUPER權限&#xff0c;您可以看到所有線程。否則&#xff0c;您只能看到您自己的線程&#xff09; show processlist 3.殺…