用js的style属性可以获得html标签的样式是不能获取非行间样式,那为什么前几节课老师可以使用啊

来源:4-2 获取样式

jazia

2016-09-22 18:02

function move(target){

clearInterval(timer);

var oDiv=document.getElementById('div1');

timer=setInterval(function(){

var speed=(target-oDiv.offsetLeft)/20;

speed=speed>0?Math.ceil(speed):Math.floor(speed);

if(oDiv.style.offsetLeft==target){

clearInterval(timer);

}else{

oDiv.style.left=oDiv.offsetLeft+speed+"px";//这里不就是可以获取非行间样式吗?

}

},30)

}


function change(obj,target){

clearInterval(obj.timer);

var speed=obj.alpha>target?-10:10;

obj.timer=setInterval(function(){

// var speed=alpha>target?-10:10;

// speed=speed>0?Math.ceil(speed):Math.floor(speed);

if(obj.alpha==target){

clearInterval(obj.timer);

}else{

obj.alpha+=speed;

obj.style.filter='alpha(opacity:'+obj.alpha+')';

obj.style.opacity=obj.alpha/100;//还有这里

}

},30)

}

这些是前面课程的部分内容,感觉跟这节课有点矛盾啊,难道left和opacity不是DOM的属性吗

写回答 关注

3回答

  • 墨小漓
    2016-09-23 17:09:26
    已采纳

    首先css样式表有三种样式,

    一、内联样式

    在HTML标签用style属性设置,如 :

    <p style="color:#f90;">这是内联样式</p> 

    二、嵌入样式

    通过<head>标签内通过<style>标签设置。如:

     <style type="text/css">

        /*这是嵌入样式*/

       .stuff{color:#f90}

    </style>

    三、外部样式

    通过<link>标签设置。如:

    <link rel="stylesheet" href="path/style.css" type="text/css">

    而在javascript中,获取这三种样式表的方法是有限制的,style只能获取元素的内联样式,

    嵌入样式和外部样式使用style是获取不到的,javascript提供了另外的获取方式,嵌入样式和外部样式可以通过currentStyle(IE浏览器)、getComputedStyle(Firefox、opera、safari、chrome浏览器)的方式获取。

    使用方法分别是window.currentStyle["attr']和window.getComputedStyle(ob, pseudoElt)["attr']。

    哈,其实刚开始的时候小白也不怎么懂,可能小白说的你也不是很明白,你可以参照这篇学习笔记

    人家理解得可比我这半吊子水平透彻多了

    ( ╯□╰ )好吧,小白承认好像抄袭了,逃。。。


    你看起来似乎...

    之前是设置样式,现在是获取样式

    2016-09-27 11:42:46

    共 6 条回复 >

  • 慕仔9520065
    2017-06-17 17:42:14

    我也遇到同样的困惑了,style只能获取元素的内联样式,那为什么我们在嵌入样式上写的代码也能获取的到呢?

  • 墨小漓
    2016-09-23 11:23:53

    因为没有加边框border等属性,所以使用时有些问题没有呈现出来。多物体动画,任务属性一那节她解释了。还有加了边框属性之后style.width=width+2*border;同理style.height=height+2*border;

    墨小漓 回复jazia

    ps 老师这里用的是嵌入样式,getStyle这个function里面封装了currentStyle、getComputedStyle方法。

    2016-09-23 17:13:29

    共 3 条回复 >

JS动画效果

通过本课程JS动画的学习,从简单动画开始,逐步深入各种动画框架封装

113924 学习 · 1443 问题

查看课程

相似问题