[js项目]封装库-CSS[下]
来源:互联网 发布:淘宝信用借贷逾期 编辑:程序博客网 时间:2024/06/02 04:58
封装库-CSS[下]
本篇,我们继续封装 CSS,主要探讨添加 class 和移除 class。并且能够添加 style 和link 元素的 css 规则。
一. 获取节点问题
在获取 ID、TagName、Class 节点上,我们把 this.elements 放到了外部,导致实例化的this.elements 变成了公有化,所以,这个数组,我们必须放到内部。
二. 继续封装 CSS
在节点上添加一个 class,这个知识点我们在之前已经学习过:
//添加 CLASSBase.prototype.addClass = function (className) { for (var i = 0; i < this.elements.length; i ++) { if (!this.elements[i].className.match(new RegExp('(\\s|^)' +className + '(\\s|$)'))) { this.elements[i].className += ' ' + className; } } return this;}
//移除 CLASSBase.prototype.removeClass = function (className) { for (var i = 0; i < this.elements.length; i ++) { if(this.elements[i].className.match(new RegExp('(\\s|^)' + className + '(\\s|$)'))) { this.elements[i].className = this.elements[i].className. replace(new RegExp('(\\s|^)' + className + '(\\s|$)'), ' '); } } return this;}
//设置 link 或 style中的 CSS 规则Base.prototype.addRule = function (num,selectorText, cssText,position) { var sheet = document.styleSheets[num]; if(typeofsheet.insertRule != 'undefined') { sheet.insertRule(selectorText + "{" + cssText + "}", position); } else if (typeof sheet.addRule != 'undefined') { sheet.addRule(selectorText, cssText, position); }};
//移除 link 或 style中的 CSS 规则Base.prototype.removeRule = function (num, index) { var sheet = document.styleSheets[num]; if(typeofsheet.deleteRule != 'undefined') { sheet.deleteRule(index); } else if (typeof sheet.removeRule) { sheet.removeRule(index); } return this;};
PS:在 Web 应用中,很少用到添加 CSS 规则和移除 CSS 规则,一般只用行内和 Class ;因为添加和删除原本的规则会破坏整个 CSS 的结构,所以使用需要非常小心。
阅读全文
0 0
- [js项目]封装库-CSS[下]
- [js项目]封装库-CSS[上]
- [js项目]封装库-连缀
- js笔记:Js封装库——css选择器
- [js项目]封装库-下拉菜单
- QiYuAdmin-Thymeleaf的include封装共用js和css(项目优化)
- vue项目用js封装的md5
- js 封装类库
- JS封装库--连缀
- WEB项目部署到Linux下无法访问html、css、js等静态文件的解决
- 如何封装JS和CSS文件为服务器端控件
- 如何封装JS和CSS文件为服务器端控件
- 如何封装JS和CSS文件为服务器端控件
- 如何封装JS和CSS文件为服务器端控件
- 利用js、jQuery和css实现环形进度条组件封装
- 封装的一些 js, css使用小方法
- maven项目引入js或css(SpringMVC):
- maven项目引入js或css
- [js项目]封装库-CSS[上]
- Codeforces #423-Div. 2—A. Restaurant Tables
- Spacemacs + JDEE
- 资源学习网站
- Codeforces #423-Div. 2-B. Black Square
- [js项目]封装库-CSS[下]
- 用一个实例介绍Java多线程
- [js项目]封装库-下拉菜单
- Codeforces #423-Div. 2-C. String Reconstruction
- Codeforces Round #423(Div.2)
- android直播app礼物连击动画效果
- [高频] 五. 如何高效实现搜索类题目
- AndroidStudio与Eclipse的安装建议
- qml 自定义滑动条(官方example)