javascript DOM 设置样式

news2024/11/19 19:33:23
No.内容链接
1Openlayers 【入门教程】 - 【源代码+示例300+】
2Leaflet 【入门教程】 - 【源代码+图文示例 150+】
3Cesium 【入门教程】 - 【源代码+图文示例200+】
4MapboxGL【入门教程】 - 【源代码+图文示例150+】
5前端就业宝典 【面试题+详细答案 1000+】

在这里插入图片描述

文章目录

    • 一、直接操作内联样式
    • 二、通过类名改变样式
    • 三、使用`getComputedStyle`读取计算后的样式
    • 四、注意事项


在JavaScript中操作DOM样式是实现动态页面效果和交互的关键。你可以直接修改元素的内联样式,也可以通过改变类名来应用CSS类样式。以下是详细的说明和示例代码。

一、直接操作内联样式

通过元素的style属性,你可以直接读取或设置内联样式属性。注意,这种方式会覆盖外部CSS样式。

示例代码

// 获取并修改样式
let element = document.getElementById("myElement");
element.style.color = "red"; // 改变颜色
element.style.fontSize = "20px"; // 改变字体大小

// 读取样式
let color = element.style.color;
let fontSize = element.style.fontSize;
console.log(color, fontSize);

二、通过类名改变样式

另一种更推荐的方式是通过添加、移除CSS类名来改变元素样式,这样可以更好地利用CSS的层叠加重载机制和缓存。

示例代码

HTML部分:

<style>
.active {
    color: red;
    font-size: 20px;
}
</style>

JavaScript部分:

let element = document.getElementById("myElement");

// 添加类名
element.classList.add("active");

// 移除类名
element.classList.remove("active");

// 切换类名(如果存在则移除,否则添加)
element.classList.toggle("active");

// 检查是否有某类名
let isActive = element.classList.contains("active");

三、使用getComputedStyle读取计算后的样式

有时,你需要获取经过CSS计算后的样式值,而不是直接的内联样式,这时可以使用window.getComputedStyle

示例代码

let element = document.getElementById("myElement");
let computedStyle = window.getComputedStyle(element);

let color = computedStyle.color;
let fontSize = computedStyle.fontSize;
console.log(color, fontSize);

四、注意事项

  • 性能:频繁修改内联样式可能影响性能,尽量使用CSS类名来改变样式。
  • 优先级:直接修改style属性的样式优先级最高,会覆盖外部CSS和内嵌入式样式。
  • 兼容性classList方法在IE10+被支持,对于旧浏览器,需要考虑使用className并手动管理类的添加和移除。
  • 代码可维护性:使用CSS类管理样式,可以使样式和逻辑分离,提高代码的可维护性。

通过上述方法,你可以灵活地控制和管理页面元素的样式,实现丰富的动态效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1720568.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mac vm虚拟机激活版:VMware Fusion Pro for Mac支持Monterey 1

相信之前使用过Win版系统的朋友们对这款VMware Fusion Pro for Mac应该都不会陌生&#xff0c;这款软件以其强大的功能和适配能力广受用户的好评&#xff0c;在Mac端也同样是一款最受用户欢迎之一的虚拟机软件&#xff0c;VM虚拟机mac版可以让您能够轻松的在Apple的macOS和Mac的…

单片机原理及应用复习

单片机原理及应用 第二章 在AT89S52单片机中&#xff0c;如果采用6MHz晶振&#xff0c;一个机器周期为 2us 。 时钟周期Tocs1focs 机器周期 Tcy12focs 指令周期&#xff1a;一条指令所用的时间&#xff0c;单字和双字节指令一般为单机器周期和双机器周期。 AT89S5…

代码审计(工具Fortify 、Seay审计系统安装及漏洞验证)

源代码审计 代码安全测试简介 代码安全测试是从安全的角度对代码进行的安全测试评估。&#xff08;白盒测试&#xff1b;可看到源代码&#xff09; 结合丰富的安全知识、编程经验、测试技术&#xff0c;利用静态分析和人工审核的方法寻找代码在架构和编码上的安全缺陷&#xf…

EitbaseEX香港业务开展,提升用户友好交易体验

在全球范围内备受瞩目的加密货币交易平台Coinbase&#xff0c;宣布正式入驻香港市场&#xff0c;并命名为EitbaseEX。这一战略性扩展举措&#xff0c;旨在为香港提供先进的加密货币交易技术和服务&#xff0c;同时将香港打造为其在亚太地区的重要枢纽。 作为国际金融中心&#…

算法(一)递归

文章目录 递归的概念递归三要素递归demo打印100次“hello word”斐波那契数列 递归的概念 递归算法是一种直接或者间接调用自身函数或者方法的算法。 递归三要素 递归条件结束 因为递归是循环调用自身&#xff0c;因此就必须要有结束条件&#xff0c;或者就会OOM。 函数的功…

2.8Flowmap的实现

一、Flowmap 是什么 半条命2中水的流动 求生之路2中的水的流动 这种方式原理简单&#xff0c;容易实现&#xff0c;运算量少&#xff0c;如今也还在使用 1.flowmap的实质 Flow map(流向图) &#xff0c;一张记录了2D向量信息的纹理&#xff0c;Flow map上的颜色(通常为RG通道…

Ubuntu部署kafka集群

Apache Kafka (KRaft 集群) Apache Kafka 是一个基于 TCP 的分布式流处理平台&#xff0c;提供高吞吐量、低延迟的消息传递和处理能力&#xff0c;用于构建实时数据管道和流应用程序。其底层通信依赖于 TCP Socket&#xff0c;但 Kafka 封装了许多高级特性&#xff0c;使其更加…

Python使用动态代理的多元应用

Python作为一种功能强大且易于学习的编程语言&#xff0c;在网络编程领域具有广泛的应用。当Python与动态代理技术结合时&#xff0c;便开启了一扇通往更多可能性的大门。以下将深入探讨Python使用动态代理可以实现的多种应用。 首先&#xff0c;Python结合动态代理在网络爬虫…

ETLCloud中如何使用Kettle组件

ETLCloud中如何使用Kettle组件在当今数据驱动的时代&#xff0c;数据处理和分析已成为企业决策的关键。为了更高效地处理海量数据&#xff0c;ETL&#xff08;Extract, Transform, Load&#xff09;工具变得至关重要。而在众多ETL工具中&#xff0c;Kettle作为一款开源、灵活且…

学习笔记——网络参考模型——TCP/IP模型

二、TCP/IP模型 TCP/IP模型(TCP/IP协议栈)&#xff1a;很多个互联网协议的集合&#xff0c;其中以TCP和IP为主&#xff0c;将这些协议的集合称为TCP/IP协议栈。目前使用最多的协议模型。 因为OSI协议栈比较复杂&#xff0c;且TCP和IP两大协议在业界被广泛使用&#xff0c;所以…

C++候捷stl-视频笔记2

深度搜索list list是双向链表&#xff1a;底部实现是环状双向链表 list内部除了存data之外&#xff0c;还要存一个前向指针prev和一个后向指针next list的iterator&#xff0c;当迭代器的时候&#xff0c;是从一个节点走到下一个节点&#xff0c;是通过访问next指针实现的 主要…

arcgis api for javascript点击获取要素错乱的问题

今天帮同事看了一个前端地图点击的问题&#xff1a;点击时总会获取到周边的图元&#xff0c;即使我点击线的周围&#xff0c;也是能获取到的&#xff0c;除非离得特别远。 地图组件用的是arcgis api, 图层类是grahicslayer,要素类型是线。这是添加图元的代码&#xff1a; grap…

AIGC商业案例实操课,发觉其创造和商业的无限可能,Ai技术在行业应用新的商机

课程下载&#xff1a;https://download.csdn.net/download/m0_66047725/89307523 更多资源下载&#xff1a;关注我。 课程内容 1 AI为什么火 。写在课程前面的寄语 。AIGC标志性事件:太空歌剧院 。AI人工智能为什么这么火 &#xff0c;AI人工智能发展历程 。聊天AI会取…

Vxe UI vxe-upload 上传组件,显示进度条的方法

vxe-upload 上传组件 查看官网 https://vxeui.com 显示进度条很简单&#xff0c;需要后台支持进度就可以了&#xff0c;后台实现逻辑具体可以百度&#xff0c;这里只介绍前端逻辑。 上传附件 相关参数说明&#xff0c;具体可以看文档&#xff1a; multiple 是否允许多选 li…

短剧系统源码:构建互动娱乐的新平台

随着数字媒体的兴起&#xff0c;短剧成为了一种新兴的娱乐形式&#xff0c;它以紧凑的叙事和快速的节奏迎合了现代观众的观看习惯。短剧系统源码的开发&#xff0c;为短剧内容的创作、传播和消费提供了一个全面的技术解决方案。本文将探讨短剧系统源码的关键组成部分及其功能。…

基于python flask+pyecharts实现的中药数据可视化大屏,实现基于Apriori算法的药品功效关系的关联规则

背景 在中医药学中&#xff0c;物品与功效之间的关联关系研究是一个非常重要的课题。传统中医药学中&#xff0c;很多药物都具有多种功效&#xff0c;而且不同药物对同一种疾病可能具有不同的疗效。因此&#xff0c;挖掘物品与功效之间的关联关系&#xff0c;可以帮助我们更加…

【第十二节】C++控制台版本贪吃蛇小游戏

目录 一、游戏简介 1.1 游戏概述 1.2 实现功能 1.3 开发环境 二、实现设计 2.1 C类的设计 2.2 项目结构 2.3 代码设计 三、程序运行截图 3.1 游戏界面 3.2 自定义地图 3.3 常规游戏界面 一、游戏简介 1.1 游戏概述 本游戏是一款基于C语言开发的控制台版本贪吃蛇游…

centos7 openssh9.7p 制作rpm包

centos7 openssh9.7p 制作rpm包 下载源码包&#xff1a;通过git开源打包源码准备编译打包环境编译打包上传rpm包到需要更新的服务器,并更新 下载源码包&#xff1a; 一般只用ssh源码就可以了 cd /root wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p…

一文了解企业版电子书:从认识到制作

现如今&#xff0c;电子书已经成为企业传播知识、展示品牌、吸引客户的重要工具了。那么&#xff0c;企业版电子书到底是什么&#xff1f;又该如何才能制作出有效的企业版电子书呢&#xff1f;接下来&#xff0c;跟着LookLook同学一起来看看如何从认识到制作一本企业版电子书。…

【计算机网络】——物理层(图文并茂)

物理层 一.物理层概述1.物理层要实现的功能2.物理层接口特征1.机械特性2.电气特性3.功能特性4.过程特性 二.物理层下面的传输媒体1.传输媒体的分类2.导向型传输媒体1.同轴电缆2.双绞线3.光纤 3.非导向型传输媒体1.无线电波2.微波3.红外线4.激光5.可见光 三.传输方式1.串行传输与…