JavaScript中封装class函数学习笔记

封装: 把相同功能的代码丢到一个函数中,重复调用。
封装css函数 : 1,可以获取元素的样式 2,可以修改元素的样式。
封装的过程是循环渐进的,一步一步的来。
本节第一、二、三、五、六步公用CSS:

#div1 { width: 100px; height: 150px; background: red;}

本节第一、二、三、五、六步公用HTML:

<div id="div1" ></div>

封装第一步:
JS:
function a(idName){ 

  

    return document.getElementById(idName);   

}  

  

window.onload = function(){  

      

    var oDiv = a('div1');  

      

    oDiv.onclick = function(){  

  

        //alert(oDiv.style.width); //style 只能获取到写在行间的样式。  

          

        alert(oDiv.currentStyle.width); //ie浏览器独有的属性,标准浏览器不支持。currentStyle:对象;  

          

        alert(getComputedStyle(oDiv,false).height);  

        //标准浏览器的方法,ie6/7/8  

          

    };  

      

/* 

 

getComputedStyle: 

 

    第一个参数: 指定是获取哪个元素的样式。 

     

    第二个参数: 没有实际意义,完全是为了向下兼容,可以是任何一个合法的变量值。 

 

 

*/  

      

};

封装第二步:

function a(idName){  

    return document.getElementById(idName);   

}  

  

window.onload = function(){  

      

    var oDiv = a('div1');  

      

    oDiv.onclick = function(){  

      

        //alert(oDiv.style.width); //style 只能获取到写在行间的样式。  

          

        if(oDiv.currentStyle){  

          

            alert(oDiv.currentStyle.width); //ie浏览器独有的属性,标准浏览器不支持。  

          

        }else{  

          

            alert(getComputedStyle(oDiv,false).width);  

        //标准浏览器的方法,ie6/7/8  

          

        }  

          

    };  

/* 

 

getComputedStyle: 

 

    第一个参数: 指定是获取哪个元素的样式。 

     

    第二个参数: 没有实际意义,完全是为了向下兼容,可以是任何一个合法的变量值。 

*/  

      

};

封装第三步:

function a(idName){  

  

    return document.getElementById(idName);   

      

}  

  

window.onload = function(){  

      

    var oDiv = a('div1');  

      

    oDiv.onclick = function(){  

      

        alert(css(this,'height'));   //传递参数   

          

    };  

      

    function css(obj,attr){   //接受参数  

          

        if(obj.currentStyle){  

          

            return obj.currentStyle[attr];  

          

        }else{  

          

            return getComputedStyle(obj,false)[attr];  

                      

        }  

          

    }  

      

/* 

 

obj.style.width / obj['style']['width'] 

 

*/  

      

      

/* 

getComputedStyle: 

 

    第一个参数: 指定是获取哪个元素的样式。 

     

    第二个参数: 没有实际意义,完全是为了向下兼容,可以是任何一个合法的变量值。 

 

*/  

};

封装第四步:

HTML:

<div id="div1" style=" width: 200px;"></div>  

JS:

function a(idName){  

  

    return document.getElementById(idName);   

      

}  

  

window.onload = function(){  

      

    var oDiv = a('div1');  

      

    oDiv.style.width = '300px';  

      

    oDiv.onclick = function(){  

      

        //alert(css(this,'height'));          

        //alert(css(this,'backgroundColor'));             

              

        alert(css(this,'width'));         

          

    };  

      

    function css(obj,attr){  

          

        if(obj.currentStyle){  

          

            return obj.currentStyle[attr];  

          

        }else{  

          

            return getComputedStyle(obj,false)[attr];  

                      

        }  

          

    }  

      

/* 

 

获取元素样式需要注意的三点: 

 

    1,只能获取,不能设置。 

     

    2,获取到的是计算后的样式。  计算后的样式: 最终生效的样式。 

     

    3,只能获取非复合样式。 

 

 

 

复合样式: 

 

    background : color / image / position / repeat... 

 

    margin / padding / border / font ... 

     

     

    border-width: border-left-top... 

     

非复合样式: 

 

    width / height ... 

     

    background-color; 

 

*/  

};  

封装第五步:

function a(idName){  

  

    return document.getElementById(idName);   

      

}  

  

window.onload = function(){  

      

    var oDiv = a('div1');  

      

    //oDiv.style.width = '300px';  

      

    oDiv.onclick = function(){  

      

        //alert(css(this,'height'));          

        //alert(css(this,'backgroundColor'));             

              

        //alert(css(this,'width'));       

          

        css(this,'width','300px');  

          

    };  

      

    function css(obj,attr,val){  

          

/*       

        if(obj.currentStyle){ 

         

            return obj.currentStyle[attr]; 

         

        }else{ 

         

            return getComputedStyle(obj,false)[attr]; 

                     

        } 

*/    

        obj.style[attr] = val;    

          

    }  

      

/* 

 

获取元素样式需要注意的三点: 

 

    1,只能获取,不能设置。 

     

    2,获取到的是计算后的样式。  计算后的样式: 最终生效的样式。 

     

    3,只能获取非复合样式。 

 

 

 

复合样式: 

 

    background : color / image / position / repeat... 

 

    margin / padding / border / font ... 

     

     

    border-width: border-left-top... 

     

非复合样式: 

 

    width / height ... 

     

    background-color; 

 

*/  

};  

封装第六步:

function a(idName){  

  

    return document.getElementById(idName);   

      

}  

  

window.onload = function(){  

  

      

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

    var oDiv=a('div1');  

      

    //oDiv.style.width = '300px';  

      

    oDiv.onclick = function(){  

      

        //alert(css(this,'height'));          

        //alert(css(this,'backgroundColor'));             

              

        alert(css(this,'width'));         

          

        //css(this,'width','300px');  

          

    };  

      

    function css(obj,attr,val){  

          

        //if(arguments.length == 2){  

        if(!val){  

                  

            if(obj.currentStyle){  

              

                return obj.currentStyle[attr];  

              

            }else{  

              

                return getComputedStyle(obj,false)[attr];  

                          

            }  

          

        }else{  

      

        //alert('abc');  

            obj.style[attr] = val;  

          

        }  

          

    }  

      

/* 

 

获取元素样式需要注意的三点: 

 

    1,只能获取,不能设置。 

     

    2,获取到的是计算后的样式。  计算后的样式: 最终生效的样式。 

     

    3,只能获取非复合样式。 

 

 

 

复合样式: 

 

    background : color / image / position / repeat... 

 

    margin / padding / border / font ... 

     

     

    border-width: border-left-top... 

     

非复合样式: 

 

    width / height ... 

     

    background-color; 

*/  

};

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索函数
, 浏览器
, div
, 参数
this
,以便于您获取更多的相关知识。

时间: 2024-08-03 09:45:52

JavaScript中封装class函数学习笔记的相关文章

JavaScript中自定义事件的学习笔记

在web前端开发中,很多人可能不会用到js的自定义事件,但如果是做一个相对来说比较大的项目,尤其是多人协同开发的时候,自定义事件就显得很重要了.那么,什么是js中的自定义事件呢?我们先来看一个例子: 前端开发员A封装了一个函数:  代码如下 复制代码 function move(){     alert(a);  //以此来代表N行代码 } 过段时间,前端开发员B要在A的基础上丰富这个函数,于是,他会这样写:  代码如下 复制代码 function move(){     alert(a); 

Python中的自定义函数学习笔记_python

定义一个什么都不做的函数 复制代码 代码如下: >>> def a(): ... pass ... >>> def printHello(): ... print("hello") ... >>> printHello() hello >>> callable(printHello) True 顾名思义,callable函数用于判断函数是否可以调用: 有书上说,callable在Python3.0中已经不再使用,而

Javascript中switch case 语句学习笔记

在if条件语句中,逻辑条件只能有一个,如果有多个条件,可以使用嵌套的if语句来解决,但这种方法会增加程序的复杂度,降低程序的可读性. 使用switch流程控制语句可以完美地解决这些问题,其基本结构如下: switch语句语法  代码如下 复制代码 switch(条件表达式) {         case 常量:         {                 语句a;         }         case 常量:         {                 语句b;     

javaScript中Blob对象的学习笔记

Blob表示二进制原始数据,一个Blob对象就是一个包含有只读原始数据的类文件对象. 继承Blob功能的API有: File对象:负责处理那些以文件形式存在的二进制数据,也就是操作本地文件: FileList对象:File对象的网页表单接口: FileReader对象:负责将二进制数据读入内存内容: URL对象:用于对二进制数据生成URL. 一. 创建Blob对象的方法 创建Blob对象的方法有三种,如下: 1)可以调用Blob构造函数. 2)还可以使用一个已有Blob对象上的slice()方法

重温JavaScript中的正则表达式 js学习笔记

一.创建正则表达式 创建正则表达式和创建字符串类似 , 创建正则表达式提供了两种方法 , 一种是采用 new运算符,另一个是采用字面量方式. 复制代码 代码如下: var dog = new RegExp('dog'); // 第一个参数字符串 var dog = new RegExp('dog', 'ig'); // 第二个参数可选模式修饰符 var dog = /dog/; var dog = /dog/ig; //字面量方式. RegExp 对象包含两个方法 : test() 和 exec

JavaScript中cookie工具函数封装的示例代码_javascript技巧

一. 语法 1.1 获取当前页面的所有cookie: var allCookies = document.cookie; allCookies 是一个字符串,其中包含了以分号分隔的cookie列表字符串 (即 key=value 键值对). 1.2 写一个新cookie: document.cookie = updatedCookie; updatedCookie是一个键值对形式的字符串.只能用这个方法一次设置或更新一个cookie,而且写入并不是覆盖,而是添加.例如: document.coo

Javascript中的匿名函数与封装介绍

 这篇文章主要介绍了Javascript中的匿名函数与封装介绍,本文分析了jQuery 封装.Backbone 封装.Underscore 封装等内容,需要的朋友可以参考下     迷惑了一会儿不同JS库的封装后,终于有了点头绪.大致就是: 代码如下: 创建一个自调用匿名函数,设计参数window,并传入window对象. 而这个过程的目的则是, 代码如下: 使得自身的代码不会被其他代码污染,同时也可以不污染其他代码. jQuery 封装   于是找了个早期版本的jQuery,版本号是1.7.1

javaScript中的this示例学习详解及工作原理

 这篇文章主要介绍了javaScript中的this示例学习详解及工作原理,大家参考使用吧 this的工作原理   如果一个函数被作为一个对象的方法调用,那么this将被指派为这个对象.   代码如下: var parent = {     method: function () {         console.log(this);     } };   parent.method(); // <- parent       注意这种行为非常"脆弱",如果你获取一个方法的引用

详解JavaScript中常用的函数类型_javascript技巧

网页中的java代码需要写在JavaScript中,里面部分少不了函数,介绍一下JavaScript中常用的函数类型.1.可变函数 <script> function show(){ alert("第一个..."); } function show(str){ alert("第二个"); } function show(a,b){ alert("第三个..."); alert(a+":"+b); } </sc