JavaScript基礎回顧知識點記錄6-操作元素樣式和事件對象(介紹基本使用)

来源:https://www.cnblogs.com/study-hmz/archive/2022/08/23/16617197.html
-Advertisement-
Play Games

js 中 操作元素樣式 通過js修改元素內聯樣式(設置和讀取的都是內聯樣式) 獲取當前元素顯示的樣式 <html> <head> <meta charset="utf-8"> <title></title> </head> <style type="text/css"> #box1 { width: ...


  • js 中 操作元素樣式
    • 通過js修改元素內聯樣式(設置和讀取的都是內聯樣式)
    • 獲取當前元素顯示的樣式
      <html>
      	<head>
      		<meta charset="utf-8">
      		<title></title>
      	</head>
      	<style type="text/css">
      		#box1 {
      			width: 200px;
      			height: 200px;
      			background-color: aquamarine;
      		}
      	</style>
      	<body>
      		<button type="button" id="btn1">點我下1</button>
      		<button type="button" id="btn2">點我下2</button>
      		<button type="button" id="btn3">點我下3</button>
      		<br><br>
      		<div id="box1">
      
      		</div>
      	</body>
      	<script type="text/javascript">
      		window.onload = function() {
      			var btn01 = document.getElementById("btn1");
      			var box01 = document.getElementById("box1");
      			btn01.onclick = function() {
      				/*
      				通過js修改元素內聯樣式:  
      					語法:  元素對象.style.樣式名 = 樣式值
      					樣式名: background-color 是不符合的, 需要改為駝峰命名: backgroundColor
      					註意: 這種方法設置和讀取的都是內聯樣式
      				*/
      				box01.style.width = "400px";
      				box01.style.height = "400px";
      				box01.style.backgroundColor = "red";
      			}
      			/*
      			獲取當前元素顯示的樣式:
      				語法: 元素對象.currentStyle.樣式名  。 此方法只有IE瀏覽器支持
      				其他瀏覽器獲取樣式: getComputedStyle(元素對象,null).樣式名 ;
      								
      			*/
      			var btn2 = document.getElementById("btn2");
      			btn2.onclick = function() {
      				alert(box01.currentStyle.width);
      			}
      
      			var btn3 = document.getElementById("btn3");
      			btn3.onclick = function() {
      				var style_obj = getComputedStyle(box1, null);
      				alert(style_obj.width);
      			}
      		}
      	</script>
      </html>
      
  • js 中 事件對象
    • 當事件的響應函數被觸發時,瀏覽器每次都會將一個事件對象作為實參傳遞進響應函數
    • 在這個事件對象中封裝了當前事件相關的一切信息(滑鼠的坐標、鍵盤那個鍵被按下,滑鼠滾動的方向等)
    • 註意: 在ie8及以下瀏覽器中,響應函數觸發時,不會傳遞事件對象。 事件對象是作為window對象的屬性來存儲的。
    • 以一個滑鼠移入某個區域後顯示x、y坐標為例子
      <html>
      	<head>
      		<meta charset="utf-8">
      		<title></title>
      	</head>
      	<style type="text/css">
      		#areaDiv {
      			width: 200px;
      			height: 100px;
      			border: black 3px solid;
      			margin-bottom: 10px;
      		}
      
      		#showMsg {
      			width: 200px;
      			height: 30px;
      			border: black 3px solid;
      		}
      	</style>
      	<body>
      		<div id="areaDiv"></div>
      		<div id="showMsg"></div>
      	</body>
      	<script type="text/javascript">
      		var areaDiv = document.getElementById('areaDiv');
      		var showMsg = document.getElementById('showMsg');
      
      		/*
      			 onmousemove 事件: 滑鼠在元素中移動時觸發
      			 事件對象: 當事件的響應函數被觸發時,瀏覽器每次都會將一個事件對象作為實參傳遞進響應函數
      				在這個事件對象中封裝了當前事件相關的一切信息(滑鼠的坐標、鍵盤那個鍵被按下,滑鼠滾動的方向等)
      			 note: 在ie8及以下瀏覽器中,響應函數觸發時,不會傳遞事件對象。 事件對象是作為window對象的屬性來存儲的。
      			 
      		*/
      
      		areaDiv.onmousemove = function(e) {
      			// 解決事件對象相容性問題: 兩種寫法:
      			// if (!e) {
      			// 	e = window.e;
      			// }
      			e = e || window.e;
      			showMsg.innerHTML = 'x坐標:' + e.clientX + ',y坐標:' + e.clientY;
      		}
      
      		areaDiv.onmouseout = function() {
      			showMsg.innerHTML = '';
      		}
      	</script>
      </html>
      
  • 滑鼠移動事件,實現某個div跟隨滑鼠移動(複製代碼運行直接看效果更直觀)
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title></title>
    	</head>
    	<style type="text/css">
    		#box {
    			position: absolute;
    			width: 50px;
    			height: 50px;
    			background-color: #7FFFD4;
    		}
    	</style>
    	<body style="height: 1200px;">
    		<div id="box">
    
    		</div>
    	</body>
    	<script type="text/javascript">
    		/*
    			clientX 和 clientY 是獲取當前可見頁視窗的坐標
    			pageX 和 pageY 是獲取相對當前頁面的坐標 (當頁面可以往下滾動時,需要使用這個獲取坐標),但是在IE8中不支持
    		*/
    		document.onmousemove = function(e) {
    			/*
    				獲取滾動條高度
    				IE和火狐不識別滾動條屬於body的, 谷歌、edge可以識別。
    				IE和火狐認為滾動條屬於html的。documentElement,但是edge識別不了html的滾動條
    			*/
    			var st = document.body.scrollTop || document.documentElement.scrollTop;
    			e = e || window.e;
    			var box = document.getElementById('box');
    			box.style.left = e.clientX + 'px';
    			box.style.top = e.clientY + st + 'px';
    		}
    	</script>
    </html>
    

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 資料庫如何在 Kubernetes 上運行?如果可以,哪些類型的資料庫和數據最適合使用 K8s?讓我們一起來看看。 Kubernetes 是用於自動部署、擴展和管理容器化應用程式的一個開源的容器編排解決方案。儘管 Kubernetes 最初是為無狀態應用程式設計的,但隨著有狀態工作負載的日益流行,K ...
  • 註:本文分析內容基於 MySQL 8.0 版本 文章開始前先複習一下官方文檔關於 DECIMAL 類型的一些介紹: The declaration syntax for a DECIMAL column is DECIMAL(M,D). The ranges of values for the ar ...
  • 眾所周知MySQL聯合索引遵循最左首碼匹配原則,在少數情況下也會不遵循(有興趣,可以翻一下上篇文章)。 創建聯合索引的時候,建議優先把區分度高的欄位放在第一列。 至於怎麼統計區分度,可以按照下麵這種方式。 ...
  • 我們又把近期的一些社區熱點問題做了一次彙總,同步給所有關註StoneDB的同學們~ 提問Qustions & 解答Answers Q:現在StoneDB單機什麼硬體規格部署能分析100TB級別的數據? A:像這麼大的存儲量,系統一般是分析類的,存儲可以是單塊盤容量是7.6TB的SSD,CPU核數和主 ...
  • 總體來說 性能提升 重寫了虛擬DOM的實現(跳過靜態節點,只處理動態節點) update性能提高1.3~2倍 服務端渲染速度提高了2~3倍 樹搖(Tree shaking) 可以將無用模塊“剪輯”掉,僅打包需要的 原理: ES6 Module引入進行靜態分析,故而編譯的時候正確判斷到底載入了那些模塊 ...
  • 5 基本語句 5.1 if 語句 if 語句常用語法如下所示: if (condition) { statement1; } else { statement2; } 或 if (condition) { statement1; } else if { statement2; } else if { ...
  • @(目錄) 點擊打開視頻講解面試技巧+面試全過程 一、HTML 1、語義話的目的是什麼? 語義化的主要目的可以概括為用正確的標簽做正確的事 HTMl語義化可以讓頁面的內容結構化,以便於瀏覽器解析和搜索引擎解析, 並且提高了代碼的可讀性便於代碼維護, 2、HTML5新增元素 Canvas繪圖以及SVG ...
  • 本文是深入淺出 ahooks 源碼系列文章的第十二篇,該系列已整理成文檔-地址。覺得還不錯,給個 star 支持一下哈,Thanks。 今天我們來聊聊 ahooks 中那些可以幫助我們更優雅管理我們 state(狀態)的那些 hook。一些比較特殊的,比如 cookie/localStorage/s ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...