前端学习(三)js

一、概述

1、元素(对象)、事件、函数、变量

2、元素的属性相关

(1)属性基本 html 怎么写 js 就怎么写,除了 class 外:div.className=" ";

(2)属性的另外一种写法:div[属性名],这种写法可以传参,上面的不可以;

3、关于 style 属性

(1)style 属性无论是增加还是获取都是取行间,行间没有的话,取值的时候取不到;

(2)style 的优先级高于 className;

4、JS组成:ECMA   BOM  DOM

二、基础应用

1、基础

(1)变量:弱类型

  • 类型的转换:parseInt(字符串转数字)、parseFloat(转为浮点)、隐式转化;
  • NaN的判断:isNaN(a);
  • 变量的作用域:全局变量和局部变量;
  • 闭包:子函数可以使用父函数的局部变量;

(2)运算符

(3)流程控制:if、switch、?(三目)、for、while(break和continue)-----基本和java一样的用法

(4)JSON:可以用:for(var  i  in  json)来进行遍历

2、高级

(1)函数返回值和参数

  • arguments(可变参):数组,存的传入的参数,可以用for 遍历
  • 获取非行间的样式:
oDiv.currentStyle.width //iE
getComputedStyle(oDiv,null).height //firefox and chrome
  • true 和 false:数字0为false,字符串''为false,对象null为false,undefine为false

(2)数组基础

  • Array 的length 属性既可以获取也可以设置;
  • 数组的方法:

        

  • splice:可以插入、删除和替换:splice(起点,长度,添加的数据)
  • concat:数组的连接
  • join:元素连接成字符串
  • sort:本身只能排字符串,通过定义比较函数来排序数字 :function (n1,n2){return n1-n2}

3、定时器

(1)定时器的作用

  • 开启:setInterval(函数,时间)---循环执行;setTimeout()---只执行一次;
  • 关闭:clearInterval;clearTimeOut
  • 应用:数码时钟,延时提示框、无缝滚动

(2)Date 对象

  • 获取时分秒:getHours()、getMinutes()、getSeconds()
  • 获取年月日:getFullYear()、getMonth()+1、getDate()、getDay()---星期

(3)运动基础

  • 绝对定位:position:absolute;left:50px;top:50px;
  • offsetLeft | offsetTop:获取元素的左边距和上边距

    

三、DOM应用

1、dom基础

(1)dom 节点:

  • 父节点的获取:parentNode、offsetParent(获取有定位的父节点);
  • 子节点的获取:childNodes和nodeType(也可以用children);

     

(2) 元素的属性操作:

  • obj.value 和 obj["value"]
  • setAttribute | getAttribute | removeAttribute

(3)dom元素灵活查找:

  • 用 className 来获取元素,封装函数 getByClass(oParent,sClass)

(4)创建、插入和删除元素

  • createElement | appendChild(加在末尾,也是先删后加)| insertBefore(节点,指定节点)--加在前面;
  • removeChild()

(5)文档碎片(*):createDocumentFragment----几乎不用

2、dom高级

(1)表格应用

  • 表格的便捷操作:tHead、tFoot、tBodies、rows、cells;
  • 表格的隔行变色;
  • 添加和删除一行;
  • 搜索和排序;

(2)表单应用

  • 事件:onsubmit、onreset;
  • 表单的验证;

四、JS运动技术

1、运动基础

2、运动框架

(1)开始运动前先关闭已有的定时器;

(2)将运动和停止的状态用 if else 隔开;

(3)练习:侧边栏、图片的淡入淡出;

3、缓存运动

(1)速度越来越慢,最后停止;

(2)速度=(目标值-当前值)/缩放系数;

(3)缓冲菜单:速度取整;目标值取整;

4、匀速运动的停止条件

(1)距离小于速度就停止;

(2)再手动将元素移到目标点;

5、多物体运动框架

(1)多物体运动框架很多东西都不能公用,定时器和透明度的变量等,解决方法就是给每个元素设置自定义属性;

(2)

6、任意值的运动框架

(1)

猜你喜欢

转载自blog.csdn.net/stanwuc/article/details/82705593