原生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 相关文章推荐
document.getElementById方法在Firefox与IE中的区别
May 18 Javascript
javascript string字符串优化问题
Jul 31 Javascript
浅谈JSON中stringify 函数、toJosn函数和parse函数
Jan 26 Javascript
JScript中的条件注释详解
Apr 24 Javascript
jQuery插件实现图片轮播特效
Jun 16 Javascript
jQueryUI Datepicker组件设置日期高亮
Oct 13 Javascript
关于JavaScript中事件绑定的方法总结
Oct 26 Javascript
关于Function中的bind()示例详解
Dec 02 Javascript
简单理解Vue条件渲染
Dec 03 Javascript
JS解析url查询参数的简单代码
Aug 06 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
Nov 29 Javascript
JS中如何优雅的使用async await详解
Oct 05 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制作静态网站的模板框架
2006/10/09 PHP
我的论坛源代码(二)
2006/10/09 PHP
PHP读取文件的常见几种方法
2016/11/03 PHP
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
JS实现控制表格行内容垂直对齐的方法
2015/03/30 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
2016/01/28 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
关于jQuery中fade(),show()起始位置的一点小发现
2017/04/25 jQuery
Angular 4依赖注入学习教程之ClassProvider的使用(三)
2017/06/04 Javascript
基于JS实现父组件的请求服务过程解析
2019/10/14 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
js实现跳一跳小游戏
2020/07/31 Javascript
探索node之事件循环的实现
2020/10/30 Javascript
python实现读取excel写入mysql的小工具详解
2017/11/20 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
2018/07/12 Python
Python 支付整合开发包的实现
2019/01/23 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
python实现图片二值化及灰度处理方式
2019/12/07 Python
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
锐步香港官方网上商店:Reebok香港
2020/11/05 全球购物
市场营销毕业生自荐信
2013/11/23 职场文书
团工委书记自荐书范文
2013/12/17 职场文书
缴纳养老保险的证明
2014/01/10 职场文书
房地产营销策划方案
2014/02/08 职场文书
2014年创卫实施方案
2014/02/18 职场文书
医院护士见习期自我鉴定
2014/04/10 职场文书
建筑院校毕业生求职信
2014/06/13 职场文书
护士长2014年终工作总结
2014/11/11 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
情人节单身感言
2015/08/03 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
让文件路径提取变得更简单的Python Path库
2021/05/27 Python