日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

JS小知識,分享五個不常用但又很重要的原生API

來源: 責編: 時間:2023-12-19 09:35:16 271觀看
導讀getBoundingClientRect()getBoundingClientRect()是JavaScript中的一個函數,它返回一個 DOMRect 矩形對象,該對象表示元素在視口中的位置。這個矩形對象包含了元素的左,上,右和下邊界,以及寬度和高度。domRect = element.g

4YY28資訊網——每日最新資訊28at.com

getBoundingClientRect()

getBoundingClientRect()是JavaScript中的一個函數,它返回一個 DOMRect 矩形對象,該對象表示元素在視口中的位置。這個矩形對象包含了元素的左,上,右和下邊界,以及寬度和高度。4YY28資訊網——每日最新資訊28at.com

domRect = element.getBoundingClientRect();

4YY28資訊網——每日最新資訊28at.com

注意:getBoundingClientRect()是基于視口的,所以坐標是相對于當前視口的。一些瀏覽器的實現會四舍五入返回的數值,如果精確度要求高可以使用Math.round()解決。4YY28資訊網——每日最新資訊28at.com

例如,獲取DOM元素相對于頁面左上角的top和left定位距離的值。4YY28資訊網——每日最新資訊28at.com

const h3 = document.querySelector("h3");const rect = h3.getBoundingClientRect();const topElement = document.documentElement;const positionTop = topElement.scrollTop + rect.top;const positionLeft = topElement.scrollLeft + rect.left;

window.getComputedStyle()

window.getComputedStyle()是JavaScript中的一個函數,它可以獲取一個元素的計算后的樣式。返回的是一個CSSStyleDeclaration對象,可以使用它來讀取元素的樣式信息。4YY28資訊網——每日最新資訊28at.com

document.defaultView.getComputedStyle(element, [pseudo-element])//或window.getComputedStyle(element, [pseudo-element])

它有兩個參數,第一個是計算樣式的元素,第二個是偽元素;如果偽元素不存在,則傳遞 null。4YY28資訊網——每日最新資訊28at.com

<!DOCTYPE html><html>  <head>    <style type="text/css">        #root {            background-color: pink;            width: 100px;            height: 200px;        }        #root::after {            content: 'Haskell';            display: table;            clear: both;        }    </style></head><body>    <div id="root" style="background-color: rgb(135, 206, 235);"></div></body><script>    function getStyleByAttr(node, name) {        return window.getComputedStyle(node, null)[name]    }    const node = document.getElementById('root')    // rgb(135, 206, 235)    console.log(getStyleByAttr(node, 'backgroundColor'))    // 100px    console.log(getStyleByAttr(node, 'width'))    // 200px    console.log(getStyleByAttr(node, 'height'))    // table    console.log(window.getComputedStyle(node, '::after').display)    // Haskell    console.log(window.getComputedStyle(node, '::after').content)</script></html>

once: true

once: true 不是 API,看起來也不像。用于屬性配置,有了它,lodash的once就不用了。4YY28資訊網——每日最新資訊28at.com

"once: true" 是一種 JavaScript 中的事件監聽器選項。4YY28資訊網——每日最新資訊28at.com

當在元素上綁定事件監聽器時,可以為其傳遞一些配置選項。其中之一就是 "once: true",它表示這個事件監聽器只會觸發一次,之后就會被自動移除。4YY28資訊網——每日最新資訊28at.com

這種方式可以避免在后續操作中重復觸發已經不需要的事件監聽器。4YY28資訊網——每日最新資訊28at.com

舉個例子:4YY28資訊網——每日最新資訊28at.com

const button = document.querySelector('button');button.addEventListener('click', handleClick, { once: true });function handleClick(event) {  console.log('Button was clicked.');}

第一次點擊按鈕時,會在控制臺中打印 "Button was clicked.",之后再點擊按鈕將不會有任何反應。4YY28資訊網——每日最新資訊28at.com

這個特性是在 DOM4 規范中引入的,并在現代瀏覽器中被廣泛支持。4YY28資訊網——每日最新資訊28at.com

注意:在使用這種方式時,需要注意的是,一旦事件監聽器被移除,就不能再次觸發。如果需要多次觸發,就需要重新綁定事件監聽器。4YY28資訊網——每日最新資訊28at.com

getModifierState()

JavaScript 中的 getModifierState() 方法可用于檢查特定的修飾鍵(如 Alt、Ctrl、CapsLock 或 Shift)是否當前被按下。它是 Event 對象的一個方法。4YY28資訊網——每日最新資訊28at.com

示例代碼:4YY28資訊網——每日最新資訊28at.com

<input type="text" size="40" onkeydown="myFunction(event)"><p id="demo"></p><script>    function myFunction(event) {        var x = event.getModifierState("CapsLock");        document.getElementById("demo").innerHTML = "Caps Lock: " + x;    }</script>

clipboard.readText()

剪貼板,我敢肯定,是一個常用的功能。4YY28資訊網——每日最新資訊28at.com

要從剪貼板中讀取文本,請調用navigator.clipboard.readText() 并等待返回的 Promise 進行解析。4YY28資訊網——每日最新資訊28at.com

async function getClipboardContents() {  try {    const text = await navigator.clipboard.readText();    console.log('Pasted content: ', text);  } catch (err) {    console.error('Failed to read clipboard contents: ', err);  }}

要將文本復制到剪貼板,只需調用 writeText()。4YY28資訊網——每日最新資訊28at.com

async function copyPageUrl() {  try {    await navigator.clipboard.writeText(location.href);    console.log('Page URL copied to clipboard');  } catch (err) {    console.error('Failed to copy: ', err);  }}

結束語

今天的分享就到這里,希望對你有所幫助。4YY28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-49475-0.htmlJS小知識,分享五個不常用但又很重要的原生API

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 又老性能又差,為什么好多公司依然選擇 RabbitMQ?

下一篇: Python實現定時任務的利器Apscheduler

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 库尔勒市| 铜梁县| 四会市| 涿州市| 张家川| 罗田县| 大新县| 石台县| 永丰县| 买车| 衡阳县| 威宁| 巴东县| 晋江市| 清镇市| 西城区| 海丰县| 五家渠市| 永兴县| 包头市| 分宜县| 宜城市| 会宁县| 无锡市| 宝山区| 丁青县| 岫岩| 乌拉特后旗| 卢湾区| 莎车县| 正宁县| 梧州市| 宣武区| 隆昌县| 郴州市| 方城县| 巴彦县| 青铜峡市| 临湘市| 红河县| 巍山|