一. 设置背景图片
background-image: url("../images/wallhaven-zmlx1y.jpg");//传入背景图片
background-position: center;//背景图片位置居中
background-repeat: no-repeat;//背景图片平铺方式
background-size: cover;//浏览器会自动按比例缩放背景图
background-attachment: fixed;//当图片过大时,自动调节图片位置。
二. window中的setTimeout()方法 -->应用:js30中的第一个。
setTimeout(function(){ alert("Hello"); }, 3000);//3 秒(3000 毫秒)后弹出 "Hello" :
三. 相对于浏览器居中:绝对定位(absolute、fixed)
.box{
position: fixed;
margin: 0 auto;
left: 0;
right: 0;
top: 20%;
}
四. html中引入css和js文件时,放置的位置
CSS引入head中,原因是需要提前加载样式,给客户一个好的体验视觉
JS尽量在body的尾部引入,原因是可以缓解浏览器的压力,增强网页加载速度
五. JS Array的使用:
filter():
简介:
`filter()方法会创建一个新数组,原数组的`每个元素传入回调函数中,回调函数中有return返回值,若返回值为true,这个元素保存到新数组中;若返回值为false,则该元素不保存到新数组中;原数组不发生改变。
语法:
array.filter(function(currentValue,index,arr), thisValue)
/*其中currentValue是必选,index和arr是可选*/
例子:
- 在一个
Array中,删掉偶数,只保留偶数
var arr = [1,2,4,5,3,6,7,8,9,10];
var r = arr.filter(function (x) {
return x%2===0;
});
console.log(r);//[2, 4, 6, 8, 10]
filter()接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数,表示Array的某个元素。回调函数还可以接收另外两个参数,表示元素的位置和数组本身:
var arr = ['A', 'B', 'C'];
var r = arr.filter(function (element, index, self) {
console.log(element); // 依次打印'A', 'B', 'C'
console.log(index); // 依次打印0, 1, 2
console.log(self); // self就是变量arr --> 依次打印 ["A", "B", "C"]
return true;
});
更多的例子参考:www.cnblogs.com/aidixie/p/1…
map():
简介:
map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
语法:
array.map(function(currentValue,index,arr), thisValue)
/*其中currentValue是必选,index、arr和thisValue是可选*/
例子:
- 将一个数组的元素的值*2
var arr = [1,2,3,4,5,6];
var r = arr.map(x=>x*2);
console.log(r);//[2, 4, 6, 8, 10, 12]
- 将一个数组中元素值为4的元素*2
var arr = [1,2,3,4,5,6];
var r = arr.map(x=> {
if (x===4){
return x*2;
}
return x;
});
console.log(r);//[1, 2, 3, 8, 5, 6]
--> 这里注意箭头函数有两种格式:
1.只包含一个表达式,这时花括号和return都省略了。 2.包含多条语句,这时花括号和return都不能省略。
注意:上面的箭头函数中的"x=>"等同于"function (x)"
sort()
简介:
用于对数组的元素进行排序,并返回数组
语法:
语法:array.sort(fun);参数fun可选。规定排序顺序。必须是函数。
注:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。
如果想按照其他规则进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。
简单点就是:比较函数两个参数a和b,返回a-b 升序,返回b-a 降序
//注:原数组发生改变
例子:
- 不传参数,将不会按照数值大小排序,按照字符编码的顺序进行排序;
var arr = ['General','Tom','Bob','John','Army'];
var resArr = arr.sort();
console.log(resArr);//输出 ["Army", "Bob", "General", "John", "Tom"]
var arr2 = [30,10,111,35,1899,50,45];
var resArr2 = arr2.sort();
console.log(resArr2);//输出 [10, 111, 1899, 30, 35, 45, 50]
- 传入参数,实现升序,降序;
var arr3 = [30,10,111,35,1899,50,45];
arr3.sort(function(a,b){
return a - b;
})
console.log(arr3);//输出 [10, 30, 35, 45, 50, 111, 1899]
var arr4 = [30,10,111,35,1899,50,45];
arr4.sort(function(a,b){
return b - a;
})
console.log(arr4);//输出 [1899, 111, 50, 45, 35, 30, 10]
- 根据数组中的对象的某个属性值排序;
var arr5 = [{id:10},{id:5},{id:6},{id:9},{id:2},{id:3}];
arr5.sort(function(a,b){
return a.id - b.id
})
console.log(arr5);//{id: 2},{id: 3},{id: 5},{id: 6},{id: 9},{id: 10}
- 根据数组中的对象的多个属性值排序,多条件排序;
var arr6 = [{id:10,age:2},{id:5,age:4},{id:6,age:10},{id:9,age:6},{id:2,age:8},{id:10,age:9}];
arr6.sort(function(a,b){
if(a.id === b.id){//如果id相同,按照age的降序
return b.age - a.age
}else{
return a.id - b.id
}
})
console.log(arr6);
//{id:2,age:8},{id:5,age:4},{id:6,age:10},{id:9,age:6},{id:10,age:2},{id:10,age:9}
- reduce()
简介:
reduce()方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终为一个值
语法:
arr.reduce(function(prev,cur,index,arr){
...
}, initialValue);
/*
其中,
arr 表示原数组;
prev 表示上一次调用回调时的返回值,或者初始值 init;
cur 表示当前正在处理的数组元素;
index 表示当前正在处理的数组元素的索引,若提供 init 值,则索引为0,否则索引为1;
initialValue 表示初始值。
*/
例子:
- 求最大值
var arr = [1,8,13,4,55,76];
var r = arr.reduce(function (x,y) {
return Math.max(x,y);
})
console.log(r);//76
- 去掉数组重复的元素
var arr = [14,8,13,14,55,55];
var r = arr.reduce(function (x,y) {
x.indexOf(y) === -1 && x.push(y);
return x;
},[])
console.log(r);//[14, 8, 13, 55]
- 数组求和
var arr = [14,8,13,14,55,55];
var r = arr.reduce(function (x,y) {
return x+y;
},0)
console.log(r);//159