原生JS实现获取及修改CSS样式的方法


Posted in Javascript onSeptember 04, 2018

本文实例讲述了原生JS实现获取及修改CSS样式的方法。分享给大家供大家参考,具体如下:

大家都知道在JavaScript原生操作中获取元素的样式,在实际操作是使用时比较频繁的一件事,这里像大家介绍下获取css样式的方法,希望可以帮助一些需要的人,如果有幸被大牛看到,有更好的办法,欢迎提出!!!

一、行内元素样式获取:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>js获取外部样式</title>
</head>
<body>
  <div id="div" style="width:200px;height:200px;border:3px solid cyan;"></div>
</body>
<script>
  //获取行间样式
  var div = document.getElementById('div');
  var width = div.style.width;
  alert(width);//200px
</script>
</html>

在JS代码中,alert会弹出div元素的width为200px;达到了要获取元素宽度的目的,但是这种简单的方法只适用于获取元素的行内元素样式,并不能获取内部样式和外部样式,在项目中,写入行内元素这种方案并不被大家认同,所以这种方法,只是让大家了解下。

二、非行间样式元素获取:

如果元素样式并非行间样式,利用上面这种方法并不能获取到元素的样式,需要使用另一种方法:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>js获取内部部样式</title>
  <style>
    #div{
      width: 200px;
      height: 200px;
      border:3px solid cyan;
    }
  </style>
</head>
<body>
  <div id="div""></div>
</body>
<script>
  var div = document.getElementById('div');
  //获取div的width
  var width = window.getComputedStyle(div,null).width;
  alert(width);//200px
  //修改div的width
  div.style.cssText='width:300px;'
</script>
</html>

在上面代码中,使用了window.getComputedStyle('元素',null).'样式',此方法兼容性:火狐 谷歌 IE9 获取的为计算后的样式,但是这里需要注意的是用此方法获取的值为只读模式,并不能修改,所以用了style.cssText方式修改了其属性,这里需要注意下书写方式.

三、兼容性:

前段潜规则,凡是好的东西都不能通用,是的,你猜对了,任性的IE并不能使用以上方法,但是IE有自己的方法为currentStyle,用法一样,就不再赘述了,下面直接写出已经处理兼容的代码如下:

var div = document.getElementById('div');
if (div.currentStyle) {
  console.log(div.currentStyle.width);
}else{
console.log(getComputedStyle(div,null).width);
}

方法封装:

function getStyle(obj,name){
  if (obj.currentStyle) {
    return obj.currentStyle[name];
  }else{
    return getComputedStyle(obj,false)[name];
  }
}

上述代码感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具http://tools.3water.com/code/HtmlJsRun测试运行一下,看看运行结果如何。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
textarea的value是html文件源代码,存成html文件的代码
Apr 20 Javascript
juqery 学习之六 CSS--css、位置、宽高
Feb 11 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
Feb 23 Javascript
js的onload事件及初始化按钮事件示例代码
Sep 25 Javascript
Js实现滚动变色的文字效果
Jun 16 Javascript
JS实现自动定时切换的简洁网页选项卡效果
Oct 13 Javascript
AngularJS中的过滤器filter用法完全解析
Apr 22 Javascript
jQuery双向列表选择器DIV模拟版
Nov 01 Javascript
webpack多页面开发实践
Dec 18 Javascript
webpack配置导致字体图标无法显示的解决方法
Mar 06 Javascript
JS实现显示当前日期的实例代码
Jul 03 Javascript
Vue封装的组件全局注册并引用
Jul 24 Javascript
微信小程序canvas拖拽、截图组件功能
Sep 04 #Javascript
mpvue写一个CPASS小程序的示例
Sep 04 #Javascript
Vue表单及表单绑定方法
Sep 04 #Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
Sep 04 #Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
Sep 04 #jQuery
vue做移动端适配最佳解决方案(亲测有效)
Sep 04 #Javascript
基于element-ui的rules中正则表达式
Sep 04 #Javascript
You might like
php合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
CodeIgniter与PHP5.6的兼容问题
2015/07/16 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
JavaScript Event学习第九章 鼠标事件
2010/02/08 Javascript
加速IE的Javascript document输出的方法
2010/12/02 Javascript
javascript 45种缓动效果 非常酷
2011/06/28 Javascript
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
js下拉菜单语言选项简单实现
2013/09/23 Javascript
JS保存和删除cookie操作 判断cookie是否存在
2013/11/13 Javascript
html的DOM中Event对象onabort事件用法实例
2015/01/21 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
2015/11/17 Javascript
深入浅析react native es6语法
2015/12/09 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
快速掌握Node.js之Window下配置NodeJs环境
2016/03/21 NodeJs
jQuery给表格添加分页效果
2017/03/02 Javascript
JS+CSS实现下拉刷新/上拉加载插件
2017/03/31 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
python清除字符串里非数字字符的方法
2015/07/02 Python
详解使用python crontab设置linux定时任务
2016/12/08 Python
python导出hive数据表的schema实例代码
2018/01/22 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
印度尼西亚综合购物网站:Lazada印尼
2016/09/07 全球购物
激励员工的口号
2014/06/16 职场文书
财政局党的群众路线教育实践活动整改方案
2014/09/21 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
优秀少先队辅导员事迹材料
2014/12/24 职场文书
售票员岗位职责
2015/02/15 职场文书
对领导班子的意见和建议
2015/06/08 职场文书
导游词幽默开场白
2019/06/26 职场文书