原生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 相关文章推荐
picChange 图片切换特效的函数代码
May 06 Javascript
js正则表达式的使用详解
Jul 09 Javascript
Javascript实现返回上一页面并刷新的小例子
Dec 11 Javascript
详解JavaScript中Date.UTC()方法的使用
Jun 12 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
Nov 29 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
Jul 05 Javascript
JS新包管理工具yarn和npm的对比与使用入门
Dec 09 Javascript
详解jQuery中关于Ajax的几个常用的函数
Jul 17 jQuery
详解Angular中通过$location获取地址栏的参数
Aug 02 Javascript
JavaScript中变量、指针和引用功能与操作示例
Aug 04 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
Sep 30 Javascript
微信小程序实现图片滚动效果示例
Dec 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
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
2016/01/28 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
JS与C#编码解码
2013/12/03 Javascript
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
解决json日期格式问题的3种方法
2014/02/02 Javascript
JavaScript实现简单的日历效果
2016/09/25 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
Webpack中publicPath路径问题详解
2018/05/03 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
2019/04/10 Javascript
django js 实现表格动态标序号的实例代码
2019/07/12 Javascript
微信小程序实现蓝牙打印
2019/09/23 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
2019/12/12 Javascript
微信小程序之左右布局的实现代码
2019/12/13 Javascript
Vue实现图片轮播组件思路及实例解析
2020/05/11 Javascript
Python 文件和输入输出小结
2013/10/09 Python
python每隔N秒运行指定函数的方法
2015/03/16 Python
简化Python的Django框架代码的一些示例
2015/04/20 Python
Python psutil模块简单使用实例
2015/04/28 Python
Python生成短uuid的方法实例详解
2018/05/29 Python
关于Python作用域自学总结
2019/06/10 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
详解用Python为直方图绘制拟合曲线的两种方法
2019/08/21 Python
如何获取Python简单for循环索引
2019/11/21 Python
Python面向对象之多态原理与用法案例分析
2019/12/30 Python
pytorch 把图片数据转化成tensor的操作
2021/03/04 Python
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
土地转让协议书
2014/09/27 职场文书
法律意见书范文
2015/05/20 职场文书
2016年领导干部廉政承诺书
2016/03/24 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python