跳到主要内容

代码片段

JS 代码片段,随意更新

URL 参数获取

http://localhost:xxxx
// // 传统方式
// function query(name) {
// const search = location.search.substr(1) // 类似 array.slice(1)
// // search: 'a=10&b=20&c=30'
// const reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`, 'i')
// const res = search.match(reg)
// if (res === null) {
// return null
// }
// return res[2]
// }
// query('d')

// URLSearchParams
function query(name) {
const search = location.search
const p = new URLSearchParams(search)
return p.get(name)
}
console.log(query('b'))

动画切换机制

// 3s 把宽度从 100px 变为 640px ,即增加 540px
// 60帧/s ,3s 180 帧 ,每次变化 3px

const element = document.getElementById('#div1')
let curWidth = 100
const maxWidth = 640

// // setTimeout
// function animate() {
// curWidth = curWidth + 3
// element.style.width = curWidth + 'px'
// if (curWidth < maxWidth) {
// setTimeout(animate, 16.7) // 自己控制时间
// }
// }
// animate()

// RAF
function animate() {
curWidth = curWidth + 3
element.style.width = curWidth + 'px'
if (curWidth < maxWidth) {
window.requestAnimationFrame(animate) // 时间不用自己控制
}
}
animate()

创建代码片段

const list = document.getElementById("list");

// 创建一个文档片段,此时还没有插入到 DOM 结构中
const frag = document.createDocumentFragment();

for (let i = 0; i < 20; i++) {
const li = document.createElement("li");
li.innerHTML = `List item ${i}`;

// 先插入文档片段中
frag.appendChild(li);
}

// 都完成之后,再统一插入到 DOM 结构中
list.appendChild(frag);

console.log(list);