博主信息
博文 29
粉丝 0
评论 0
访问量 25576
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
js任务列表、选项卡、换肤和懒加载
牡丹飞
原创
963人浏览过

1 效果


2 代码

2.1 任务列表

  1. let enter_add = document.querySelector("#Do"); //1.拿到输入框
  2. enter_add.addEventListener("keyup", addDo, false); //2.加键盘按键松开事件
  3. //3.添加任务函数
  4. function addDo(ev) {
  5. //4.判断按键是enter
  6. if (ev.key === "Enter") {
  7. //5.判断没内容时
  8. if (enter_add.value.trim().length === 0) {
  9. alert("请您输入任务,再回车!"); //提示
  10. return false; //退出函数
  11. }
  12. //6.有内容时创建元素
  13. let li = document.createElement("li");
  14. li.innerHTML = enter_add.value.trim() + '----><button onclick="del(this)">删除任务</button>';
  15. //7.没任务时直接加子元素,有任务时加最上边儿
  16. if (doList.childElementCount === 0) {
  17. doList.appendChild(li);
  18. } else {
  19. doList.insertBefore(li, doList.firstElementChild);
  20. }
  21. }
  22. }
  23. let doList = document.querySelector("#doList");
  24. function del(ele) {
  25. //8.确认删除
  26. confirm("是否删除") ? doList.removeChild(ele.parentNode) : false;
  27. }

2.2 选项卡加换肤

  1. let tab_ul = document.querySelector(".tab"); //1.tab头
  2. let items_ul = document.querySelectorAll(".item"); //2.tab页
  3. let background_img = document.querySelectorAll(".container>img"); //图片元素
  4. tab_ul.addEventListener("mouseover", tab_show, false); //3.监听tab头,鼠标移入
  5. //4.切换tab
  6. function tab_show(ev) {
  7. Array.from(tab_ul.children).forEach((li) => li.classList.remove("active")); //4.1移除tab头激活态
  8. ev.target.classList.toggle("active"); //4.2激活当前tab头
  9. items_ul.forEach((ul) => ul.classList.remove("active")); //4.3移除tab页激活态
  10. items_ul.forEach((ul) =>
  11. ev.target.dataset.index === ul.dataset.index ? ul.classList.toggle("active") : false
  12. ); //4.4激活当前tab页
  13. //console.log(background_img);
  14. background_img.forEach((img) =>
  15. ev.target.dataset.index === img.dataset.index
  16. ? (document.querySelector(".tabs").style.backgroundImage = "url(" + img.src + ")")
  17. : false
  18. ); //换肤
  19. }

2.3 懒加载

  1. let imgs = document.querySelectorAll(".container img"); //1.获取图片
  2. let clientHeight = document.documentElement.clientHeight; //2.视口高度
  3. window.addEventListener("scroll", idleLoad, false); //3.窗口滚动监听
  4. window.addEventListener("load", idleLoad, false); //4.窗口加载监听
  5. // document.documentElement.clientWidth
  6. // document.documentElement.clientLeft
  7. // document.documentElement.clientTop
  8. //5.懒加载函数
  9. function idleLoad() {
  10. let scrollTop = document.documentElement.scrollTop; //6.获取滚动条顶边儿到视口顶边儿高度
  11. imgs.forEach((img) => {
  12. //比较图片到视口顶边儿的距离 <= 视口高度 + 滚动条顶边儿到视口顶边儿高度
  13. img.offsetTop <= clientHeight + scrollTop ? (img.src = img.dataset.src) : false;
  14. });
  15. }

3 总结

感谢老师教导!
实战作业,好玩儿。

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

批改状态:合格

老师批语:好玩就会有兴趣, 就有了探索的激情
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系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+教程免费学