原生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 相关文章推荐
彪哥1.1(智能表格)提供下载
Sep 07 Javascript
JS OOP包机制,类创建的方法定义
Nov 02 Javascript
Javascript中的delete介绍
Sep 02 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
May 26 Javascript
javascript操纵OGNL标签示例代码
Jun 16 Javascript
js实现鼠标感应图片展示的方法
Feb 27 Javascript
jQuery实现下拉框选择图片功能实例
Aug 08 Javascript
浅谈JS验证表单文本域输入空格的问题
Feb 14 Javascript
es7学习教程之Decorators(修饰器)详解
Jul 21 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
Mar 07 Javascript
JS实现的碰撞检测与周期移动完整示例
Sep 02 Javascript
详解微信小程序中var、let、const用法与区别
Jan 11 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
雄兵连三大错觉:凯莎没了,凉冰阵亡了,华烨觉得自己又行了
2020/04/09 国漫
php解析url的三个示例
2014/01/20 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
2014/04/29 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
JavaScript 不只是脚本
2007/05/30 Javascript
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
引用外部js乱码问题分析及解决方案
2013/04/12 Javascript
理解JavaScript中worker事件api
2015/12/25 Javascript
BootStrap制作导航条实例代码
2016/05/06 Javascript
jQuery实现table中的tr上下移动并保持序号不变的实例代码
2016/07/11 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
原生javascript实现图片放大镜效果
2017/01/18 Javascript
微信小程序 扎金花简单实例
2017/02/21 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
vee-validate vue 2.0自定义表单验证的实例
2018/08/28 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
vue 全局封装loading加载教程(全局监听)
2020/11/05 Javascript
python简单实例训练(21~30)
2017/11/15 Python
python3 对list中每个元素进行处理的方法
2018/06/29 Python
详解pandas中MultiIndex和对象实际索引不一致问题
2019/07/23 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
2020/03/27 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
Speedo速比涛法国官方网站:泳衣、泳镜、泳帽、泳裤
2019/07/30 全球购物
构造方法和其他方法的区别?怎么调用父类的构造方法
2013/09/22 面试题
C#中的验证控件有几种
2014/03/08 面试题
高职助产应届生自荐信
2013/09/24 职场文书
养殖人员的创业计划书范文
2013/12/26 职场文书
初中学校对照检查材料
2014/08/19 职场文书
政法干警核心价值观心得体会
2014/09/11 职场文书
公务员个人年终总结
2015/02/12 职场文书
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS