为了账号安全,请及时绑定邮箱和手机立即绑定

js获取style属性值的问题

这节课里面老师说用obj.style.attr获取obj的属性attr,这种方法必须是在属性attr通过内嵌在标签里面才能读取到,是这个意思吗,比如:

<style type = "text/css">
div{
    width:200px;
    height:60px;
    background: yellow;
}
</style>
<script type = "text/javascript">
    var obj = document.getElementById("div1");
    obj_width = obj.style.width;
</script>
<body>
    <div id = "div1"></div>
</body>

按照老师 的意思,是不是就是说,上面代码的obj_width = obj.style.width;
这句是无效的,获取不到div1的width值,因为js代码无法获取CSS里面的样式,只能获取内嵌在标签里面的CSS样式,所以如果想要以这种办法获取目标属性,必须把目标想要被获取的CSS属性写在这里面:<body><div id = "div1" style = "width:200px"></div></body>只有这样才能用obj.style.attr获取相应的属性呢?

但是在前一节课中,CSS定义在<style></style>里,用obj.style.attr还是能获取到相应的属性啊,为什么呢?好乱啊。。。

上一节课的代码,完全可以跑起来啊,并不会出现obj.type.attr获取不到CSS里面样式的情况,为什么呢?

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        *{
            margin:0;
            padding:0;
        }
        ul,li{
            list-style: none;
        }
        ul li{
            width: 200px;
            height: 100px;
            background: yellow;
            margin-bottom: 20px;
            filter:alpha(opacity:30);
            opacity: 0.3;
        }
    </style>
    <script type="text/javascript">
        window.onload = function () {
            var aLi = document.getElementsByTagName('li')
            for(var i = 0; i<aLi.length; i++){
                aLi[i].timer = null;
                aLi[i].onmouseover = function () {
                    move(this,400);
                };
                aLi[i].onmouseout = function () {
                    move(this,200);
                }
            }
        };

        function move(obj,target) {
            clearInterval(obj.timer);
            obj.timer = setInterval(function () {
                var speed = (target - obj.offsetWidth)/8;
                speed = speed>0? Math.ceil(speed):Math.floor(speed);
                if (obj.offsetWidth == target){
                    clearInterval(obj.timer);
                }else {
                    obj.style.width = obj.offsetWidth + speed + 'px';
                }
            },30)
        }
    </script>
</head>
<body>
<ul>
    <li></li>
    <li></li>
    <li></li>
</ul>
</body>
</html>

574565aa0001c2e905000367.jpg

574565ab0001a15605000183.jpg

求高人指点,不胜感激!

正在回答

4 回答

恩恩,应该是这样吧

0 回复 有任何疑惑可以回复我~

亲,我们前面的课程,都是用element.style.xxxxxx =xxxxx; ——这个是设置,不是读取嗷

0 回复 有任何疑惑可以回复我~

因为在style标签里写的width属性值为200,你读取的时候只能读取到200px这个值,而写在内置标签里,才可以随意读取和写入,可以变化

0 回复 有任何疑惑可以回复我~
#1

Naritheon 提问者

谢谢你的回复,我的意思是想问,如果width写在style标签里面,是不是用.style.attr这种方法就读取不到了,但是可以用这种方法写入?如果把width放在内置标签里面,.style.attr方法可以就可以读取出来了,也可以写入,是这样理解的吗?
2016-05-26 回复 有任何疑惑可以回复我~

你说的是啥????????

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

js获取style属性值的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信