####★技巧★ JS 引入 返回 从哪来到哪去
####★技巧★ a.toExponential(3)
科学计数法
num = num.toExponential(3)
"3.333e+0"
####★技巧★ num.toFixed(2);
限制小数点后两位 num = num.toFixed(2);
####★技巧★ 注意filder中筛选 返回的是条件 : ‘==’ 双等于
let r = choicelist.filter(function (v, i) {
return v.id == o.id
});
####★技巧★ find eq(this.index()) 查找 li下边的 类名为 '.num img' 的标签
picEl = $(this).closest('li').find('.num img').attr('src');
$(this).removeClass('active').eq($(this).index()).addClass('active')
####★技巧★ javescript:void(0)
删除
####★技巧★ 计算数组内值的和
let arr = [1,2,3,4,5,6,'7'];
let sums = arr.reduce(function (a, b) {
return Number(a) + Number(b);
});
console.log(sums)
28
####★技巧★ target与currentTarget的区别?
通俗易懂的说法:
比如说现在有A和B,
A.addChild(B)
A监听鼠标点击事件
那么当点击B时,target是B,currentTarget是A
也就是说,currentTarget始终是监听事件者,而target是事件的真正发出者
target在事件流的目标阶段;currentTarget在事件流的捕获,目标及冒泡阶段。
target指向被单击的对象而currentTarget指向当前事件活动的对象(一般为父级)。
####★技巧★
alert() 显示带有一段消息和一个确认按钮的警告框。
confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。
prompt() 显示可提示用户输入的对话框。
close() 关闭浏览器窗口。
open(url,name,feafurse,replace) 通过脚本打开新的窗口URL要在新窗口中显示的文档的 URL。如果省略了这个参数,那么新窗口就不会显示任何文档
var input=prompt('输入',' '); //都是字符串
var flag=confirm(123);
open('error.html','_blank','width=500,height=500,left=200,top=100');
open('error.html','_self','width=500,height=500,left=200,top=100');
####★技巧★ ES6有哪些新的?
.ES6的新特性:箭头操作符=>,模板字符串(`${asd}`)等等
####★技巧★ JSON.parse /字符串转化成对象 数组
JSON.stringify 对象转换为一个JSON字符串
####★技巧★ format 讲任意类型转换成字符串
a = format(123)
####★技巧★ *
.a{
opacity: 0;
transition: all 1s;
}
.a:hover{
opacity: 1;
}
鼠标移动过去过1秒显示
####★技巧★ 获取元素的宽度,高度
window.οnlοad=function(){
let box1=document.getElementsByClassName('box');
console.log(getComputedStyle(box[0],null).width);
console.log(getComputedStyle(box[0],null).height);
//可以获取所有,但只能获取,不能设置
}
####★技巧★
canvas 画的图出现不停复制,清空不了情况。给border加一个边框
####★技巧★ cursor
cursor:move 此光标指示某对象可被移动。
####★技巧★ 弹幕
``
####★技巧★ 面向对象 选取颜色 设置
* HTML:
* JS:
miaocolor.οnchange=function(){ //描边颜色
palette.strokeStyle=this.value;
};
tiancolor.οnchange=function(){ //填充颜色
palette.fillStyle=this.value;
};
miaobtn.οnclick=function(){ //描边
palette.type = 'stroke';
};
tianbtn.οnclick=function(){ //填充
palette.type = 'fill';
};
* function Palette(obj,mask,ctx){
this.type = 'stroke';
this.fillStyle = '#000';
this.strokeStyle = '#000';
}
* Palette.prototype={
//初始化
init:function(){
this.ctx.lineWidth = this.lineWidth;
this.ctx.strokeStyle = this.strokeStyle; //OK
this.ctx.fillStyle = this.fillStyle; //OK
this.ctx.lineCap = this.lineCap;
// this.ctx[type]();
// self[type]();
},
}
//选择 填充、描边类型
self.ctx[self.type]();
####★技巧★ 选择 输入
var colorchoose=document.querySelector("input[type=color]");
var widthchoose=document.querySelector(".linewidth input[type=number]");
####★技巧★ 浏览器 !!!警告!!!!
颜色应该是:#000000
The specified value "#000" does not conform to the required format. The format is "#rrggbb" where rr, gg, bb are two-digit hexadecimal numbers.
####★技巧★ 浏览器 !!!报错!!!!
Uncaught SyntaxError: Unexpected token :
可能是上面函数少了一个 { }
####★技巧★ 浏览器 !!!报错!!!!
index.js:16 Uncaught TypeError: Cannot read property 'getContext' of null at index.js:16
把相关的script引用句放在html最下边
JS中写: window.οnlοad=function(){}
####★技巧★ label 表单元素
当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。
####★技巧★ 注意 鼠标点击嵌套 内层也要写 function(e) eeeeeee
canvas.οnmοusedοwn=function(e){
canvas.οnmοusemοve=function(***e***){
}
}
####★技巧★ Math.pow
Math.pow
####★技巧★ 弧度 角度转换
* 弧度=(π/180)×角度
* 角度=180/π×弧度
####★技巧★
如果某个事件报错 看看是否能获取到那个元素
####★技巧★ CSS设置全屏
html:-webkit-full-screen{
background: yellow;
}
####★技巧★ 全屏
quanping:function(){
if(document.documentElement.requestFullscreen){
document.documentElement.requestFullscrren();
}else if(document.documentElement.webkitRequestFullscreen){
document.documentElement.webkitRequestFullscreen();
}else if(document.documentElement.mozRequestFullscreen){
document.documentElement.mozRequestFullscreen();
}
}
### 全屏 ,退出全屏
// Webkit (works in Safari5.1 and Chrome 15)
element.webkitRequestFullScreen();
document.webkitCancelFullScreen();
// Firefox 10+
element.mozRequestFullScreen();
document.mozCancelFullScreen();
// W3C 提议
element.requestFullscreen();
document.exitFullscreen();
####★技巧★ 属性选择器
let done=document.querySelector('input[type=text]');
####★技巧★ 清空内容 !!''中不能有空格!!!
table.innerHTML=''; //清空内容 !! ''中不能有空格!!!
####★技巧★ 立即获取焦点
input.focus();//立即获取焦点
####★技巧★
* element.getAttribute(attributename)
`attributename 字符串值。 必需。需要获得属性值的属性名称。`
####★技巧★ 分割 split函数 括号中要 ('; ') 在逗号后边留一个空格 (=) 等号不加空格
let arr=cookie.split('; ');
####★技巧★ some中 是 == 双等号
let a=this.currentele.some(function(value,index,obj){
return value.innerText==text;
})
####★技巧★ 注意循环 输出false会坏事 循环只是等 true,输出的false会打乱结构,干扰结果
for(let i=0;i if(this.currentele[i].innerText==text){
return true;
}/*else{
// console.log('不相等')
continue aa;
return false;
// alert(1)
};*/
}
####★技巧★ 绑定this 把外边的this传到函数当中
document.body.οnkeydοwn=function(e){}.bind(this); //绑定this 把外边的this传到函数当中
####★技巧★ 数值转换字符串
=String.fromCharCode(Math.floor(Math.random()*26)+65);
####★技巧★ 定义元素样式
ele.style.cssText=`
width: 50px;
height: 50px;
line-height: 50px;
background: #F2F2F2;
text-align: center;
position:absolute;
left:${lefts}px;
top:${tops}px;
`
####★技巧★ 动画结束之后
tr.addEventListener('webkitTransitionEnd',function(){
tr.removeChild(obj.parentNode);
####★技巧★ /* let student[1,2,{},4] forEach的是student的值,也就是value:1,2,{},4 {} 内为对象,obj.name 对象.属性*/
let student=[
{'name':'任雨','age':'18','sex':'女','loca':'山西','tel':12345678},
{'name':'曹越','age':'19','sex':'男','loca':'山西','tel':87543213},
{'name':'李虎','age':'16','sex':'女','loca':'山西','tel':87654456},
{'name':'刘婷','age':'18','sex':'男','loca':'山西','tel':09876542}
]
####★技巧★ ${} 花括号 输入内容
let tr=$(''); 此处tr是标签
tr.innerHTML= ` ${obj.name} | `
####★技巧★ 注意 innerHTML 大写
tr.innerHTML tr.innerHtml--》 错误
####★技巧★
let oldv=div.innerText; //获取标签内的文字内容
input.value=oldv; //value是input的属性,obj没有value这个属性
####★技巧★ 给box中插入 son
for(let i=0;i<100;i++){
box.innerHTML += ``;
}
####★技巧★ 给随机颜色
obj.style.background='rgb('+Math.floor(Math.random()*256)+','+Math.floor(Math.random()*256)+','+Math.floor(Math.random()*256)+')';
####★技巧★ nodeName 后面要大写
if(obj.nodeName=='P'){
node.name
####★技巧★ 输入文本框
``
####★技巧★ 没有报错 没有现象
* 检查元素的下标
`let btn=$('button')[0];`
####★技巧★ 输入文本
输入文本
输入文本
####★技巧★ 兼容问题
//IE高版本 兼容问题
div.addEventListener('click', function(){alert(1)}, false)
//IE低版本 兼容问题
div.attachEvent('onclick', function(){alert(1)})
* this 是指向其他地方
####★技巧★
box.style.cssText='';
####★技巧★
this.######
let aa=this;
function(){
aa.
}
####★技巧★
在第一个前面插入
imgbox.insertBefore(last,first);
####★技巧★ 报错 setTimeout is not defined
把这一行重新写
####★技巧★ !!!报错!!!
语法错误 下标越界 下标没写
box1[0].style.borderRadius='50%';
box1[0].style['border-radius']='50%';
box1[0].style.fontSize='50%';
box1[0].style.['font-size']='50%';
####★技巧★ !!!报错!!!
Uncaught TypeError: Cannot read property 'style' of undefined
at HTMLDivElement.caoyue1.(anonymous function).onclick
* 注意事件下标越界:caoyue1[5].style.background='red'; 下标只有 0--4
####★技巧★ !!!报错!!!
* Uncaught TypeError: Cannot set property 'innerText' of null
script里操作了body的东西。script在body前面。
解决方法:把script内容写进body中,或写在最后。