JS批量操作CSS属性详细解析


Posted in Javascript onDecember 16, 2013
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        .day
        {
         background-color:White;
        }
        .night
        {
         background-color:Black
        }
    </style>
    <script language="javascript" type="text/javascript">
        function operStyle() {
            var divObj = document.getElementById("divContent");
            var btnObj = document.getElementById("btnCommit");
            if (divObj.className == "day") {
                divObj.className = "night";
                btnObj.value = "开灯";
            } else {
            divObj.className = "day";
            btnObj.value = "关灯";
            }
        }
        //批量修改div的样式属性,由多种样式构成
        //方法1:
        function methodOne() {
            var divObj = document.getElementById("divTest");
            divObj.style.backgroundColor = "blue";
            divObj.style.border = "solid 1px red";
            divObj.style.width = "300px";
            divObj.style.height = "200px";
            divObj.style.backgroundPosition = "center";
        }
        //方法2:
        function methodTwo() {
            var divObj = document.getElementById("divTest");
            divObj.style.cssText = "background-color:Blue; border:solid 1px red; width:300px; height:200px; background-position:center";
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div id="divContent" class="day">
       <font color="red">我是一个div啊,咿呀咿呀呦!</font>
    </div>
    <input type="button" value="关灯" id="btnCommit" onclick="operStyle();" />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <br />
    <hr />
    <h1>修改divTest的样式,多属性操作</h1>
    <div id="divTest" >
        <font color="red">修改divTest的样式</font>
    </div>
    <input type="button" value="修改divTest的样式" onclick="methodTwo()" />
    </form>
</body>
</html>

我们用js书写css样式通常会用下面的两种方式:

一般情况下我们用js设置元素对象的样式会使用这样的形式:
复制代码 代码如下:
var element= document.getElementById(”id”);
element.style.width=”20px”;
element.style.height=”20px”;
element.style.border=”solid 1px red”;

但是上面的方法有一个缺点,样式一多,代码就很多;而且通过JS来覆写对象的样式是比较典型的一种销毁原样式并重建的过程,这种销毁和重建,都会增加浏览器的开销。

js中有一个cssText的方法:
语法为:obj.style.cssText(”样式”);
上面的代码我们可以修改成:
复制代码 代码如下:
element.style.cssText=”width:20px;height:20px;border:solid 1px red;”;

这种写法可以尽量避免页面的多次reflow,提高页面性能。

Javascript 相关文章推荐
jQuery滚动加载图片效果的实现
Mar 06 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
Mar 05 Javascript
Javascript获取CSS伪元素属性的实现代码
Sep 28 Javascript
基于jQuery实现仿51job城市选择功能实例代码
Mar 02 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
Jan 03 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
Jul 07 Javascript
jQuery实现模糊查询的方法分析
May 10 jQuery
vue 解决addRoutes动态添加路由后刷新失效问题
Jul 02 Javascript
JavaScript实现无限级递归树的示例代码
Mar 29 Javascript
node.js 基于cheerio的爬虫工具的实现(需要登录权限的爬虫工具)
Apr 10 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
Oct 23 Javascript
vue 子组件修改data或调用操作
Aug 07 Javascript
js鼠标及对象坐标控制属性详细解析
Dec 14 #Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
Dec 14 #Javascript
利用javascript实现禁用网页上所有文本框,下拉菜单,多行文本域
Dec 14 #Javascript
js获取url中指定参数值的示例代码
Dec 14 #Javascript
Js实现双击鼠标自动滚动屏幕的示例代码
Dec 14 #Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
Dec 14 #Javascript
js键盘上下左右键怎么触发function(实例讲解)
Dec 14 #Javascript
You might like
mysql_escape_string()函数用法分析
2016/04/25 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
2016/05/26 PHP
PHP中TP5 上传文件的实例详解
2017/07/31 PHP
Laravel 集成 Geetest验证码的方法
2018/05/14 PHP
php gethostbyname获取域名ip地址函数详解
2010/01/24 Javascript
nodejs命令行参数处理模块commander使用实例
2014/09/17 NodeJs
移除AngularJS下URL中的#字符的方法
2015/06/19 Javascript
两种JS实现屏蔽鼠标右键的方法
2020/08/20 Javascript
jQuery实现简单下拉导航效果
2015/09/07 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
js时间戳和c#时间戳互转方法(推荐)
2017/02/15 Javascript
详解Node.js 命令行程序开发教程
2017/06/07 Javascript
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
微信小程序使用wx.request请求服务器json数据并渲染到页面操作示例
2019/03/30 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
[02:47]DOTA2亚洲邀请赛 HR战队出场宣传片
2015/02/07 DOTA
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
Python中处理时间的几种方法小结
2015/04/09 Python
Python中的元组介绍
2019/01/28 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
2019/08/30 Python
基于Numba提高python运行效率过程解析
2020/03/02 Python
css3个性化字体_动力节点Java学院整理
2017/07/12 HTML / CSS
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
.NET面试10题
2014/02/24 面试题
Servlet都有哪些方法?主要作用是什么?
2014/03/04 面试题
大二法学专业职业生涯规划范文
2014/02/12 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
群众路线教育实践活动学习笔记
2014/11/05 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
简爱电影观后感
2015/06/10 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
如何用JS实现网页瀑布流布局
2021/04/24 Javascript