JavaScript 小技巧

2 篇文章 0 订阅
2 篇文章 0 订阅
使用 css 写一个三角形
div {
	width: 0;
	height: 0;
	border: 5px solid #transparent;
}
水平垂直居中

定位

div {
	width: 100px;
	height: 100px;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	margin: auto;
}

flex
父级控制子集居中

.parent {
	display: flex;
	justify-content: center;
	align-items: center;
}
css一行超出文本显示 …
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
多行文本超出显示 …
display: -webkit-box;
-webkit-box-clamp: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
IOS手机容器
overflow: auto;
-webkit-overflow-sccrolling: toucj;
修改滚动条样式
div::-webkit-scrollbar {
	display: none;
}

div::-webkit-scrollbar 滚动条整体部分
div::-webkit-scroolbar-track 滚动条内部的小方块,上下左右移动
div::-webkit-scrollbar-track 滚动条的轨道
div::-webkit-scrollbar-button 滚动条的轨道两端按钮
div::-webit-scrollbar-track-pice 内层轨道
div::-webkit-scrollbar-corner 边角,两个滚动条交汇处

隐藏页面元素

dislay: none; 元素不占用空间,在页面中不显示,子元素也不会显示。
opacity-0 元素透明度为 0,元素仍然存在,绑定事件仍旧有效可以触发执行。
visibility-hidden 元素隐藏,单元素仍然存在,占用空间,页面中无法触发该元素的事件。

contenteditable

html 中大部分标签都是不可以编辑的,但是添加了 contenteditable 属性之后,标签会变成可编辑的状态。

<div contenteditable="true"></div>

通过这个属性吧标签变为可编辑的状态之后只有 input 事件,没有 change 事件。

calc

这是一个 css 属性,可以计算 css 的值。可以计算不同单位的差值,很好用,但是不容易阅读。

div {
	width: calc(25% - 20px);
}
Date 对象

获取当前时间的毫秒值

// 方式一
Date.now();
// 方式二
new Date() - 0;
// 方式三
new Date().getTime();

创建 Date 对象有兼容问题

// window 和安卓支持。ios,mac不支持
new Date('2020-11-26')
// window和安卓支持ios和mac不支持
new Date('2020/11/26')
解析 get 参数

通过 replace 方法获取 url 中的参数键值对,可以快速解析 get 参数。

const q = {};
location.search.replace(/([^?&=]+)=([^&]+)/g,(_,k,v)=>q[k]=v);
console.log(q)
解析连接 url

可以通过创建 a 标签,给 a 标签赋值 href 属性的方式,获取 到协议pathhnameoriginlocation 对象上的属性。

// 创建 a 标签
const aEle = document.createElement('a');
// 给 a 标签赋值 href 路径
aEle.href = 'test.html';
// 访问 aEle 中的属性
aEle.protocol; // 获取协议
aEle.pathname; // 获取 path
aEle.origin; 
aEle.host;
aEle.search;
localStorage

localStorageH5 提供的永久存储空间,一般最大可存储 5M 数据,并且支持跨域隔离,他的出现极大提高了前端开发的可能性。localStorage 的使用很多人都知道的 setItemgetItemremoveItem,但他也可以直接以成员的方式操作。

// 存储
localStorage.name = 'yd';
// 获取
localStorage.name; // yd
// 删除
delete localStorage.name
// 清除全部
localStorage.clear();
// 遍历
for(let i = 0; i < localStorage.length; i++) {
	coonst key = localStorage.key(i); // 虎丘本地存储的Key
	localStorage[key]; // 获取本地存储的 value
}

localStorage 满了的情况下仍会继续存储并不会覆盖其他值,而是直接报错(QuotaExceededEror),并且当前存储的值也会被清空。浏览器支持每个域名下存储 5M 数据。

会话 cookie

cookie 在设置的时候如果不设置过期时间,就表示是个会话 cookie,以前以为关闭浏览器会话 cookie 就消失了,然而…喜提 bug 一个。
在多数情况下 windows 系统或者安卓系统是这样的,但是在 macOS 系统或者 ios 系统中,关闭浏览器并不会清除掉会话 cookie,结束浏览器进程才行。

标签模板字符串

模板字符串支持在前面添加一个函数,第一个参数是一个有固定的内容组成的数组,后面参数依次未传入的变量,函数返回值为模板字符串真正展示的值。

const tag = (params, ...args) => {
	return params[0] + args[0]; // 返回值为模板字符串的真实值
}
const str = tag`hello${'world'}`;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值