博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js的DOM编程艺术笔记(三)
阅读量:7222 次
发布时间:2019-06-29

本文共 1748 字,大约阅读时间需要 5 分钟。

hot3.png

1.JS实现动画效果:【动画就是让元素的位置随着时间不断的发生变化】

2.使用js编写动画效果:使用到setTimeout()方法来使得元素进行方向的移动

【核心:1.setTimeout()方法; 2.编码图片的来回闪动,确保只有一个setTimeout()函数,使用元素的属性作【eleNode.moveFlag:自定义属性】为变量接受 setTimeout的返回值,t同时使用clearTimeout来删除其他的setTimeout();3.函数的封装】

//移动函数

function  doMove(eleId, final_x, final_y ,interval){
 var eleNode = document.getElementById(eleId);
 var px = parseInt(eleNode.style.left);
 var py = parseInt(eleNode.style.top);
 if(eleNode.moveFlag){
     clearTimeout(eleNode.moveFlag);
 }
 if(px<final_x){
     px++;
 }
 if(px>final_x){
     px--;
 }
 if(py<final_y){
     py++;
 }
 if(py>final_y){
     py--;
 }
 eleNode.style.left = px+"px";
 eleNode.style.top = py+"px";
 
 var repeat = "doMove('"+eleId+"',"+final_x+","+final_y+","+interval+")";
eleNode.moveFlag = setTimeout(repeat, interval); //递归执行domove()函数

}

3:【待解决问题】在window.onload = function(){

    var lis = document.getElementsByTagName("li");
    for(var i = 0; i<lis.length;i++){
        lis[i].onclick = function(){
            this.style.fontWeight = "bold";//this和lis[i]的区分【js的闭包问题??】
        }
    }
}

 

4.js的DOM编程艺术的总结:

1.在DOM中节点就是对象

2.元素节点;文本节点;属性节点三者的关系【见笔记一中的图】

3.有些方法或者属性是针对不同的节点的【使用过程中注意】

4.每一个节点都有 nodeName, nodeType, nodeValue 这三个基本的属性

5.遍历节点: childNodes属性 : 找到给定元素节点的所有元素节点和文本节点【其中空格换行也被当作文本节点; children属性只返回所有的元素节点】;firstChild :第一个子节点 ; lastChild :最后一个子节点 ; nextSibling:给定元素的下一个节点【给定元素必须要和钙元素有共同的父节点,否则返回null】; parentNode : 返回父节点【parentNode只能返回一个元素节点,因为只有元素节点才会有子节点】;

previousSibling:返回给定元素的上一个元素【如果给定元素的前面没有同一个父节点的节点,则会返回null】

6.js写一个 一直返回的是元素节点的函数

function getEleNode(eleId){

 var parentNode = document.getElementById(eleId);
 var aryNode = parentNode.childNodes;
 var aryEle = new Array();
 var j =0;
 for(var i=0;i<aryNode.length; i++){
  if(aryNode[i].nodeType == 1){
    aryEle[j] = aryNode[i];
    j++;
  }
 }
 return  aryEle;
}

转载于:https://my.oschina.net/u/2870118/blog/855723

你可能感兴趣的文章
不想转型高升?12条箴言助IT人士提高效率
查看>>
为什么你有10年工作经验,却根本不值钱?(深度好文)
查看>>
shell 脚本攻略--命令之乐
查看>>
字符编码方式
查看>>
在 CentOS上安装配置 Ganglia-3.4.0
查看>>
linux 打包和压缩的概念和区别
查看>>
C++ 模版整理
查看>>
NOIP 2012 提高组第一试模拟赛 魔法树 Solution
查看>>
HTML设置焦点
查看>>
团队进展报告(4)
查看>>
mysql c api 编程(一)
查看>>
【原创】MySQL和PostgreSQL 导入数据对比
查看>>
Linux awk: print中存在变量的情况
查看>>
Exchange2010安装配置篇三 证书服务
查看>>
JavaScript数据结构-栈
查看>>
当信息安全遇上应用交付
查看>>
“中国经济脱轨论”是小人之言
查看>>
Oracle RAC日常基本维护命令
查看>>
QT Sqlite ARM 编写程序
查看>>
Oralce7和Oralce8里大对象的比较
查看>>