JavaWeb-js(4)

js事件

在前端頁面中,js程序大多數是由事件來驅動的,當觸發某些事件的時候,可以使用js負責響應。

js事件由三部分組成:?
?? ?事件源——》指的是被觸發的對象;?
?? ?事件類型——》如何觸發的事件,如:鼠標單擊、雙擊、鍵盤操作等;?
?? ?事件處理程序——》觸發事件以后,使用一個函數來處理。?

因此事件步驟:?
?? ?1. 獲取事件源對象;?
?? ?2. 注冊事件;
?? ?3. 添加處理程序。?

事件類型

?

?

?

事件的注冊方式

1.靜態注冊 在html標簽中注冊 (如果元素是通過js創建的 ,就沒法這樣注冊)

2.動態注冊 在js代碼中注冊

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box{width: 200px;height: 200px;background-color: aqua;}</style></head><body><!-- onclick 單擊事件 --><button onclick="clickEvent()" ondblclick="dblclickEvent()">我是按鈕</button><input id="phone-input" onfocus="focusEvent()" onblur="blurEvent()"><span id="check-text" style="display: none;">格式正確</span><div class="box" onmouseover="mouseoverEvent()"onmouseout="mouseoutEvent()"></div></body>
<script>//入口函數//可以方式js代碼 先于html代碼加載 導致 元素獲取失敗的問題window.onload = function () {console.log('加載完成了')console.log(document.querySelector('button'))}function clickEvent() {console.log('單擊')}function dblclickEvent() {console.log('雙擊')}function focusEvent() {console.log('獲取到焦點')console.log('請輸入手機號')}function blurEvent() {//當失去焦點的時候驗證手機號正確性console.log('開始驗證手機號');let phoneInput = document.getElementById('phone-input')let phone = phoneInput.valuelet text = document.getElementById('check-text');text.style.display = 'inline';//驗證手機號let reg = /^1[3456789]\d{9}$/if (reg.test(phone)) {text.innerText = '格式正確'text.style.color = '#00acff'} else {text.innerText = '格式有誤'text.style.color = 'red'}}function mouseoverEvent(){console.log('鼠標劃入')}function mouseoutEvent(){console.log('鼠標劃出')}
</script></html>
 // false代表 事件冒泡 從下往上 默認的// true代表 事件捕獲, 從上往下 document.getElementById('one').addEventListener('click', function () {console.log('one被點擊了')},false)document.getElementById('two').addEventListener('click', function () {console.log('two被點擊了')},false)document.getElementById('three').addEventListener('click', function () {console.log('three被點擊了')},false)

option

false的話 就是事件冒泡了 從子元素到父元素
true的話 ??就是事件捕獲 從父到子!

true 的觸發順序總是在 false 之前;
?如果多個均為 true,則外層的觸發先于內層;
?如果多個均為 false,則內層的觸發先于外層。

Event事件對象

事件對象e,是event的簡稱。當一個事件被觸發時候,這個事件的有關數據都會被存儲在一個事件對象e里面,這個對象e有許多固定方法提供給我們查看里面各種數據。?

Bom操作

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>body{height: 3000px;}.top-layout{width: 100%;height: 80px;background-color: blue;display: none;position: fixed;top: 0;}.goTop-btn{width: 50px;height: 50px;background-color: blue;border-radius: 50%;position: fixed;right: 100px;bottom: 100px;display: none;}</style>
</head>
<body><div class="top-layout"></div><div class="goTop-btn"></div></body><script>/*bom代表操作瀏覽器頁面的放大縮小 , 頁面的滾動, 瀏覽器加載情況*///監聽瀏覽器加載完畢 方式1window.onload = function(){}//方式2window.addEventListener('load',function(){})//監聽瀏覽器大小的改變window.addEventListener('resize',function(e){// console.log(window.innerWidth,window.innerHeight)})//獲取 頂部欄目 和 按鈕let topBtn= document.querySelector('.goTop-btn')let topLayout= document.querySelector('.top-layout');//監聽瀏覽器滾動條滾動window.addEventListener('scroll',function(e){//獲取當前滾動條的滑動距離let top = document.documentElement.scrollTop;if(top>1000){topLayout.style.display='block'topBtn.style.display='block'}else{topLayout.style.display='none'topBtn.style.display='none'}})//點擊按鈕 回到頂部topBtn.addEventListener('click',function(){window.scrollTo({top:0,behavior:"smooth"})})
</script>
</html>

定時器

  //定時器 1 setTimeout// function 延遲執行的函數,延遲的時間 let timeOut  =   setTimeout(function(){console.log(123)// 清除定時器// clearTimeout(this);},2000);function clearTime(){clearTimeout(timeOut);}
 // 循環執行的定時器:輪播圖,倒計時,循環請求let setTime=  setInterval(function(){console.log("我被執行了")},1000)function clearTime(){clearInterval(setTime)}

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43291.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43291.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43291.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

釣魚網站制作-克隆163企業郵箱

這里克隆163企業郵箱比較費勁&#xff0c;和之前的還不一樣&#xff0c;這個克隆的目錄比較多&#xff0c;發現好多工具都克隆不全&#xff0c;要不就是缺少圖片要不就是缺少功能 首先效果 可以看到成功記錄賬戶密碼&#xff0c;接下來再來偽裝到域名 這里克隆網站使用神器 …

stm32使用單通道規則組ADC

Driver_ADC.c 如果需要關閉adc轉換&#xff0c;只需要設置CNT&#xff0c;將其置為0&#xff0c;后面再轉換一次就停止了。 #include "Driver_ADC.h"void Driver_ADC1_Init(void) {/* 1. 時鐘配置 *//* 1.1 adc時鐘 */RCC->APB2ENR | RCC_APB2ENR_ADC1EN;RCC-&g…

bev 之 fastBEV

前面我們提到bev 之 LSS, 知道視覺的BEV方案的主要痛點在于: 1、depth 的預測 2、圖像特征到BEV特征之間的視圖變換消耗大量計算 LSS 為什么需要D維深度 占據大量消耗的原因是LSS 對每個圖像特征點引入深度D&#xff0c;即假設每個像素上存在可能的D維深度。也就是假設不同像…

ubuntu18虛擬機克隆后不能上網和磁盤損壞問題

小學期直接給學弟學妹們自己配好的克隆的虛擬機&#xff0c;結果出現了這兩種問題&#xff0c;參考了網上好多資料&#xff0c;太多了忘了存了&#xff0c;花了好久的時間才解決&#xff0c;這里記錄一下。 磁盤損壞問題&#xff1a; 網絡無法連同問題&#xff0c;ip addr發現…

特征融合篇 | YOLOv10改進之在Neck網絡中添加加權雙向特征金字塔BiFPN

前言&#xff1a;Hello大家好&#xff0c;我是小哥談。在計算機視覺任務中&#xff0c;特征金字塔網絡&#xff08;FPN&#xff09;是一種常用的方法&#xff0c;它通過構建不同尺度的特征圖來捕獲不同尺度的目標。然而&#xff0c;傳統的FPN存在一些缺點&#xff0c;如特征融合…

解鎖Postman的API參數化:動態請求的秘訣

&#x1f511; 解鎖Postman的API參數化&#xff1a;動態請求的秘訣 在API測試的世界里&#xff0c;參數化是構建靈活、可重用請求的關鍵。Postman作為API開發和測試的領軍工具&#xff0c;提供了強大的參數化功能&#xff0c;允許用戶創建動態、個性化的API請求。本文將深入探…

計算機網絡--tcpdump和iptable設置、內核參數優化策略

tcpdump工具 tcpdump命令&#xff1a; 選項字段&#xff1a; 過濾表達式&#xff1a; 實用命令&#xff1a; TCP三次握手抓包命令&#xff1a; #客戶端執行tcpdump 抓取數據包 tcpdump -i etho tcp and host 192.168.12.36 and port 80 -W timeout.pcapnetstat命令 netst…

7.10飛書一面面經

問題描述 Redis為什么快&#xff1f; 這個問題我遇到過&#xff0c;但是沒有好好總結&#xff0c;導致答得很亂。 答&#xff1a;Redis基于內存操作&#xff1a; 傳統的磁盤文件操作相比減少了IO&#xff0c;提高了操作的速度。 Redis高效的數據結構&#xff1a;Redis專門設計…

java算法day11

二叉樹的遞歸遍歷二叉樹的非遞歸遍歷寫法層序遍歷 遞歸怎么寫&#xff1f; 按照三要素可以保證寫出正確的遞歸算法&#xff1a; 1.確定遞歸函數的參數和返回值&#xff1a; 確定哪些參數是遞歸的過程中需要處理的&#xff0c;那么就在遞歸函數里加上這個參數&#xff0c; 并且…

第二證券:銷量暴跌95%,這一巨頭市值蒸發超3000億元!

在多重要素刺激下&#xff0c;PCB工作站上風口。 波音銷量墮入停滯 6月僅售出3架客機 據央視財經&#xff0c;在一系列丑聞的影響下&#xff0c;波音公司本年出售遭到明顯沖擊。當地時間9日&#xff0c;波音發布的數據閃現&#xff0c;在以前一個月&#xff0c;該公司僅賣出…

關于Java面向對象的一些問題(2024.7.10)

package question20240710;public class Question {/*1. 什么叫做多態&#xff0c;條件是什么&#xff1f;2. 使用多態特性&#xff0c;帶來了什么樣的好處&#xff1f;3. 使用多態特性&#xff0c;注意什么樣的弊端&#xff1f;4. 關于多態的弊端我們如何解決&#xff1f;5. 在…

excel有條件提取單元格特定文本(篩選純文字的單元格或含有數字的單元格、單元格提取不同的文本長度)

實際工作背景 需要對導出的銀行流水中的數十個村以及對應的村小組進行分組統計&#xff0c;但是初始的表格中村和小組是混在一起的&#xff0c;如下圖所示&#xff1a; 目的&#xff1a;將大樹村和大樹村小組名稱分別篩選出來 1.觀察發現&#xff0c;大樹村小組的單元格第4…

代碼隨想錄算法訓練營第四十九天| 647. 回文子串、 516.最長回文子序列

647. 回文子串 題目鏈接&#xff1a;647. 回文子串 文檔講解&#xff1a;代碼隨想錄 狀態&#xff1a;不會 思路&#xff1a; dp[i][j] 表示字符串 s 從索引 i 到索引 j 這一段子串是否為回文子串。 當s[i]與s[j]不相等&#xff0c;那沒啥好說的了&#xff0c;dp[i][j]一定是fa…

構建與操作共享棧

歸納編程學習的感悟, 記錄奮斗路上的點滴, 希望能幫到一樣刻苦的你! 如有不足歡迎指正! 共同學習交流! ??歡迎各位→點贊 ??+ 收藏? + 留言???既然選擇了遠方,當不負青春,砥礪前行! 共享棧是一種優化的棧實現方式,它允許兩個或多個棧共享同一段連續的內存空間…

Tkinter 部件使用教程

tkinter學習教程 C語言中文網Tkinter教程 菜鳥編程-Python GUI編程(Tkinter) tkinter基本組件 messagebox 【tkinter標準對話框】messagebox&#xff1a;信息傳遞&#xff0c;消息對話框&#xff01; bind bind事件信息 listbox Tkinter 組件詳解之Listbox radiobutton Tkinter…

數據結構——Trie

題目&#xff1a; 維護一個字符串集合&#xff0c;支持兩種操作&#xff1a; I x 向集合中插入一個字符串 x&#x1d465;&#xff1b;Q x 詢問一個字符串在集合中出現了多少次。 共有 N&#x1d441; 個操作&#xff0c;所有輸入的字符串總長度不超過 10^5&#xff0c;字符串僅…

【分布式系統】Ceph對象存儲系統之RGW接口

目錄 一.對象存儲概述 二.創建RGW接口 1.在管理節點創建一個 RGW 守護進程 2.創建成功后默認情況下會自動創建一系列用于 RGW 的存儲池 3.默認情況下 RGW 監聽 7480 號端口 4.開啟 httphttps &#xff0c;更改監聽端口 5.在 rgw 節點上查看端口 6.在客戶端訪問驗證 7.…

Mybatis study

一、Mybatis Plus mybatis-plus指定實體類字段不查詢 加標簽 TableField(exist false) Spring Data Jpa學習 干我們這行&#xff0c;啥時候懈怠&#xff0c;就意味著長進的停止&#xff0c;長進的停止就意味著被淘汰&#xff0c;只能往前沖&#xff0c;直到鳳凰涅槃的一天&am…

【onnx】onnxruntime-gpu無法使用問題

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 onnxruntime-gpu無法使用 1. 正文 CUDA版本&#xff1a;12.1 nvcc -VCUDNN的版本 cat /usr/include/cudnn_version.h |grep CUDNN_MAJOR -A 2說明: 可…

C#中的Dictionary

Dictionary<TKey, TValue> 是一個泛型集合&#xff0c;它存儲鍵值對&#xff08;key-value pairs&#xff09;&#xff0c;其中每個鍵&#xff08;key&#xff09;都是唯一的。這個集合類提供了快速的數據插入和檢索功能&#xff0c;因為它是基于哈希表實現的。 注意 ke…