npm 包 rkgttr-classlistpolyfill 使用教程

阅读时长 4 分钟读完

在前端开发中,我们时常需要操作 DOM 元素的 class name,而现代浏览器提供了 classList 属性来方便我们操作 class,但是这个属性并不兼容所有的浏览器,尤其是一些老的浏览器,如 IE6-9 。这时我们可以借助于一些 Polyfill 库来解决问题。本篇文章介绍的就是其中一个 Polyfill 库—— rkgttr-classlistpolyfill

简介

rkgttr-classlistpolyfill 是一款用于解决 classList API 在老版本浏览器不支持的问题的 JavaScript Polyfill 库,它可以让已有的 DOM 元素实例支持 classList API,同时支持新添加的 DOM 元素实例。

安装

rkgttr-classlistpolyfill 是一个 npm 包,在使用前需要先安装,在终端命令行中输入以下命令即可:

这里我们使用 --save 参数将其添加到项目依赖中,这样其他人在拉取这个项目时也能够自动安装 rkgttr-classlistpolyfill。

基本用法

引入 rkgttr-classlistpolyfill:

rkgttr-classlistpolyfill 会自动为全局 DOMTokenListElement 添加 add, remove, toggle, contains 四个方法,以及 classList 属性(仅在 Element 上),这样我们就可以方便地在老版浏览器中使用 classList API 了。

示例代码:

-- -------------------- ---- -------
-- ----- -----
-----------------------------
--------------------------------
--------------------------------
----------------------------------

-- -- -----
--- ---- - - -- - - ------------------------- ---- -
  ----------------------------------
-

更多用法可以参见 MDN 文档

细节问题

添加/删除多个 class

rkgttr-classlistpolyfill 的 addremove 方法只能添加/删除一个 class,如需添加/删除多个 class,需要使用循环:

-- -------------------- ---- -------
-- ------ -----
------- ------ ---------------------------------- -
  ---------------------------------
---

-- ------ -----
------- ------ ---------------------------------- -
  ------------------------------------
---

使用过程中的注意事项

  • 如果 Element 的另一个接口提供了 class 相关操作(如 jQuery 的 addClass/removeClass/toggleClass),则最好不要混用它们,以免出现不可预料的问题。

  • 一些浏览器(如 IE10-)会有 CSS 选择器个数限制,这时如果一个元素的 class name 个数过多可能会导致选择器编译失败和样式渲染失败。因此,最好不要在一个元素上添加过多的 class。

总结

rkgttr-classlistpolyfill 是一个兼容旧版浏览器的 Polyfill 库,它提供了与现代浏览器相同的 classList API,使我们可以方便地对 DOM 元素的 class 进行操作。在使用时需要注意一些细节问题,如添加/删除多个 class 和不要与其他接口混用等。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600551a981e8991b448cf065

纠错
反馈