剪贴板库clipboard.js
import ClipboardJS from 'clipboard'
var clipboard = new ClipboardJS('.btn');
clipboard.on('success', function(e){
alert("复制成功!");
e.clearSelection();
});
clipboard.on('error', function(e){
alert("您的浏览器不支持自动复制,请手动复制链接!");
});
文档流与文本流
文档流是相对于盒子模型讲的
文本流是相对于文子段落讲的
元素浮动之后会让它跳出文档流,也就是说当它后面还有元素时,其他元素会无视它所占据了的区域,直接在它身下布局。
但是文字却会认同浮动元素所占据的区域,围绕它布局,也就是没有拖出文本流。
但是绝对定位后,不仅元素盒子会拖出文档流,文字也会出文本流。那么后面元素的文本就不会在认同它的区域位置,会直接在它后面布局,不会在环绕
dom.addEventListener
//触发的回调函数,会自动传入event参数,
//event.target指向触发事件的直接元素,可能是绑定事件的子元素,子子元素
//回调方法内的this会指向绑定了事件的对象
dom.addEventListener('mousemove', function(ev){
console.log(this=== dom);
//true
})
移动端事件:
- touchstart : 当手指触摸到屏幕会触发
- touchmove : 当手指在屏幕上移动时,会触发
- touchend : 当手指离开屏幕时,会触发;
- touchcancel : 当手指还没有离开屏幕时,有系统级的操作发生时就会触发touchcancel,例如alert和confirm弹框,又或者是android系统的功能弹窗
npm set prefix 设置全局仓库
//如果执行的是npm set prefix '.....', 则之后npm的任何命令都会卡住,因为后边的字符串不能带 ''
//正常的命令如下
npm set prefix C:\Users\Administrator\AppData\Roaming\npm
//window环境下,在设置过prefix之后,还要在环境变量用户私有变量
//中设置 path, 之后还要重启