js基础篇四
来源:互联网 发布:seo网站推广服务 编辑:程序博客网 时间:2024/05/16 12:07
事件应用
1.list document.getElementById();静态方法list li document.getElementByTagName();动态方法2.btn.onclick = f1;this触发事件的对象,有触发动作的就是触发对象,其他所有的都是window。3.getElementsByTagName最大特点就是它是动态的。还和ID的区别就是可以不用documentgetElementById 只能由document调用因为id在页面中是唯一的。例如:oUl.getElementsByTagName;4.div.innerHTML += '<input type="button" value="按钮">';性能有问题,firfox直接崩溃5.div.innerHTML += '<input type="button" value="按钮">';性能有问题,firfox直接崩溃str += '<input type="button" value="按钮">';div.innerHTML = str;不与页面发生直接关系,直接一次性写入而不是每次写入,性能优化。6. div3.onclick = function () { div3.style.cssText = 'width:100px;height:100px'; }; btn2.onclick = function () { div3.style.cssText = ''; }; 还原CSSText相当于在js里面一个一个改变,将行内元素的样式变为没有,回到原来的状态。
面向对象
1.this指向,正常情况下函数内的this函数属于谁那么this就属于谁(但是有 new 的情况下就不同了这时this指向new 出来的对象)2.构造函数也就是类class3.class 改变一类的样式 prototype 行内样式 改变一个元素 给对象加方法 实例是没有原型的Array.prototype.a = 12;var arr = [1,2,3];console.log(arr.a); //12 样式表arr.a = 5;console.log(arr.a); //5 行内样式(优先级高)delete arr.a;console.log(arr.a); //12 行内样式删除类 模具对象(实例) 蛋糕var arr = new Array();Array类 不具备实际功能,只可以用来构造对象arr对象 真正有功能的东西,被类构造出来的。原型的重要的一个功能,给系统对象扩展。Array.prototype.sum = fun;一个构造函数其实就是一个类。创建一个对象就是new 一个函数,date = new Date();Date()函数,即类构造函数首字母大写不一样的东西当做属性添加,而相同的东西用原型方法添加;4.this出错的问题 1.定时器:所有定时器里面函数都是指向window, var _this = this; setInterval(function () { _this.show(); },1000); 2.事件 var _this = this; document.getElementById('btn1').onclick = function () { _this.show(); };解决办法:利用临时变量存储this 再嵌套一层函数5. 构造对象的方法:1.构造函数 2.json方法 优点:方便 缺点:不能new实例,适合单一的一个对象。6.将对象一层一层的嵌套起来,便于管理,这就叫 -- 命名空间var Airfald = {};Airfald.common = {...};Airfald.common.main = {...};7.Worker.prototype = Person.prototype;解决办法:通过复制 (构造函数)继承属性,通过(原型继承)父类方法,这种写法相当于引用。影响了父类 Person.call(this,name,sex); this.job = job; for (var x in Person.prototype) { Worker.prototype[x] = Person.prototype[x]; } 在这里的继承都是通过复制父类属性方法得到的。8.console.log(xiaohong instanceof Worker); 查看对象是否是某个类的实例9. Global Math.ceil() 不需要实例化就可以用 -- 静态对象 -- 内置对象 Array 需要实例化new 出来才可以用 -- 非静态对象 -- 本地对象
HTML兼容性问题
<!-- inline-block IE6,7不支持inline-block; 1.清除浮动:1.父级设置宽高(写死了) 2.父元素浮动(父级很多,无法居中等) 3.空div clear:both (最小高度问题)在IE6下高度小于19px,被当做19px;所以空div可以看到; 解决:font-size = 0; overflow:hidden 4.<br clear = "all"> 5.父级overflow 6.父级:after {content:"";display:"block";clear:both;} zoom:1;两者结合就没有问题 IE6,7不支持a那四个以外的伪类; IE6,可以设置宽度不用清除浮动,或zoom:1(详细见hasLayout) 建议:一个元素浮动要并在同一行的其他元素都要浮动。 IE6双边距bug: (块)元素(有浮动时 属性类型inline-block)有横向的margin放大成了两倍 解决办法:display:inline; IE6,7 li下本身不浮动内容浮动那么li下面多出几个px间隙; 1.给li加浮动 2.设置vertical-align:middle,top,bottom (不设置宽高显现出来)图片基线下面的空隙:vertical-align:top; vertical-align两个块要对齐则两个都要设置(例如:div1,div2中间对齐,这两个都要设置middle) -->
HTML兼容性二
1. right:0; bottom:0;absolute 滚动条移动会改变位置 fixed 滚动条移动不改变位置2.IE6下不支持fixed,使用js结合使用进行兼容;3.不要给table,th,td以外的加样式(tbody,tr等等有兼容性的问题);、4.table决定了真个表格的宽度,即使里面设置了宽高;但是有内容的时候根据内容来决定你的宽高,设置比内容小的宽度没有用。(表格每一列都加上宽度)表格同一竖列继承最大的宽度。内容可以撑开表格宽度5.表单label元素;<label><input type="text" value="男"></label>(不兼容IE6) <input type="text" value="男" id="男"><label for="男"></label>(解决办法6. <input type="file">各浏览器表现不一致无法兼容,flash进行操作7.表单元素全都是inline-block,单选和多选表现不一致不一般不会设置宽高select高度控制不怎么好。只会设置宽度,漂亮的用模拟实现。textarea宽高不能拉伸resize = 'none';默认滚动条去除overflow:auto;outline去掉焦点线;8.解决input背景滚动的方法,在input外层加上一个div,input没有边框和背景。
阅读全文
0 0
- js基础篇四
- JS基础四
- js基础练习(四)
- JS基础学习(四)
- 【Node.js基础篇】(四)Node.js实现文件路由功能
- JS面向对象的基础(四)
- 【cocos2d-js官方文档】四、基础数据类型
- 【cocos2d-js官方文档】四、基础数据类型
- JS温习:基础(四) 继承,原型
- Web基础系列四、Angular JS
- JS基础加强四_面向对象
- Jquery基础(四) JS的Document属性和方法
- week10---11月11日 JS基础(四)
- Node.js的学习历程四npm的基础知识点
- javascript基础笔记(四)之js里面的语句
- 微信小程序 Node.js (基础四) 事件循环
- 【js基础】js基础巩固——DOM操作(四)
- 多线程编程 基础篇 (四)
- oracle总结
- GO语言slice
- 递归思想:汉诺塔问题
- 关于tomcat支持软连接的设置
- Linux下编译安装redis,详细教程
- js基础篇四
- 找出数组中出现次数大于一半的数字 Java实现 剑指offer
- COGS 2274. [HEOI 2016] tree
- NSOperation的基本用法
- [BZOJ2734]集合选数
- map、set和unordered_map、unordered_set对比
- mapreduce过程
- Spark MLlib 入门学习笔记
- 【百度、腾讯、阿里等】+【JAVA开发实习生】+春招面试经验