案例1:开关灯

来源:微博网页版首页右上角

基本描述:

点击按钮,如果是白天就变成黑夜,如果是黑夜我就变成白天;

知识点

  • 涉及两种状态,flag最合适,每次变化的时候,需要将flag变回来
  • 掌握为元素添加类名去除某一类名的方法:节点.classList.add('类名') 节点.classList.remove('类名')
  • className = ('类名') 这是节点类名的覆盖!

分析

  1. 获取事件源 ;有哪些事件源
    按钮;整个背景
  2. 注册事件:鼠标点击按钮
  3. 事件处理程序:黑变白,白变黒,按钮上面的文字以及颜色也变

完整代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Document</title><style>* {padding: 0;margin: 0;}.off {width: 100%;height: 100%;background-color: black;}</style>
</head><body><button type="button">关灯</button>
</body><script>let flag = false; // false 表示不是黑天let btn = document.querySelector('button');let body = document.body; // 获取body 有专门的方法,当然使用documnet.querySelect('body');也是可以的btn.onclick = function() {if (!flag) { // 黑天 负负得正flag = true;btn.innerHTML = '开灯';btn.style.backgroundColor = 'red';// body.className = 'off';body.classList.add('off');} else {flag = false;btn.innerHTML = "关灯";// body.className = '';btn.style.backgroundColor = '';body.classList.remove('off');}}
</script>
</html>

案例2:选项卡切换

来源:几乎所有的网站都有

基本描述:

点击某个选项,下面内容框出现对应的内容,其余隐藏。

遇到了一个大bug! 合理利用控制台,看看什么情况

知识点

  • 上面选项卡和下面的内容应该一一对应!
  • 排他思想,干掉所有人,保留我自己,获取到的是多个所以需要循环操作。
  • className = ' ' 以及 classList.add(' ') 不需要加符号,直接写类名

分析

  1. 获取事件源 ;有哪些事件源
    所有选项框; 以及下面内容框
  2. 注册事件:鼠标点击按钮
  3. 事件处理程序:将其他(非点击元素)弄成正常状态,只给点击的元素特殊处理。

合理利用控制台,查看bug

基本骨架

骨架直接影响js代码的书写!!

<head><meta charset="UTF-8"><title>tabs点击哪个,哪个就出现</title><style>* {padding: 0;margin: 0;}li {list-style: none;float: left;width: 100px;height: 50px;background-color: #ccc;/* text-align: center; */}li:nth-child(odd) {border-left: 1px solid white;border-right: 1px solid white;}li a {display: block;line-height: 50px;text-decoration: none;/* background-color: red; */width: 100px;height: 50px;text-align: center;/* 若没有display:block 属性给a设置无效 为了让点击li 和 a有相同的效果*/}ul::after {content: '';display: block;height: 0;clear: both;visibility: hidden;}.con {display: none;width: 100px;height: 100px;}.con-active {display: block;}.li-active {background-color: red;}</style>
</head><body><div class="main"><div class="nav"><ul><li class="li-active"><a href="#">首页</a></li><li><a href="#">题库</a></li><li><a href="#">面试</a></li></ul></div><div class="content"><div class="con con-active">首页的内容</div><div class="con">题库的内容</div><div class="con">面试的内容</div></div></div>
</body>

核心代码

<script>// 获取a    排他思想    干掉所有保留自己let lis = document.querySelectorAll('.nav li');let divs = document.querySelectorAll('.content div');for (let i = 0; i < lis.length; i++) {lis[i].onclick = function() {for (let i = 0; i < lis.length; i++) {divs[i].classList.remove('con-active');lis[i].className = ' ';}lis[i].className = 'li-active';divs[i].classList.add('con-active');}}
</script>

案例3:选项和内容不匹配

来源:无,拓展

基本描述:

我觉得视频比,用语言描述更加清晰,本想着直接插入视频,但是只支持上传到前仅支持腾讯视频、优酷视频、哔哩哔哩视频;于是百度了一下如何插入gif,不会的话可以看看这里,图片素材也都放在里面了。

知识点

分析

初始的时候有一张背景图片显示,上面选项图片比下面的内容区域多了一张图片,这时候该怎么做?如何布局?

想清楚一开始是什么样的?

  • 默认图片显示,其余四张图片隐藏
    点击之后会发生什么?变化的是什么?【2】
  • 点击之后选项栏,出现边框,但是此时border会改变原来的宽度所以我们用outline代替
  • 默认图片隐藏,出现对应的内容中的图片
    事件三要素:
  • 下方文字一一对应出现
  1. 获取事件源 ;选项图片,内容图片,默认图片
  2. 注册事件:鼠标点击按钮
  3. 事件处理程序:【2】

js-Tabs小案例相关推荐

  1. 【Node.js学习小案例】DNS域名解析 一

    Node.js 百度百科: Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用· Node.js 借助事件驱动, 非阻塞I/ ...

  2. node.js(node.js+mongoose小案例)_实现简单的注册登录退出

    一.前言 通过node.js基本知识对node.js基本知识的一个简单应用 1.注册 2.登录 3.退出 二.基本内容 1.项目结构搭建如图所示 2.这个小案列中用到了art-template子模板以 ...

  3. node.js入门小案例

    nodejs 和 Java node.js是运行在服务端的JavaScript.node.js是一个基于chrome JavaScript 运行时建立的一个平台.底层架构 是JavaScript. n ...

  4. js基础-小案例歌词匹配

    歌词匹配 const lyricString = "[00:00.000] 作词 : 许嵩\n[00:01.000] 作曲 : 许嵩\n[00:02.000] 编曲 : 许嵩\n[00:22 ...

  5. html如何读取pdf,html页面读取PDF小案例

    html页面 引用 js添加 window.onload = function (){ var success = new PDFObject({ url: pdf文件路径 }).embed(&quo ...

  6. JS小案例总结(JS基础案例)

    JS小案例总结 JS小案例总结 案例一:JS实现tab选项卡功能 案例二:JS实现盒子拖拽功能 案例三:JS实现导航条吸顶效果 案例四:JS实现图片懒加载结构 案例五:JS实现简易弹幕功能 案例六:J ...

  7. javaScript小案例------js实现手风琴效果篇

    原生js书写手风琴效果 js手风琴效果 第一种方法 手风琴需求 html和css: html: css: js animate.js index.js 第二种方法 js手风琴效果 我用了两种方法来完成 ...

  8. js定时器实现倒计时小案例

    开发工具与关键技术: vscode /javascript 撰写时间:2022/8/19 案例介绍 倒计时是网页中经常看到的一个小功能,其实也很简单,掌握了js的日期对象就能写出来了,注意获取时分秒的 ...

  9. Vue里使用three.js实现3D模型小案例

    Vue里使用three.js实现3D模型小案例 1.下载three.js包 npm install three --save 或者 yarn add three --save 2.组件代码 <t ...

  10. JS小案例--关于时间--限时购

    JS小案例–关于时间–限时购 界面显示和功能实现 功能实现 设置了一个特定的日期 和当前时间 相差 实现折合成 天 小时 分钟 秒 使用性 :像某宝的商品限时购 所以很实用 用到的知识点 为日期对象设 ...

最新文章

  1. Servlet运行原理以及生命周期
  2. (chap8 确认访问用户身份的认证) BASIC认证(基本认证)
  3. 【Java代码】京东商品全部分类数据获取(建表语句+Jar包依赖+树结构封装+爬虫源代码)包含csv和sql格式数据下载可用
  4. Recyclerview不显示内容
  5. Shape Correspondence and Functional Maps
  6. 编辑画面,element-ui的单选框组选中值以及画面选择样式无法切换,但是绑定的v-model值已发生变化
  7. jar包可以到maven下载
  8. Oracle12c错误01017,ORACLE12.2中用户无法登陆报ORA-01017的解决办法
  9. android view 3d,Android 使用ViewPager打造3D画廊效果
  10. aliddns ipv6_AliDDNS v2.0.0.1 - 阿里云DNS动态解析Windows客户端 支持IPv6 微信推送
  11. maven module 路径_解决maven项目中-Dmaven.multiModuleProjectDirectory报错问题
  12. 桂花网蓝牙路由器Cassia X1000产品介绍
  13. eclipse debug 多线程
  14. c语言读音,C语言的32个关键字(读音、用法、注释)转来的,给刚接触C的
  15. 子集构造法NFA转换成DFA
  16. win10 旗舰版 系统激活出现 在连接到本地注册表时出现错误0x80041002 提示信息 解决方法...
  17. 【贝叶斯神经网络训练】(torch实现)
  18. 判断是不是平衡二叉树
  19. 计算机网络路由器配置实验,路由器配置实验报告-计算机网络(免费)_IT /计算机_数据...
  20. 推荐 5 款超好用的 Chrome 浏览器插件,文末有从别人的电脑移植插件的方法

热门文章

  1. utilities(matlab)—— mat2imgcell
  2. 电脑win7语音怎么测试软件,win7话筒怎么测试 win7话筒测试方法【图文】
  3. linux如何使用鼠标数据的,浅析linux中鼠标数据读取
  4. php screw.so扩展下载,CentOS下安装php加解密工具php
  5. 为何python不好找工作-谁说Python找工作难?人生苦短,Python工程师你们还好吗?...
  6. python画条形图-python绘制条形图方法代码详解
  7. python画曲线图-利用python绘制数据曲线图的实现
  8. python怎么读取csv文件-Python读取csv文件(详解版,看了无师自通)
  9. python入门教程pdf-python基础教程:《Python编程无师自通》PDF版百度云下载
  10. 运筹学在不同环境下的决策 -- 学习记录