javascript 精确获取样式属性(下)

yizhihongxing

JavaScript 精确获取样式属性(下)

在上一篇文章中,我们介绍了如何使用 getComputedStyle 方法获取元素的计算样式,但是这个方法有一些局限性,本篇文章会继续探讨如何在 JavaScript 中精确获取元素的样式属性。

获取 transform 中的具体属性

在 CSS3 中,transform 属性可以改变元素的形状、大小和位置等,它有很多子属性,如 translaterotatescale 等等。我们在获取元素的 transform 属性时,有时候需要具体获取其中的某一个子属性。此时,我们可以使用 getComputedStyle 方法和字符串的 match() 方法来匹配我们需要获取的属性。

示例代码:

<div id="demo" style="transform: translate(20px, 30px) scale(2) rotate(45deg)"></div>
let demo = document.getElementById('demo')
let transform = getComputedStyle(demo).transform
let matches = transform.match(/(\d+)/g)
let translateX = parseInt(matches[0]) // 20
let translateY = parseInt(matches[1]) // 30
let scale = parseInt(matches[2]) // 2
let rotate = parseInt(matches[3]) // 45

获取伪元素的样式

有时候,我们需要获取伪元素的样式。比如说,我们想要获取 ::before 元素的 content 属性,我们可能会尝试去使用 getComputedStyle 方法,但是这个方法只能获取到元素本身的计算样式,而无法获取到伪元素的样式。此时,我们可以使用 Window.getComputedStyle() 方法和 Document.createRange() 方法来获取伪元素的样式。

示例代码:

<div id="demo">
  <p>这是一个段落</p>
</div>

<style>
  #demo::before {
    content: 'before文本';
    color: red;
  }
</style>
let range = document.createRange()
range.selectNode(document.getElementById('demo'))

let beforeElement = range.createContextualFragment('<span></span>')
beforeElement.classList.add('demo-before')
document.getElementById('demo').appendChild(beforeElement)

let before = window.getComputedStyle(document.querySelector('.demo-before'), ':before')
console.log(before.content) // "before文本"
console.log(before.color) // "rgb(255, 0, 0)"

扩展阅读:

JavaScript 精确获取样式属性(上)

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript 精确获取样式属性(下) - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JS实现常用导航鼠标下经过下方横线自动跟随效果

    下面我将详细讲解“JS实现常用导航鼠标下经过下方横线自动跟随效果”的完整攻略。本攻略将分以下几步实现: 搜集导航标签及下方横线元素; 获取每个导航标签的位置信息,计算出下方横线的初始位置信息; 监听鼠标移入导航标签事件,将下方横线移动到当前导航标签下方; 监听鼠标移出导航标签事件,将下方横线移回初始位置。 在说明的过程中将涉及两个示例以更好的展示效果。 1.…

    css 2023年6月10日
    00
  • JavaScript仿微信打飞机游戏

    JavaScript仿微信打飞机游戏是一款常见的前端小游戏,以下是实现步骤及示例说明: 1. 准备工作 1.1 引入游戏所需的资源 游戏需要的资源包括背景图片、飞机图片、子弹图片、敌机图片等。可以在游戏开始前通过HTML对资源进行预加载。 <body onload="gameStart()"> <div id=&quot…

    css 2023年6月10日
    00
  • JavaScript while循环

    JavaScript中的while循环结构是一种简单的迭代结构,用于重复执行一组语句,直到某个条件变成假为止。该循环结构由一个布尔表达式和一组代码块组成,只要布尔表达式的结果为true,代码块就会一遍又一遍地执行。 while循环的语法结构如下: while (condition) { // 代码块 } 这里,condition是在循环每次迭代前被计算的布尔…

    Web开发基础 2023年3月30日
    00
  • 初探CSS3中的calc()功能

    初探CSS3中的calc()功能 CSS3中提供了calc()函数,它可以帮助我们在CSS中执行简单的算术运算。这个功能让我们可以轻松地计算出元素的宽度、高度或偏移量,使CSS写作更加灵活。 语法 calc()函数可以包含任何长度、频率、角度、时间或数字值,支持四种基本算术运算符(加、减、乘、除)和括号。 计算长度 当我们需要计算元素的宽度或高度时,可以使用…

    css 2023年6月9日
    00
  • Selenium 4.2.0 标签定位8种方法详解

    Selenium 4.2.0标签定位8种方法详解 在Selenium Webdriver自动化测试中,定位元素是最为基础的操作之一。标签定位是一种常用的元素定位方式,可以根据元素的标签(如id、class、name等)来定位元素。 在Selenium 4.2.0版本中提供了8种不同的标签定位方式,下面详细介绍每一种方法。 1. ID driver.findE…

    css 2023年6月10日
    00
  • css控制div鼠标放上去变色

    下面我将详细讲解如何使用CSS来控制鼠标悬浮在<div>元素上时进行背景色变换的步骤和方法。 1. 选择器 首先,我们需要选择要控制的<div>元素。可以使用CSS选择器来选择要控制的元素。常用的选择器有: 标签选择器(tag selector):通过HTML标签名选中所有该标签的元素。如:div。 类选择器(class select…

    css 2023年6月10日
    00
  • js 获取元素的具体样式信息getcss(实例讲解)

    JS 获取元素具体样式信息 在开发网页的过程中,我们通常需要获取元素的具体样式信息。JS 提供了一些 API 用于获取元素的样式信息。本篇攻略将详细讲解如何使用 JS 获取元素的具体样式信息的方法。 getComputedStyle() getComputedStyle() 方法是获取元素的计算后样式的属性值,包括它的样式表层叠和任何显式的设置,返回一个 C…

    css 2023年6月10日
    00
  • 举例详解CSS中的text-shadow文字阴影效果使用

    当需要让文本在视觉上有一些立体感、深度感时,你可以尝试给文本添加阴影效果。而CSS中的text-shadow属性能够很好地实现这一效果。 一、text-shadow的基本用法 text-shadow属性主要用于设置文本的阴影效果,其基本语法如下: text-shadow: h-shadow v-shadow blur-radius color; 其中,各参数…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部