一、css的cursor属性
规定要显示的光标的类型(形状)
定义了鼠标指针放在一个元素边界范围内时所用的光标形状(CSS2.1没有定义由哪个边界确定这个范围)
url | 需使用的自定义光标的 URL 注释:请在此列表的末端始终定义一种普通的光标,以防没有由 URL 定义的可用光标 |
---|---|
default | 默认光标(通常是一个箭头) |
auto | 默认。浏览器设置的光标 |
crosshair | 光标呈现为十字线 |
pointer | 光标呈现为指示链接的指针(一只手) |
move | 此光标指示某对象可被移动(十字箭头) |
e-resize | 此光标指示矩形框的边缘可被向右(东)移动(横向箭头) |
ne-resize | 此光标指示矩形框的边缘可被向上及向右移动(北/东箭头) |
nw-resize | 此光标指示矩形框的边缘可被向上及向左移动(北/西箭头) |
n-resize | 此光标指示矩形框的边缘可被向上(北)移动(竖向箭头) |
se-resize | 此光标指示矩形框的边缘可被向下及向右移动(南/东箭头) |
sw-resize | 此光标指示矩形框的边缘可被向下及向左移动(南/西箭头) |
s-resize | 此光标指示矩形框的边缘可被向下移动(南)(竖向箭头) |
w-resize | 此光标指示矩形框的边缘可被向左移动(西)(横向箭头) |
text | 此光标指示文本。 |
wait | 此光标指示程序正忙(通常是一只表或沙漏)。 |
help | 此光标指示可用的帮助(通常是一个问号或一个气球) |
二、Math对象
地址:http://www.w3school.com.cn/jsref/jsref_obj_math.asp
Math对象用于执行数学任务
使用Math的属性和方法的语法:
var pi_value = Math.PI;
var sqrt_value = Math.sqrt(15);
Math对象并不像Date和String那样是对象的类,因此没有构造函数Math(),像Math.sin()这样的函数只是函数,不是某个对象的方法,无需创建,通过把Math作为对象使用就可以调用其所有属性和方法
1、Math对象的属性
E | 返回算术常量 e,即自然对数的底数(约等于2.718)。 |
---|---|
LN2 | 返回 2 的自然对数(约等于0.693)。 |
LN10 | 返回 10 的自然对数(约等于2.302)。 |
LOG2E | 返回以 2 为底的 e 的对数(约等于 1.414)。 |
LOG10E | 返回以 10 为底的 e 的对数(约等于0.434)。 |
PI | 返回圆周率(约等于3.14159)。 |
SQRT1_2 | 返回返回 2 的平方根的倒数(约等于 0.707)。 |
SQRT2 | 返回 2 的平方根(约等于 1.414 |
2、Math对象方法
abs(x) | 返回数的绝对值。 |
---|---|
acos(x) | 返回数的反余弦值。 |
asin(x) | 返回数的反正弦值。 |
atan(x) | 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。 |
atan2(y,x) | 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。 |
ceil(x) | 对数进行上舍入。 |
cos(x) | 返回数的余弦。 |
exp(x) | 返回 e 的指数。 |
floor(x) | 对数进行下舍入。 |
log(x) | 返回数的自然对数(底为e)。 |
max(x,y) | 返回 x 和 y 中的最高值。 |
min(x,y) | 返回 x 和 y 中的最低值。 |
pow(x,y) | 返回 x 的 y 次幂。 |
random() | 返回 0 ~ 1 之间的随机数。 |
round(x) | 把数四舍五入为最接近的整数。 |
sin(x) | 返回数的正弦。 |
sqrt(x) | 返回数的平方根。 |
tan(x) | 返回角的正切。 |
toSource() | 返回该对象的源代码。 |
valueOf() | 返回 Math 对象的原始值。 |
三、switch case
1、语法:
switch(表达式) {
case n:
代码块
break;
case n:
代码块
break;
default:
默认代码块
}
代码解释:
计算一次switch表达式,把表达式的值和每个case的值进行比较,如果存在匹配,则执行关联代码
2、栗子:
getDay()方法返回0到6之间的周名数字
switch (new Date().getDay()) {
case 0:
day = "星期天";
break;
case 1:
day = "星期一";
break;
case 2:
day = "星期二";
break;
case 3:
day = "星期三";
break;
case 4:
day = "星期四";
break;
case 5:
day = "星期五";
break;
case 6:
day = "星期六";
}
(1)break关键词
如果JavaScript遇到break关键字,它会跳出switch代码块
如果找到匹配并完成任务,则随机中断执行(break)
break能够节省大量执行时间
不必中断switch代码块中的最后一个case,代码块会在此处自然结束
(2)default关键词
default关键词规定不存在case匹配时所运行的代码
switch (new Date().getDay()) {
default:
text = "期待周末!";
break;
case 6:
text = "今天是周六";
break;
case 0:
text = "今天是周日";
}
四、UUID
function getUuId() {
var timestamp = new Date().getTime()
return timestamp
}
if (self.data.uuid) {
ELEMENTS[self.data.uuid] = self
} else {
var uuid = getUuId()
self.data.uuid = uuid
ELEMENTS[uuid] = self
}
五、事件
1、鼠标事件
事件 | 描述 |
---|---|
click | 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击 |
dbclick | 鼠标双击左键事件 |
mousedown | 鼠标上的按钮被按下(左键或者右键)时触发 |
mouseup | 鼠标按钮被释放弹起时触发 |
mouseover | 鼠标移动到某对象范围的上方时触发的事件 |
mousemove | 鼠标移动时触发事件 |
mouseout | 当鼠标离开某对象范围时触发事件 |
mouseenter | 鼠标移入元素范围内触发,该事件不冒泡,即鼠标移到其后代元素上时不触发 |
mouseleave | 鼠标移出元素范围内触发,该事件不冒泡,即鼠标移到其后代元素时不触发 |
<button onclick="myClick()">鼠标单击</button>
<button ondblclick="myDBClick()">鼠标双击</button>
<button onmousedown="myMouseDown()" onmouseup="myMouseUp()">鼠标按下和抬起</button>
<button onmouseover="myMouseOver()" onmouseout="myMouseOut()">鼠标悬浮和离开</button>
<button onmousemove="myMouseMove()">鼠标移动</button>
<button onmouseenter="myMouseEnter()" onmouseleave="myMouseLeave()">鼠标进入和离开</button>
<script>
function myClick() {
console.log("你单击了按钮!");
}
function myDBClick() {
console.log("你双击了按钮!");
}
function myMouseDown() {
console.log("鼠标按下了!");
}
function myMouseUp() {
console.log("鼠标抬起了!");
}
function myMouseOver() {
console.log("鼠标悬浮!");
}
function myMouseOut() {
console.log("鼠标离开!")
}
function myMouseMove() {
console.log("鼠标移动!")
}
function myMouseEnter() {
console.log("鼠标进入!")
}
function myMouseLeave() {
console.log("鼠标离开!")
}
mouseover和mouseenter区别
mouseover事件会冒泡,这意味着,鼠标移到其后代元素上时会触发
mouseenter事件不冒泡,这意味着,鼠标移到其后代元素上时不会触发
2、键盘事件
事件 | 描述 |
---|---|
keypress | 当键盘上的某个键被按下并且释放时触发的事件.[注意:页面内必须有被聚焦的对象] |
keydown | 当键盘上某个按键被按下时触发的事件[注意:页面内必须有被聚焦的对象] |
keyup | 当键盘上某个按键被按放开时触发的事件[注意:页面内必须有被聚焦的对象] |
<body>
<input id="name" type="text" onkeydown="myKeyDown(this.id)" onkeyup="myKeyUp(this.id)">
</body>
<script>
/*输出输入的字符*/
function myKeyDown(id) {
console.log(document.getElementById(id).value);
}
/*按键结束,字体转换为大写*/
function myKeyUp(id) {
var text = document.getElementById(id).value;
document.getElementById(id).value = text.toUpperCase();
}
</script>
3、HTML事件
事件 | 描述 |
---|---|
load | 文档加载完成 |
select | 被选中的的时候 |
change | 内容被改变 |
focus | 得到光标 |
resize | 窗口尺寸变化 |
scroll | 滚动条移动 |
<body onload="loaded()">
<div style="height: 3000px" ></div>
<input type="text" id="name" onselect="mySelect(this.id)">
<input type="text" id="name2" onchange="myChange(this.id)">
<input type="text" id="name3" onfocus="myFocus()">
</body>
<script>
window.onload = function () {
console.log("文档加载完毕!");
};
/*window.onunload = function () {
alert("文档被关闭!");
};*/
/*打印选中的文本*/
function mySelect(id) {
var text = document.getElementById(id).value;
console.log(text);
}
/*内容被改变时*/
function myChange(id) {
var text = document.getElementById(id).value;
console.log(text);
}
/*得到光标*/
function myFocus() {
console.log("得到光标!");
}
/*窗口尺寸变化*/
window.onresize = function () {
console.log("窗口变化!")
};
/*滚动条移动*/
window.onscroll = function () {
console.log("滚动");
}
</script>
4、事件模型
<body>
<!--脚本模型:行内绑定-->
<button onclick="alert('hello')">hello</button>
<!--内联模型-->
<button onclick="showHello()">hello2</button>
<!--动态绑定-->
<button id="btn">hello3</button>
</body>
<script>
function showHello() {
alert("hello");
}
/*DOM0:同一个元素只能添加一个同类事件
* 如果添加多个,后面的会把前面的覆盖掉*/
var btn = document.getElementById("btn");
btn.onclick = function () {
alert("hello");
};
btn.onclick = function () {
alert("hello world");
};
/*DOM2:可以给一个元素添加多个同类事件*/
btn.addEventListener("click", function () {
alert("hello1");
});
btn.addEventListener("click", function () {
alert("hello2");
});
/*不同浏览器的兼容写法*/
/*IE*/
if (btn.attachEvent) {
btn.attachEvent("onclick", function () {
alert("hello3");
});
/*W3C*/
} else {
btn.addEventListener("click", function () {
alert("hello4");
})
}
</script>
5、事件冒泡和获取
<head>
<style>
#div1{
width: 400px;
height: 400px;
background-color: #0dfaff;
}
#div2{
width: 300px;
height: 300px;
background-color: #33ff66;
}
#div3{
width: 200px;
height: 200px;
background-color: #fff24a;
}
#div4{
width: 100px;
height: 100px;
background-color: #ff4968;
}
</style>
<title>事件冒泡、事件捕获</title>
</head>
<body>
<div id="div1">
<div id="div2">
<div id="div3">
<div id="div4">
</div>
</div>
</div>
</div>
</body>
<script>
var div1 = document.getElementById("div1");
div1.addEventListener("click",function (event) {
/*阻止事件冒泡*/
event.stopPropagation();
alert("div1");
},false);
var div2 = document.getElementById("div2");
div2.addEventListener("click",function (event) {
/*阻止事件冒泡*/
event.stopPropagation();
alert("div2");
},false);
var div3 = document.getElementById("div3");
div3.addEventListener("click",function (event) {
/*阻止事件冒泡*/
event.stopPropagation();
alert("div3");
},false);
var div4 = document.getElementById("div4");
div4.addEventListener("click",function (event) {
/*阻止事件冒泡*/
event.stopPropagation();
alert("div4");
},false);
</script>
阻止事件冒泡
event.stopPropagation();
6、阻止默认事件
<body>
<a href="http://www.baidu.com" onclick="stop(event)">百度</a>
</body>
<script>
function stop(event) {
if (event.preventDefault()) {
event.preventDefault();
} else {
event.returnValue = false;
}
alert("不跳转!")
}
</script>
六、splice()方法
向/从数组中添加/删除项目,然后返回呗删除的项目
该方法会改变原始数组
<script type="text/javascript">
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr + "<br />")
arr.splice(2,0,"William")
document.write(arr + "<br />")
</script>
七、push()
可向数组的末尾添加一个或多个元素,并返回新的长度
返回值: 把指定的值添加到数组后的新长度
push()方法可以把它的参数顺序添加到arrayObject的尾部,它直接修改arrayObject,而不是创建一个新的数组
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr + "<br />")
document.write(arr.push("James") + "<br />")
document.write(arr)
</script>
八、typeof
js提供typeof运算符,用来检测一个变量的类型
typeof是一个运算符,有两种使用方式: typeof(表达式)和typeof变量名,第一种是对表达式做运算,第二种是对变量做运算
返回 | 值类型 |
---|---|
console.log(typeof a) | 未定义的变量或值 |
console.log(typeof(true)) | 布尔类型的变量或值 |
console.log(typeof ‘123’) | 字符串类型的变量或值 |
console.log(typeof 123) | 数字类型的变量或值 |
console.log(typeof null) | 对象类型的变量或值或者null |
console.log(typeof(class c{})) | 函数类型的变量或值 |
九、empty()
$("button").click(function(){
$("div").empty();
});
empty() 方法从被选元素所有子节点和内容。
注意:该方法不会移除元素本身,或它的属性。
提示:
如需移除元素,但保留数据和事件,请使用 detach() 方法。
如需移除元素及它的数据和事件,请使用 remove() 方法。
十、append()
$("button").click(function(){
$("p").append(" <b>Hello world!</b>");
});
append()方法在被选元素的结尾(仍然在内部)插入指定内容
提示:
append()和appendTo()方法执行的任务相同
不同之处在于内容的位置和选择器
1、$(selector).append(content)
content: 必需,规定要插入的内容(可包含 HTML 标签)
2、$(selector).append(function(index,html))
function(index,html): 必需,规定返回待插入内容的函数
index: 可选,接收选择器的index位置
html: 可选,接收选择器的当前html
十一、document对象方法
方法 | 描述 |
---|---|
close() | 关闭用 document.open() 方法打开的输出流,并显示选定的数据。 |
getElementById() | 返回对拥有指定 id 的第一个对象的引用。 |
getElementsByName() | 返回带有指定名称的对象集合。 |
getElementsByTagName() | 返回带有指定标签名的对象集合。 |
open() | 打开一个流,以收集来自任何 document.write() 或 document.writeln() 方法的输出。 |
write() | 向文档写 HTML 表达式 或 JavaScript 代码。 |
writeln() | 等同于 write() 方法,不同的是在每个表达式之后写一个换行符。 |
具体可点击蓝色字体进入W3school详细了解