博客主题访问地址:https://github.com/logan70/logan70.github.io
// 设置定时器,获取需要移动的元素
var timer = null,
box = document.getElementById('box');
function moveAnimation(target) {
// 函数开始清除定时器,防止定时器叠加
clearInterval(timer);
// 定义速度
var speed = 0;
// 根据当前位置与目标位置的大小关系来确定速度的正负值
if (target > box.offsetLeft) {
speed = 1;
} else {
speed = -1;
}
timer = setInterval(function(){
if (box.offsetLeft == target) {
// 当运动到目标位置时清除定时器
clearInterval(timer);
} else {
// 设置位置的变化
box.style.left = box.offsetLeft + speed + 'px';
}
},3)
}
二叉树(Binary Tree)是n(n>=0)个结点的有限集合,该集合或者为空集(空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。
每个结点最多有两棵子树,所以二叉树中不存在度大于2的结点。二叉树中每一个节点都是一个对象,每一个数据节点都有三个指针,分别是指向父母、左孩子和右孩子的指针。每一个节点都是通过指针相互连接的。相连指针的关系都是父子关系。
display: other values | flex | inline-flex;
这个主要用来创建主轴,从而定义了伸缩项目放置在伸缩容器的方向。
flex-direction: row | row-reverse | column | column-reverse
Ctrl
+K
+B
Ctrl
+H
Ctrl
+D
Ctrl
+K
, Ctrl
+D
Alt
+F3
Ctrl
+p
打开功能
view/index.html
表示查找view
文件夹下的index.html
@
可以查询css中的选择器或js中的函数 如:@body
可以快速定位到当前文件的body标签function getElementsByClassName(node,classname) {
if(node.getElementsByClassName) {
//如果方法存在,则使用现有的方法
return node.getElementsByClassName(classname);
}else {
var results = new Array(),
elems = node.getElementsByTagName('*');
for(var i=0;i<elems.length;i++){
if(elems[i].className.indexOf(classname) != -1){
results.push(elems[i]);
}
}
return results;
}
}
element.childNodes
element.childNodes[0]
等同于element.firstChild
element.childNodes[element.childNodes.length-1]
等同于element.lastChild
node.nodeType
// 改变元素内文本的内容
var box = document.getElementById('box');
box.childNodes[0].nodeValue = "hello world!";
function addLoadEvent(func) {
var oldonload = window.onload;
if(typeof window.onload != 'function'){
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
var text = document.createTextNode('hello world');
box.appendChild(text);
在已有元素前插入一个新元素
// 语法
parent.insertBefore(newElement,targetElement);
// 使用
var newEle = document.createElement('p');
var box document.getElementById('box');
box.parentNode.insertBefore(newEle,box);
重点是element.nextSibling
function insertAfter(newElement,targetElement) {
var parent = targetElement.parentNode;
parent.insertBefore(newElement,targetElement.nextSibling);
}
firstChild
, lastChild
, nextSibling
, previousSibling
都会将空格或者换行当做节点处理,使用需谨慎
firstElementChild
: 父元素的第一个元素节点lastElementChild
: 父元素的最后一个元素节点nextElementSibling
: 下一个元素节点previousElementSibling
: 上一个元素节点childElementCount
: 子元素节点数量open(method,url,saync)
method
: 请求方式,get/post
,不区分大小写。一般用大写url
: 请求地址(相对/绝对)async
: 异步/同步,true/false
send(string)
GET
方法时,不填或者填null
,(实际没有主体,参数都拼在url
中)POST
方法时,一定要填0
:请求未初始化,open
还没有调用1
:服务器连接已建立,open
已调用2
:请求已接收,接收到头信息了3
:请求处理中,接收到响应主体了4
:请求已完成,响应已就绪responseText
:获得字符串形式的响应数据responseXML
:获得XML形式的响应数据status
和statusText
:以数字和文本形式返回的HTTP状态码getAllResponseHeader()
:获取所有的响应报头getResponseHeader(string)
:查询响应中的某个字段的值通过onreadystatechange
函数
var request = new XMLHttpRequest();
request.open('GET','get.php',true);
request.onreadystatechange = function(){
if(request.readyState == 4 && request.status == 200){
console.log(request.responseText)
}
}
##
安装nodejs -> 全局安装gulp -> 项目安装gulp以及gulp插件 -> 配置gulpfile.js -> 运行任务
$ npm install gulp -g
└── src/ 源码目录 ├── build/ .html 组件 ├── sass/ .scss .sass 文件 ├── css/ .css 文件 ├── js/ .js 文件 └── img/ 图片 └── dist/ 输出目录 └── package.json └── gulpfile.js
可以在项目上使用 npm init 配置,推荐直接新建并写入初始内容:
package.json
{
“name”: “gulp-build”,
“version”: “1.0.0”,
“description”: “Gulp.js”,
“private”: true
}
对于完整的 package.json (比如别人的开源项目), 只需对整个项目执行 npm install 即可安装 package.json 文件中声明的所有插件模块。