原生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 相关文章推荐
IE/FireFox具备兼容性的拖动代码
Aug 13 Javascript
通过修改referer下载文件的方法
May 11 Javascript
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
Jun 21 Javascript
javascript引用赋值(地址传值)用法实例
Jan 13 Javascript
JavaScript中的数据类型转换方法小结
Oct 26 Javascript
jQuery Password Validation密码验证
Dec 30 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
Mar 08 Javascript
js实现自定义进度条效果
Mar 15 Javascript
基于jQuery实现瀑布流页面
Apr 11 jQuery
解决angular2 获取到的数据无法实时更新的问题
Aug 31 Javascript
微信小程序自定义导航栏
Dec 31 Javascript
p5.js绘制旋转的正方形
Oct 23 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
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
仿AS3实现PHP 事件机制实现代码
2011/01/27 PHP
php 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
2020/10/01 PHP
zend framework重定向方法小结
2016/05/28 PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
2018/10/16 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
javascript根据像素点取位置示例
2014/01/27 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
angularjs实现与服务器交互分享
2014/06/24 Javascript
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
javascript实现动态标签云
2015/10/16 Javascript
javascript动态添加checkbox复选框的方法
2015/12/23 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
微信小程序实现全国机场索引列表
2018/01/31 Javascript
vue 本地服务不能被外部IP访问的完美解决方法
2018/10/29 Javascript
详解js创建对象的几种方法及继承
2019/04/12 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
2020/08/31 Javascript
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
使用python编写一个语音朗读闹钟功能的示例代码
2020/07/14 Python
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
MCM英国官网:奢侈皮具制品
2017/04/18 全球购物
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
最好的商品表达自己:Cafepress
2019/09/04 全球购物
信用社员工先进事迹材料
2014/02/04 职场文书
环保倡议书100字
2014/05/15 职场文书
欢迎词怎么写
2015/01/23 职场文书
放弃遗产继承公证书
2015/01/26 职场文书
Python爬虫之自动爬取某车之家各车销售数据
2021/06/02 Python
python如何利用traceback获取详细的异常信息
2021/06/05 Python
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA