Blogger Information
Blog 21
fans 0
comment 0
visits 21413
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
js实战案例演示
N.
Original
767 people have browsed it

toDoList

-实现留言版的效果,最新留言排列在最前面,支持删除

  1. <body>
  2. <form action="" onsubmit="return false">
  3. <label for="aaa">打印</label>
  4. <input type="text" id="aaa" name="aaa" placeholder="回车确认" />
  5. </form>
  6. <ul id="bbb"></ul>
  7. <script>
  8. // 先获取上面的元素,然后添加事件,使用回车键触发,需要用到keyup这个属性
  9. const da = document.querySelector("#aaa");
  10. const kuang = document.querySelector("#bbb");
  11. // 接下来创建事件
  12. // keyup是抬起是触发 keydown是按下时触发
  13. da.addEventListener("keyup", hanshu, false);
  14. // 设置hanshu的方法
  15. function hanshu(ev) {
  16. if (ev.key === "Enter") {
  17. console.log(da.value);
  18. if (da.value.trim().length === 0) {
  19. alert("不能为空");
  20. return false;
  21. }
  22. // 创建元素,并且创建元素的内容
  23. const li = document.createElement("li");
  24. // 创建元素的内容
  25. li.innerHTML = da.value + ' <button onclick="del(this)">删除</button>';
  26. // 挂载元素到ul
  27. // bbb.appendChild(li);
  28. if (bbb.childElementCount === 0) {
  29. bbb.appendChild(li);
  30. } else {
  31. bbb.insertBefore(li, kuang.firstElementChild);
  32. }
  33. da.value = null;
  34. }
  35. }
  36. // function del(ele) {
  37. // if (confirm("是否删除")) return false;
  38. // }
  39. function del(ele) {
  40. console.log(ele);
  41. // 要删除的是button的父元素li
  42. if (confirm("是否删除")) kuang.removeChild(ele.parentNode);
  43. }
  44. </script>
  45. </body>

效果图


-选项卡

  1. <script>
  2. // 使用事件代理
  3. const tab = document.querySelector(".tab");
  4. const items = document.querySelectorAll(".item");
  5. // 这里给导航添加事件
  6. tab.addEventListener("click", hanshu, false);
  7. // 事件回调
  8. function hanshu(ev) {
  9. // 1.清空之前样式
  10. Array.from(tab.children).forEach((item) => item.classList.remove("active"));
  11. // 2.给当前选项添加新样式
  12. ev.target.classList.toggle("active");
  13. // 3.清空之前样式, 并将用户当前的选择项激活
  14. items.forEach((item) => item.classList.remove("active"));
  15. // 4.根据导航对应的索引项(data-index)来确定将哪个内容区激活
  16. items.forEach((item) =>
  17. item.dataset.index === ev.target.dataset.index ? item.classList.toggle("active") : null
  18. );
  19. }
  20. </script>

-效果图


一键换肤

  1. <script>
  2. document.querySelector(".box").addEventListener("click", (ev)=>(document.body.style.backgroundImage = "url("+ ev.target.src + ")"))
  3. </script>

-效果图


懒加载案例

  1. // 获取图片
  2. const imgs = document.querySelectorAll(".box img");
  3. // 获取视口的高度
  4. const shikou = document.documentElement.clientHeight;
  5. // 监听窗口的滚动事件
  6. window.addEventListener("scroll", lan, false);
  7. // load在页面加载成功时自动执行,
  8. // 把页面加载成功时的可视区图片加载出来
  9. window.addEventListener("load", lan, false);
  10. // 设置函数参数
  11. function lan() {
  12. let gdg = document.documentElement.scrollTop;
  13. // 使用foreach遍历图片滚动高度和视口高度之和石是否小于offsetTop的高度
  14. imgs.forEach((img) => {
  15. // shikou和gdg前面已经声明了
  16. if (img.offsetTop <= shikou + gdg) {
  17. img.src = img.dataset.src;
  18. // 如果感觉图片显示太快,可以用定时器来控制一下
  19. setTimeout(() => {
  20. img.src = img.dataset.src;
  21. }, 4000);
  22. }
  23. });
  24. }
  25. </script>

-效果图

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:其实许多的网站物效,或者实用组件, 用js实现的核心代码没多少的, 也很好记住, 不是吗?
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post