IE8和IE7如何获取background-position属性值

IE8和IE7如何获取background-position属性值:
之所以要单独介绍一下如何获取background-position属性值,是因为在IE8和IE8以下浏览器中存在一定的兼容性问题,下面对此做一下简单介绍,希望能够给需要的朋友带来帮助。
一.使用style方式:
此方式只能够获取使用style方式定义的css样式属性,代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style type="text/css">
#thediv{
  width:100px;
  height:100px;
  background-color:green;
}
</style>
<script type="text/javascript">
window.onload=function(){
  var thediv=document.getElementById("thediv");
  thediv.innerHTML=thediv.currentStyle["backgroundPosition"];
}
</script>
</head>
<body>
<div id="thediv" style="background-position:10px 20px">蚂蚁部落</div>
</body>
</html>

以上代码在所有的主流浏览器都能够正确获取到background-position属性值,说明此种方式没有兼容问题。
二.获取样式表定义的属性:
如果css属性是在样式表中定义的,那么使用style方式就无能为力了,则需要更换方法,具体可以参阅getComputedStyle()和currentStyle属性的用法一章节,但是对于background-position属性要特别的小心,因为在IE8和IE8以下浏览器中并不支持backgroundPosition这种方式,而是支持backgroundPositionX和backgroundPositionY属性,所以要进行一下兼容性处理,代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style type="text/css">
#thediv{
  width:100px;
  height:100px;
  background-color:green;
  background-position:10px 20px
}
</style>
<script type="text/javascript">
function getStyle(obj,attr){
  if(obj.currentStyle){
    if(attr=="backgroundPosition"){
      return obj.currentStyle.backgroundPositionX +" "+obj.currentStyle.backgroundPositionY;
    }
    else{
      return obj.currentStyle[attr];
    }
  }
  else{
    return document.defaultView.getComputedStyle(obj,null)[attr];
  }
}
window.onload=function(){
  var thediv=document.getElementById("thediv");
  thediv.innerHTML=getStyle(thediv,"backgroundPosition")
}
</script>
</head>
<body>
<div id="thediv">蚂蚁部落</div>
</body>
</html>

以上代码实现了我们的要求,可以实现各个浏览器兼容。
相关阅读:
1.getComputedStyle()和currentStyle可以参阅getComputedStyle()和currentStyle属性的用法一章节。
2.innerHTML属性可以参阅js的innerHTML属性的用法一章节。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=11712

更多内容可以参阅:http://www.softwhy.com/javascript/

时间: 2024-10-10 02:40:05

IE8和IE7如何获取background-position属性值的相关文章

js中获取css样式属性值

关于js中style,currentStyle和getComputedStyle几个注意的地方 (1)用js的style只能获取元素的内联样式,内部样式和外部样式使用style是获取不到的. (2)currentStyle可以弥补style的不足(可获取内联样式,内部样式和外部样式),但是只适用于IE. (3)getComputedStyle同currentStyle作用相同,但是适用于FF.opera.safari.chrome. 注意: ① currentStyle和getComputedS

js解析xml,获取XMl标签属性值

<script type="text/javascript"> var xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +"<RecordInfo camId=\"1000000$1$0$0\" count=\"12\" />"; $(function(){ //加载xmlDoc v

jQuery如何获取指定type属性值的input元素

jQuery遍历input文本框并获取input的name属性值:因为input标签的type属性是多种多样的,例如text.radio.checkbox等,但是实际应用中往往需要获取某一类属性值的input元素,下面就通过实例简单介绍一下.代码实例如下: $("input:text", document.forms[0]).each(function(){alert(this.name)}); 以上代码可以获取type属性值为text的input元素,并且遍历弹出它们的name属性值

使用JavaScript获取样式的属性值

1 . 在js中可以使用style属性来获取样式的属性值(只能获取内联样式的属性值) 语法格式为: HTML元素.style.样式属性; 2 .   在IE浏览器中,使用currentStyle来获取属性值 语法格式为: HTML元素.currentStyle.样式属性: 3 . DOM提供了一个getComputedStyle()方法来获取属性值, Firefox,Opera,Safari,Chrome等浏览器支持(IE浏览器不支持) 语法格式: document.defaultView.ge

JS 获取元素的属性值,非内联样式

//获取样式表的属性值,IE8及以下不兼容 ,方法 window.getComputedStyle(dom对象,"伪类").style属性; //IE8及以下获取样式表的属性值 ,属性 element.currentStyle.style属性; 判断浏览器是否兼容 getComputedStyle 和 currentStyle if( window.getComputedStyle ){ } else if( document.body.cyrrentStyle ){ }

java反射获取对象的属性值和对象属性中的子属性值

近段时间在做web项目,前端使用的是jQuery EasyUI. 为方便需要,准备做一个前端通用的Datagird导出Excel功能,博主也考虑过思路和最终功能,1.前端选中行导出:2.当前页导出:3.当前过滤条件导出. 想偷懒在网上找找已有的代码改改,发现大部分只能满足个别需求,使用JS导出只能满足前端,使用代码才能实现3功能. ...... 好了,说了一堆废话,回归正题,本文是在做通用自定义字段导出时所需要,根据属性名去查找对象和子对象,找到对应属性值,抓取回来放到Excel中. 直接上代码

CSS中display/float/position属性值的相互影响

有3个属性和布局以及box的创建有关:'display', 'position' 和 'float',彼此交互作用如下: 如果'display'值为'none',则'position' 和 'float'无作用.这种情况下,不生成box.否则,如果'position'值为'absolute' 或 'fixed', box被绝对定位,'float'的计算值为'none',而'display'的值按下表设定.box的位置将由'top', 'right', 'bottom' 和 'left' 属性及其

点击select下拉框获取option的属性值

select下拉框作为前端开发者应该是经常使用的,最近在项目中遇到这样的情况,点击下拉框选项,需要获取所点击的option的属性值,当时想很简单啊,给option加一个点击事件不就行了,然后就加了一下,结果一运行悲催了,怎么点击option事件就是不会执行.这是为什么呢,刚开始也不懂,之前没遇到过这样的需求,后来经过学习,才恍然大悟,原来select option没有点击事件,要想获得所选option的属性值,需要通过jquery的change()方法来获取,下面通过代码解释一下,代码如下: <

CSS position 属性值:

1.absolute:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位.元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定. 2.relative:生成相对定位的元素,相对于其正常位置进行定位.因此,"left:20" 会向元素的 LEFT 位置添加 20 像素. 3.fixed:生成绝对定位的元素,相对于浏览器窗口进行定位. 4.st