记录以前不知道的web细节
移除event.preventDefault()
如果一个事件中有时需要调用
event.preventDefault()
取消浏览器默认事件,有时又不需要调用比如自定义滚动条,当滚动条还没有滚动到最顶端或者最底端时,需要调用
event.preventDefault()
取消浏览器默认事件,不然会出现自定义滚动条和最外层document的滚动条同时滚动而当滚动条滚动到最顶端或者最底端时,自定义滚动条已经不能滚动了,则需要让最外层document的滚动条滚动,便需要移除
event.preventDefault()
解决方法便是取消当前事件的绑定,示例代码:
1
2
3
4
5
6
7
8
9
10var f=function(e) {
// ...
// 滚动到最大最小时,重新绑定事件,相当于移除preventDefault
if(that.current >= that.maxCurrent || that.current <= 0){
that.wrapEl.off("mousewheel DOMMouseScroll", f).on("mousewheel DOMMouseScroll", f);
}else{
e.preventDefault();
}
}
this.wrapEl.on("mousewheel DOMMouseScroll", f); // 给dom添加滚动事件
css margin百分比
可以对margin设置百分比,但是是相对于父元素的宽度的百分比,示例代码:
1
2
3
4
5// div {width: 400px;height: 200px;outline: 1px solid #ccc}
// p{margin: 10%;display: inline-block;padding: 10%}
<div>
<p>aaa</p>
</div>设置如上则可以看到p的margin全部为40px,而不是左右40px上下20px,padding同理
css line-height百分比和数字值的区别
line-height设置数字值时,子元素会继承这个数字,所以子元素的line-height值为这个数字乘以子元素的font-size
line-height设置百分比时,元素会先计算出值,即百分比乘以元素的font-size,然后把这个值继承给子元素
示例:
1
2
3
4
5
6
7
8
9
10
11
12
13// div {width: 400px;height: 200px;outline: 1px solid #ccc;font-size: 30px;}
// p{margin: 0;display: inline-block;padding: 0;background: #ddd;font-size:15px;}
// .test1{line-height: 150%;}
// .test2{line-height: 1.5;}
// p的line-height为:150% * 30
<div class="test1">
<p>aaa</p>
</div>
// p的line-height为:1.5 * 15
<div class="test2">
<p>aaa</p>
</div>结果如图:
js判断进入当前页面的方式
performance.navigation.type
- 如果等于0,则为直接进入页面
- 如果等于1,则是在本页面刷新进入的
- 如果等于2,则是通过后退进入本页面的
表格边框css属性
border-collapse
:CSS 属性是用来决定表格的边框是分开的还是合并的。
- separate: 分隔模式(默认),在分隔模式下,相邻的单元格都拥有独立的边框。
- collapse: 合并模式,在合并模式下,相邻单元格共享边框。
border-spacing
:指定相邻单元格边框之间的距离(只适用于 separate分隔模式 )。
解决ios使用history.back()后退页面不刷新的bug
1 | var browserRule = /^.*((iPhone)|(iPad)|(Safari))+.*$/; |
解决ios使用fixes定位,input失去焦点时无法再次选中的bug
直接给input添加一个blur事件,执行window.scroll(0, 0),手动把浏览器滚动到最上面