- 延迟函数
<body>
<button>延迟执行某个操作</button>
<button>解除延迟器</button>
<script>
let btn1 = document.querySelector('button:nth-of-type(1)')
let btn2 = document.querySelector('button:nth-of-type(2)')
let tid
btn1.addEventListener('click', function() {
tid = setTimeout(function() {
console.log(123)
}, 3000)
})
btn2.addEventListener('click', function() {
clearTimeout(tid)
})
</script>
</body>
- 5秒消失的广告
<body>
<button>返回</button>
<img src="./images/ad.png" alt="" />
<script>
let img = document.querySelector('img')
let button = document.querySelector('button')
setTimeout(function() {
img.style.display = 'none'
}, 5000)
button.addEventListener('click', function() {
history.go(-2)
})
</script>
</body>
- 自定义消息提示
<body>
<button>登陆</button>
<div class="tip"></div>
<script>
let btn = document.querySelector('button')
let tip = document.querySelector('.tip')
let tid
btn.addEventListener('click', function() {
tip.innerText = '登陆成功'
tip.style.display = 'block'
tid = setTimeout(function() {
tip.style.display = 'none'
}, 3000)
tip.addEventListener('mouseenter', function() {
clearInterval(tid)
})
tip.addEventListener('mouseleave', function() {
tid = setTimeout(function() {
tip.style.display = 'none'
}, 3000)
})
})
</script>
</body>
- 利用递归实现
<body>
<div></div>
<script>
let div = document.querySelector('div')
let tid = setInterval(function() {
console.log(1)
clearTimeout(tid)
}, 3000)
</script>
</body>
- js执行机制
<body>
<button>点我啊</button>
<script>
let btn = document.querySelector('button')
btn.addEventListener('click', function () {
console.log(4)
})
console.log(1)
setTimeout(function () {
console.log(2)
}, 3000)
console.log(3)
</script>
</body>
- location对象
<body>
<button>帮我跳转到某个页面</button>
<script> document.querySelector('button').addEventListener('click', function() {
location.href = './03-5秒消失的广告.html'
})
</script>
</body>
- 本地存储
<body>
<button>设置本地存储</button>
<button>获取本地存储</button>
<button>删除本地存储</button>
<button>干掉所有本地存储</button>
<script>
document .querySelector('button:nth-of-type(1)') .addEventListener('click', function() {
localStorage.setItem('mykey', '我要放假了')
})
document.querySelector('button:nth-of-type(2)') .addEventListener('click', function() {
let v = localStorage.getItem('mykey')
console.log(v)
})
document.querySelector('button:nth-of-type(3)').addEventListener('click', function() {
localStorage.removeItem('mykey')
})
document .querySelector('button:nth-of-type(4)').addEventListener('click', function() {
localStorage.clear()
})
</script>
</body>
- 本地存储存储的和获取的都是字符串
<body>
<button>设置本地存储</button>
<button>获取本地存储</button>
<button>删除本地存储</button>
<button>干掉所有本地存储</button>
<p class="name"></p>
<p class="age"></p>
<script>
let obj = { name: 'jack', age: 18 }
document.querySelector('button:nth-of-type(1)').addEventListener('click', function () {
localStorage.setItem('mykey', JSON.stringify(obj))
})
document.querySelector('button:nth-of-type(2)').addEventListener('click', function () {
console.log(JSON.parse(localStorage.getItem('mykey')));
})
document.querySelector('button:nth-of-type(3)').addEventListener('click', function () {
console.log(localStorage.removeItem('mykey'));
})
</script>
</body>
- 自定义属性操作
<body>
<p>我是p元素</p>
<input type="checkbox" checked />
<button>添加一个自定义属性</button>
<button>获取一个自定义属性</button>
<button>移除一个自定义属性</button>
<script>
let p = document.querySelector('p')
let input = document.querySelector('input')
let btn1 = document.querySelector('button:nth-of-type(1)')
let btn2 = document.querySelector('button:nth-of-type(2)')
let btn3 = document.querySelector('button:nth-of-type(3)')
btn1.addEventListener('click', function() {
input.setAttribute('myid', 10)
input.setAttribute('class', 'abc')
input.checked = false
})
btn2.addEventListener('click', function() {
console.log(input.getAttribute('myid'))
console.log(input.getAttribute('class'))
})
btn3.addEventListener('click', function() {
p.removeAttribute('myindex')
})
</script>
</body>
- data自定义属性值
<body>
<p class="red" data-id="10" data-name="jack" data-age="20">我是p元素</p>
<button>获取自定义属性的值</button>
<script>
let btn = document.querySelector('button')
let p = document.querySelector('p')
btn.addEventListener('click', function() {
console.log(p.dataset)
})
</script>
</body>