首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Vanilla JS -在元素外部切换类

Vanilla JS是指使用纯粹的JavaScript编写代码,而不依赖于任何第三方库或框架。它是一种轻量级的开发方式,可以帮助开发人员更好地理解和掌握JavaScript语言的核心概念和功能。

在元素外部切换类是指通过JavaScript代码在HTML元素的class属性中切换不同的类。这个功能通常用于动态改变元素的样式或行为,以实现交互效果或响应用户操作。

下面是一个示例代码,演示了如何使用Vanilla JS在元素外部切换类:

代码语言:txt
复制
<!DOCTYPE html>
<html>
<head>
  <style>
    .red {
      color: red;
    }
    .blue {
      color: blue;
    }
  </style>
</head>
<body>
  <button id="toggleButton">Toggle Class</button>
  <div id="targetElement">Hello, World!</div>

  <script>
    var toggleButton = document.getElementById('toggleButton');
    var targetElement = document.getElementById('targetElement');

    toggleButton.addEventListener('click', function() {
      targetElement.classList.toggle('red');
      targetElement.classList.toggle('blue');
    });
  </script>
</body>
</html>

在上面的示例中,我们首先定义了两个类.red.blue,分别设置了不同的颜色样式。然后,通过getElementById方法获取到了一个按钮元素和一个目标元素。接下来,我们使用addEventListener方法为按钮元素添加了一个点击事件监听器。当按钮被点击时,通过classList.toggle方法在目标元素的class属性中切换.red.blue类,从而实现了颜色样式的切换。

这种在元素外部切换类的功能在实际开发中非常常见,可以用于实现各种动态效果,例如切换菜单的展开和折叠、切换按钮的状态、切换页面的主题等。

腾讯云提供了一系列与云计算相关的产品和服务,其中包括云服务器、云数据库、云存储、人工智能等。具体推荐的产品和产品介绍链接地址可以根据具体需求和场景来选择,可以参考腾讯云的官方文档和网站获取更详细的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

js判断元素某个区域内是否可见(转)

getBoundingClientRect介绍 getBoundingClientRect获取元素位置 getBoundingClientRect用于获得页面中某个元素的左,上,右和下分别相对浏览器视窗的位置...getBoundingClientRect是DOM元素到浏览器可视范围的距离(不包含文档卷起的部分)。...right是指元素右边界距窗口最左边的距离,bottom是指元素下边界距窗口最上面的距离。 getBoundingClientRect()最先是IE的私有属性,现在已经是一个W3C标准。...var Y =this.getBoundingClientRect().top+document.documentElement.scrollTop; getBoundingClientRect判断元素是否可视区域...以前的办法是通过各种offset判断元素是否可见,网上很多教程,大家可以自己去查找。

7.6K20
  • JS-获取class名为某个的元素-【getClass】函数封装

    原理:  根据class获取元素.  原理是,取出oparent下的所有元素,组成数组,然后遍历名,全等判断。...其实直接用getElementsByTagName获取到的也是一个元素集合。现在直接等于一个数组,能用的方法和属性则更多了呢!顺便调用函数并传参。参数是父元素的变量和需要找的名。...for(var i=0;i<oLi.length;i++){ //循环弹出来的数组,也就是所有名为“li_box”的li //接下来直接做你想让那些带你需要名的元素该做的事。...,还有别的className,那么之前的程序是做不到的,所以用split把元素上的名切开来,再进行对比。...这里,boxArr.push那里,原来想错了,写的classNameArr[j],后来发现,boxArr最后是一个字符串数组,并不是元素数组,所以改成oElements[i]就可以了。

    5.2K80

    【说站】js数组头部或尾部插入元素的方法

    js数组头部或尾部插入元素的方法 1、unshift()在数组开头插入元素,把一个或多个参数值附加到数组的头部。...array.unshift(元素1, 元素2, ..., 元素X) 实例 var a = [0];  //定义数组 console.log(a);  //返回[0] a.unshift(1,2);  ...array.push(元素1, 元素2, ..., 元素X) 3、concat()将作为参数的一个或多个数组的元素添加到指定数组的尾部。 可以连接两个或多个数组。...var a = [1,2,3]; var b = [4, 5, 6]; var c = [7,8]; var d = a.concat(b,c); console.log(d); 以上就是js数组头部或尾部插入元素的方法...更多js学习指路:js教程 推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。

    3.4K20

    Github 移除 JQuery 的过程

    实现CSS切换; CSS现在支持样式表而不是JavaScript中定义可视化动画; $.ajax请求可以使用Fetch标准执行; addEventListener()接口足够稳定,可以跨平台使用;...作者希望在这个页面上有一个或多个js小部件元素吗?另外,如果我们更新了页面标记,并且意外地漏掉了js小部件的名,浏览器中的异常是否会通知我们出了问题?...增量解耦 即使有了最终目标,我们知道仅仅分配所有资源是不可行的,我们必须重写从jQuery到vanilla JS的所有内容。...许多旧代码都与pjax和facebox jQuery插件的外部接口有显式耦合,因此我们保持了它们的接口相对相同,而在内部使用vanilla JS替换了它们的实现。...因此,即使那些使用JS增强的web表单和其他UI元素通常也会在浏览器中禁用JavaScript。某些情况下,我们能够完全删除某些遗留行为,而不必vanilla JS中重写它们。

    2.1K10

    通过 JS 实现简单的拖拽功能并且可以特定元素上禁止拖拽

    前言 关于讲解 JS 的拖拽功能的文章数不胜数,我确实没有必要大费周章再写一篇重复的文章来吸引眼球。本文的重点是讲解如何在某些特定的元素上禁止拖拽。...modal','#modal'); 拖拽问题 整个拖拽功能并没有太大的问题,但是如果我们拖拽关闭按钮,仍然可以拖拽整个 modal,看起来不太和谐而且某些情况下会影响功能,所以我们需要排除掉关闭按钮。...解决的方法就是拖拽开始时添加限制条件,代码如下 ......因为我们排除特定元素的同时也要排除它的子元素。如果使用原生 JS 的话,需要添加获取子元素的方法。...仍然是之前的老话,实现一个功能并不困难,但是如果要把这个功能做好,我们需要考虑很多的细节,或许很多时候我们都把时间花费调整细节上了。

    4.9K90

    如何制作自己的原生 JavaScript 路由

    最重要的是,使用 vanilla JS router 可以减少你对框架的依赖。 只要你了解实现它所涉及的所有部分,就可以相对容易的原生 JavaScript 中创建自己的路由。...JavaScript 的 History API 我看过很多没有提到 JavaScript History API 的 vanilla JS router 教程。....length 属性是会话历史记录中的元素数。 .state 属性用于查找状态,而无需侦听**“ popstate” **事件。 现在开始实现我们自己的原生 JS 路由!...基于 History API 的 Vanilla JS 路由设置 先让我们仔细研究构建 URL 切换器所需的最少代码(而无需刷新页面),然后我会向你展示其的工作方式的 GIF 动图。...我们只需将存储元素的 id 属性中的 clicked 元素的 id 传递给它即可:home,about,gallery 等。它们应与你要导航到的实际页面一致。

    3.9K20

    CSS in JS 新秀:vanilla-extract 浅析

    前言 2021年,vanilla-extract 作为黑马登顶了 css-in-js 满意度榜首(虽然使用率仅为1%),号称是一个类型安全、高度兼容 TS 场景的库,国内相关讨论还很少,稍微看了一下还挺好用的...这样的设计,我觉得更是一种职责分离吧,每个样式块都针对某个元素,那么对于项目而言,样式的可维护性就大大提高了,相比于其他css in js(styled-components)就不容易出现样式冗余的问题...对于一些特殊情况,比如:写styled-components我们会利用其包裹arco组件(或是其他组件),然后对其内部元素样式进行覆写或是新增。...const StyledSelect = styled(Select)` div { color: red; } ` 那么vanilla-extract样式块里是不能直接做到的...总结 目前了解下来,vanilla-extract是一个总体还不错的css in js库,虽然目前使用率比较低,但是后续厂商平台项目会考虑一些地方使用看看效果(毕竟不会增大js体积)。

    2.1K10

    不敢相信,技术栈,居然被P站秒了

    画外音,页面性能监控,常见的有两种方式: (1)模拟性能监控 主要通过外部代理,模拟真实用户行为(登陆,点击等),执行固定监控脚本,收集页面性能数据。这是国内主流页面性能监控方式。...JS层面,我们逐步淘汰了jQuery和jQuery UI,而使用Vanilla JS这款更加高效的JS框架。 画外音:Vanilla JS,世界上最轻量级的JS框架,没有之一。...其官方网站是: http://vanilla-js.com/ 别的JS库都需要显示引用地址,例如: 而Vanilla JS不需要任何引用,部署引用的时候,只需要: 你没看错,没有任何代码,由于它过于流行,所有的浏览器都必须内置它。...(2)你用过Vanilla JS么?

    1.9K10

    JS简史

    还包括了一个智能化的JS调试工具,从而让这门语言的调试接近于传统的编译型语言调试方法(在从前,开发者只能依赖于浏览器插件或外部程序做到这些)。现在大部分主流浏览器都原生提供了类似的能力。...当你只想监听几个按钮以及切换 tab 的时候,用大量现代 JS 框架组成的好得很的单页应用就过于复杂了。"我该用什么?"...的答案就是:取决于具体的需求,用 jQuery 或 Vanilla JS 都可以。 Vanilla JS 可不是一个框架,也不是一个库,其实什么也不是,就是 JavaScript。...比如document.querySelector 和document.querySelectorAll,用类似 CSS 的语法提供了 jQuery 的元素选择(比如 ".exterior-link")...从性能考虑,书写纯 JS 代码几乎肯定会更快(除非你的程序不优化),即便是更老更慢的设备上。和很多开发者一样,Smith 对这种新关注点很兴奋:“我从 Vanilla JS 获得了很多回报。

    1.4K40

    使用 Go + HTML + CSS + JS 构建漂亮的跨平台桌面应用

    内置 Svelte、React 、Preact 、Vue、Lit 和 Vanilla JS 的模板 3. 从 Javascript 轻松调用 Go 方法 4....Windows 上不需要 CGO 或外部 DLL 6. 使用 Vite 的实时开发模式 7. 可以轻松创建、构建和打包应用的强大命令行工具 8. 丰富的 运行时库 9....有以下框架的模板:Svelte、React、Vue、Preact、Lit 和 Vanilla。每个模板都有 Javascript 和 Typescript 版本。...Wails 使用专门构建的库来处理窗口、菜单、对话框等原生元素,因此您可以构建美观、功能丰富的桌面应用程序。 它不嵌入浏览器,因此性能高。相反,它使用平台的原生渲染引擎。...当您的资源磁盘上发生变化时,它会刷新。

    6.9K10

    用 ref 访问 Vue.js 程序中的 DOM

    本文中,你将了解如何在 Vue.js 中引用组件中的 HTML 元素。 前提条件 本文适用于所有使用 Vue 的开发人, 包括初学者。...阅读本文之前,你应该具备一些前提条件: Node.js 10.x或更高版本。...可以 Vue.js 实例内部和外部访问 $refs。但是它们并不是数据属性,因此它们没有响应性。 浏览器中进行模板检查时,它们根本不显示,因为它不是 HTML 属性,只是一个 Vue 模板属性。...条件处理 Vue.js 的 refs 也可用于输出 DOM 元素内部的多个元素,例如使用 v-for 指令的条件语句。refs 调用时返回一个 item 数组,而不是对象。...结论 本文讲解了怎样 Vue.js 中引用 DOM 中的 HTML 元素。你现在可以访问和记录所有的元素,例如值,子节点,数据属性,甚至它的 base URL。 另外我们还学会了实现这一目标的方法。

    2.9K20
    领券