CSS类的操作

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
.b1 {
width: 100px;
height: 100px;
background-color: skyblue;
} .b2 {
/* width: 200px; */
height: 200px;
background-color: aquamarine;
}
</style>
<script type="text/javascript">
window.onload = function() {
// 获取box
var box = document.getElementById("box");
// 获取btn01
var btn01 = document.getElementById("btn01");
// 获取btn02
var btn02 = document.getElementById("btn02");
// 为btn01绑定单击响应函数
btn01.onclick = function() {
// 修改box的样式
/*
通过style属性来修改元素的样式,没修改一个样式,浏览器就需要重新渲染一次页面
这样的执行的性能是比较差的,而且这种形式当我们要修改多个样式时,也不方便
*/
// box.style.width="200px";
// box.style.height="200px";
// box.style.backgroundColor="yellow"; // 修改box的class属性
/*
我们可以通过修改元素的class属性来间接的修改样式
只需要一次,即可同时修改多个样式
浏览器只需要重新渲染页面一次,性能比较好
并且这种方式,可以使表现和行为进一步的分离
*/
toggleClass(box,"b2");
}
btn02.onclick=function(){
removeClass(box,"b2");
}
};
// 定义一个函数,用来向一个元素中添加指定的class属性值
/*
- 参数:
obj:要添加class属性的元素
cn:要添加的class值
*/
function addClass(obj, cn) {
// 检查obj中是否含有cn》
if (!hasClass(obj, cn)) {
obj.className += " " + cn;
} }
/*
判断一个元素中是否含有指定的class属性值
- 参数:
obj:
cn:
*/
function hasClass(obj, cn) {
// 判断obj中有没有cn class
// 创建一个正则表达式
// var reg=/\bb2\b/;
var reg = new RegExp("\\b" + cn + "\\b"); return reg.test(obj.className); }
// 删除一个元素中的指定的class属性
function removeClass(obj, cn) {
// 创建一个正则表达式
var reg = new RegExp("\\b" + cn + "\\b"); // 删除class
obj.className = obj.className.replace(reg, "");
}
/*
toggleClass可以用来切换一个类
- 如果元素中具有该类,则删除
- 如果元素中没有该类,则添加
*/
function toggleClass(obj,cn){
// 判断obj中是否含有cn
if(hasClass(obj,cn)){
// 有,则删除
removeClass(obj,cn);
}else{
addClass(obj,cn);
}
}
</script>
</head>
<body>
<button id="btn01">点击按钮以后修改box的样式</button><br><br>
<button id="btn02">点击按钮以后删除box的样式</button><br><br>
<div id="box" class="b1"></div>
</body>
</html>

CSS类的操作的更多相关文章

  1. jQuery 获取并设置 CSS 类

    通过 jQuery,可以很容易地对 CSS 元素进行操作. 切换 CSS 类 jQuery 操作 CSS jQuery 拥有若干进行 CSS 操作的方法.我们将学习下面这些: addClass() - ...

  2. 使用HTML5里的classList操作CSS类

    在HTML5 API里,页面DOM里的每个节点上都有一个classList对象,程序员可以使用里面的方法新增.删除.修改节点上的CSS类.使用classList,程序员还可以用它来判断某个节点是否被赋 ...

  3. JQuery:JQuery操作CSS类

    JQuery:CSS类jQuery - 获取并设置 CSS 类,通过 jQuery,可以很容易地对 CSS 元素进行操作.jQuery 操作 CSSjQuery 拥有若干进行 CSS 操作的方法.我们 ...

  4. 第88天:HTML5中使用classList操作css类

    在HTML5 API里,页面DOM里的每个节点上都有一个classList对象,程序员可以使用里面的方法新增.删除.修改节点上的CSS类.使用classList,程序员还可以用它来判断某个节点是否被赋 ...

  5. js进阶 11-4/5 jquery中css的类的操作有哪些

    js进阶 11-4/5  jquery中css的类的操作有哪些 一.总结 一句话总结:jquery中css的类的操作有增删切三种. 1.jquery中css的类的操作有哪些? 增删切三种 addCla ...

  6. js动态给当前点击元素添加css类

    1.页面:

  7. 深入理解脚本化CSS系列第三篇——脚本化CSS类

    前面的话 在实际工作中,我们使用javascript操作CSS样式时,如果要改变大量样式,会使用脚本化CSS类的技术,本文将详细介绍脚本化CSS类 style 我们在改变元素的少部分样式时,一般会直接 ...

  8. jQuery学习-css、class操作、动画方法的运用、jQ操作Dom节点

    css操作(设置单个/多个样式.获取样式) //修改单个属性:括号之中直接是需要修改的样式名,值 css(name,value) //例:$("#one").css("b ...

  9. jQuery_03之事件、动画、类数组操作

    一.事件: 1.模式触发事件:  ①DOM:elem.onXXX();只能触发直接用onXXX绑定的事件处理函数:用addEventistener添加的事件监听无法模拟出发触发:  ②jQuery:$ ...

随机推荐

  1. 【Luogu P1714】切蛋糕(面向对象编程首次尝试?)

    Luogu P1714 题目的大意就是给定一个长度为n的序列,求出这个序列中长度不超过m的子串的最大和 很容易想出的一个解法就是枚举起点终点,直接暴力扫一遍得出答案. 当然也很容易发现这种做法肯定会T ...

  2. ubuntu windows mutual remote control

    Win10 remote control Ubuntu18 Part1.ubuntu settings 1.安装所需组件 sudo apt-get update //若没有desktop sharin ...

  3. 解析深度学习 语音识别实践 pdf下载

    链接:https://pan.baidu.com/s/1jd8_2nbz6M9e20lI3JdVGA  密码:1ikc 我从别人那里买的!可以友情赞助资瓷!

  4. Makefile使用指南

    转载请标明出处:http://blog.csdn.net/shensky711/article/details/52231202 本文出自: [HansChen的博客] 什么是Makefile Mak ...

  5. Linux目录结构-上部

    第1章 目录结构 1.1 目录结构特点 倒挂的树状结构一切从根开始一切皆文件 1.2 目录结构 /bin            二进制文件  命令 /sbin           超级命令只有root ...

  6. 监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

    第7周第2次课(5月8日) 课程内容: 10.6 监控io性能 10.7 free命令10.8 ps命令10.9 查看网络状态10.10 linux下抓包扩展tcp三次握手四次挥手 http://ww ...

  7. __getattribute__(self, obj) 这个方法中的obj这个参数

    class Itcast(object): def __init__(self, subject1): self.subject1 = subject1 print("^^^^^^^---- ...

  8. 【LiteOS】LiteOS移植常见问题

    发现很多人在LiteOS的移植过程中总会遇到一些问题,现在简单做一些总结.后续有新的问题提再继续补充. 1.CMSIS版本导致的问题 问题现象一般如下图所示,编译后报错,Undefined symbo ...

  9. 【云速建站】微信公众平台中维护IP白名单

    [摘要] 介绍获取接入IP白名单的操作步骤 网站后台对接微信公众号.支付等都依赖于白名单,接下来就介绍一下白名单的配置. 1.1      为什么要设置白名单 为了提高公众平台开发者接口调用的安全性, ...

  10. 【跟唐老师学习云网络】 - 第7篇 Tcpdump大杀器抓包

    [摘要] 前面章节的网络协议栈相关的信息建议大家多学习一遍,因为这些都是最基础的东西,想玩好云网络必备基本功.. 一.上帝视角 之前提到过定位问题可以开启上帝视角,那么如何开启就要依靠tcpdump这 ...