5个实用的JavaScript原生API

这篇具有很好参考价值的文章主要介绍了5个实用的JavaScript原生API。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文带来5个难得一见的JavaScript原生API,为我们的前端开发带来意想不到的便利。

1. getBoundingClientRect()

Element.getBoundingClientRect() 方法返回一个 DOMRect 对象,该对象提供有关元素大小及其相对于视口的位置的信息。

domRect = element.getBoundingClientRect();

返回左、上、右、下、x、y、宽度和高度元素的值。5个实用的JavaScript原生API

例如,获取DOM元素相对于页面左上角的top和left定位距离的值。

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;

2. window.getComputedStyle() 

window.getComputedStyle() 方法返回一个 CSSStyleDeclaration 对象,其类型与样式属性相同,其中包含元素的计算样式。

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

它有两个参数,第一个是计算样式的元素,第二个是伪元素;如果伪元素不存在,则传递 null。

例子:

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

3. once: true

once: true 不是 API,看起来也不像。用于属性配置,有了它,lodash的once就不用了。

const container = document.querySelector<HTMLDivElement>('.container');
container?.addEventListener('click', () => {  console.log('I will only do it once !')}, {  // After configuring once, it will be called at most once  once: true})

4. getModifierState()

如果指定的修改键被按下或激活,则 getModifierState() 方法返回 true。

例如,我们可以使用它来监听用户在打字时是否按下了尺寸切换键,然后根据情况给出适当的提示。

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

5.clipboard.readText()

clipboard,我敢肯定,是一个常用的功能。

要从剪贴板中读取文本,请调用 navigator.clipboard.readText() 并等待返回的 Promise 进行解析。

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()。

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);  }}

总结

以上就是我今天想与你分享的5个关于JavaScript原生的API的知识内容,希望这些内容对你有所帮助。

 文章来源地址https://www.toymoban.com/news/detail-424273.html

到了这里,关于5个实用的JavaScript原生API的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 探索云原生容器编排技术:如Kubernetes如何为大数据处理和AI模型的自动化部署带来便利

    🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏:云原生 ✨文章内容: 🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!🤗 Kubernetes是一个强大的容器编排和自动化部署工具,它为大数据处理和

    2024年02月10日
    浏览(56)
  • 9 个实用的 JavaScript 技巧

    JavaScript 最初是为了给网站添加一些功能而被设计出来的简单语言。但是时至今日,它无处不在,而且还更加复杂了。随着 Web 应用程序越来越复杂,JavaScript 也发展得越来越快。编写简洁、可读且可维护的 JavaScript 程序不再像以前那么容易了。 今天我们总结 9 个实用的 Java

    2024年02月09日
    浏览(32)
  • 【微信小程序-原生开发】实用教程21 - 分包

    当微信小程序主包大小超过2M时,则需要对微信小程序进行分包,方法如下: 在项目根目录下,新建文件夹 package1 (即自定义的分包名为 package1 ) 文件夹 package1 内新建文件夹 pages 将需要放入分包的页面文件,转移到 /package1/pages 文件夹中 删除已转移到分包的页面在 app.js

    2024年02月12日
    浏览(49)
  • 云原生是什么?和Docker、K8s是什么关系?又带来了何种影响?希望这篇文章给自己及大家解点疑惑

    现在容器化和云原生十分火爆,但如果要理解为什么这个技术在近几年突然爆火,身为传统的Springboot和Springcloud体系开发者都有很多困惑,怎么就突然这么火爆了呢?诸如我就产生了以下问题: 传统的springboot或springcloud体系和云原生对比起来有何差别? 传统的spring体系和云

    2024年02月07日
    浏览(38)
  • 【微信小程序-原生开发】实用教程02-添加全局页面配置、页面、底部导航

    开始前,请先完成项目创建,详见 【微信小程序-原生开发】实用教程01-注册登录账号,获取 AppID、下载安装开发工具、创建项目、上传体验 因我们的项目是根据模板创建的,需先清理掉无效的页面代码,具体操作方式如下: 删除 pages 文件夹下的所有文件 用下方代码替换掉

    2023年04月10日
    浏览(43)
  • AI原生安全 亚信安全首个“人工智能安全实用手册”开放阅览

    **我们更应关心AI安全原生。**实施人工智能是一项复杂又长远的任务,任何希望利用大模型的组织在设计之初,都必须将安全打入地基,安全一定是AI技术发展的核心要素。 针对人工智能和大模型面临的威胁与攻击模式,亚信安全基于全球首个人工智能对抗性威胁矩阵,即

    2024年04月14日
    浏览(59)
  • Radash一款JavaScript最新的实用工具库,Lodash的平替!

    一说lodash应该大部分前端同学都知道吧,陪伴我们好多年的JavaScript工具库,但是自从 ES6 出现后就慢慢退出前端人的视线,能ES6写的代码绝对不会用Lodash,也不是完全不用,就是用的少了。 看过Lodash源码的都知道,都是ES5的各种封装,写的很繁琐各种处理,Lodash 源码的学习

    2024年04月28日
    浏览(50)
  • JavaScript编程技巧:将异步方法转换为同步执行的实用方法

    当在JavaScript中处理异步操作时,我们通常会使用 async/await 来简化异步代码的编写和理解。然而,有时候我们可能需要将异步方法转换为同步执行的方法,以满足特定的需求。在本篇博客中,我们将详细讨论如何将异步方法转换为同步执行的方法。 异步方法的主要特点是非阻

    2024年02月08日
    浏览(47)
  • 【Python实用API】语音转文本-whisper

    (1)起因 :最近在油管上下载视频,但是下载后发现两个问题,一是下载的视频无字幕;二是找了半天油管的字幕下载途径,结果发现下载的字幕的提取效果不太好。于是乎发现OpenAI发布的 字幕提取 开源库Whisper可解决我的问题,因此写此博文只是为了记录我学习的过程,

    2024年04月13日
    浏览(35)
  • 原生JavaScript+PHP多图上传实现

    很多场景下需要选择多张图片上传,或者是批量上传以提高效率,多图上传的需求自然就比较多了,本文使用最简单的XMLHttpRequest异步上传图片。 index.html upload.php (请建立一个upload文件夹以存放上传的文件) TANKING

    2024年02月09日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包