• 蓝桥杯练习01卡片化标签


    卡片化标签页

    介绍

    选项卡功能在前端开发中特别常见,作为设置选项的模块,每个选项卡代表一个活动的区域,点击不同的区域,即可展现不同的内容,这样既能节约页面的空间又能提升页面性能。
    本题需要在已提供的基础项目中使用JS完成选项卡功能的编码,最终实现切换选项卡可以显示对应内容的效果。

    准备

    开始答题前,需要先打开本题的项目代码文件夹,目录结构如下:

    其中:
    ·css/index.css是页面样式文件。
    ·js/index.js是页面功能实现的逻辑代码。
    ·index.html是页面布局。
    在刘览器中预览index.html页面效果如下:

    目标

    请在index.js文件中根据现有DOM结构(页面布局部分不能做任何修改操作)实现选项卡动态切
    换功能。
    最终效果

    规定

    请勿修改本题默认项目代码文件夹中的文件名称、文件夹路径等,否则会导致考试系统无法正常评分。

    代码

    .css

    * {
      padding: 0;
      margin: 0;
      box-sizing: border-box;
    }
    body {
      background: #f5f5f5;
    }
    #main {
      width: 440px;
      margin: 30px auto;
      position: relative;
      height: 450px;
    }
    .tabs {
      width: 440px;
      height: 50px;
      line-height: 50px;
      display: flex;
      /* list-style: none; */
      /* text-align: left; */
      /* margin: 0; */
      /* padding: 0; */
      margin-bottom: -1px;
      position: absolute;
      top: 0;
      left: 0;
      z-index: 999;
    }
    .tabs div {
      text-align: center;
      cursor: pointer;
      width: 110px;
    }
    
    #content {
      position: absolute;
      width: 440px;
      height: 400px;
      overflow: hidden;
      margin: 49px auto;
    }
    #content div {
      position: absolute;
      width: 440px;
      height: 400px;
      overflow: hidden;
      background-color: white;
      border: 1px solid #dddddd;
      padding: 20px 30px;
      text-align: center;
    }
    #content img {
      display: inline-block;
      max-height: 240px;
      margin: 10px auto;
    }
    #content p {
      word-break: break-all;
      text-align: left;
      padding: 20px 0 10px 0;
    }
    .active {
      z-index: 99;
      background: white;
      border: 1px solid #dddddd;
      border-bottom: none;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69

    .html

    DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8" />
        <title>选项卡切换title>
        <link rel="stylesheet" type="text/css" href="./css/index.css" />
      head>
      <body>
        <div id="main">
          <div class="tabs">
            <div class="red active">选项一div>
            <div class="green">选项二div>
            <div class="blue">选项三div>
            <div class="yellow">选项四div>
          div>
          <div id="content">
            <div id="one" class="active">
              <p>
                爱情要完结的时候自会完结,到时候,你不想画上句号也不行。爱情,原来是含笑饮毒酒。
              p>
              <img src="./imgs/1.jpeg" />
            div>
            <div id="two">
              <p>
                在这个光怪陆离的人间,没有谁可以将日子过的行云流水。但我始终相信,走过平湖山雨,岁月山河,那些历尽劫数,尝遍百味的人,会更加生动而干净。
              p>
              <img src="./imgs/2.jpeg" />
            div>
            <div id="three">
              <p>
                对于三十岁以后的人来说,十年八年不过是指缝间的事,而对于年轻人而言,三年五年就可以是一生一世。
              p>
              <img src="./imgs/3.jpeg" />
            div>
            <div id="four">
              <p>
                我要你知道,在这个世界上总有一个人是等着你的,不管在什么时候,不管在什么地方,反正你知道,总有这么个人。
              p>
              <img src="./imgs/4.jpeg" />
            div>
          div>
        div>
      body>
      <script src="./js/index.js" type="text/javascript" charset="utf-8">script>
    html>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    .js

    // 实现选项卡功能
    function init() {
        // TODO 待补充代码
    
    }
    init();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    答案

    // 实现选项卡功能
    function init() {
        // TODO 待补充代码
        //1、获取所有tabs标签
        const tabs = document.querySelectorAll('.tabs div')
    	//2、获取所有content内容
        const content = document.querySelectorAll('#content div')
        //3、遍历4个tab
        for (let index = 0; index < tabs.length; index++) {
            tabs[index].onclick = function() {
                for (let i = 0; i < tabs.length; i++) {
                    //4、通过移除active样式取消霄宫
                    tabs[i].classList.remove('active')
                    content[i].classList.remove('active')
                }
                //5、对当前激活标签添加active样式
                this.classList.add('active')
                content[index].classList.add('active')
            }
        }
    
    }
    init();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    本人最近在准备蓝桥杯,大家有更简洁的写法可以一起讨论,一起进步。

  • 相关阅读:
    Throwable异常
    Iris for mac 好用的录屏软件
    Python并发编程实战,用多线程、多进程、多协程加速程序运行
    Java VMTranslator Part II
    微擎模块 志汇-门店会员卡小程序 4.8.0 前端+后端开源版
    MQTT协议基础学习
    在HTML当中引入Vue控件,以element-ui为例
    成为黄金代理,必须考虑到这一点
    进销存免费管理软件 进销存免费软件推荐 免费进销存
    Python中的并发编程是什么,如何使用Python进行并发编程?
  • 原文地址:https://blog.csdn.net/colorsZeroz/article/details/136820882