博主信息
博文 21
粉丝 0
评论 0
访问量 27893
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
js实战案例演示
N.
原创
971人浏览过

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>

-效果图

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:其实许多的网站物效,或者实用组件, 用js实现的核心代码没多少的, 也很好记住, 不是吗?
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学