前端学习开发实例 标签页实现(Javascript + CSS)

参考文档:JavaScript 教程 W3school

参考文档:CSS 教程 W3school

文章目录

  • 功能需求
  • 结果展示
  • 源代码
    • 文件目录
    • index.html



功能需求

实现动态标签页,包含一系列按钮和文本。
切换功能:点击按钮可以切换到相应文本。(切换效果使用JSDOM,效果内容使用CSS)



结果展示

默认状态:
前端学习开发实例 标签页实现(Javascript + CSS)_第1张图片
点击按钮(P2):
前端学习开发实例 标签页实现(Javascript + CSS)_第2张图片
点击按钮(P1):同默认状态



源代码


文件目录

  • 根目录
  1. index.html 网页源代码

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


<!--第一部分:CSS-->
<style>
  .mycontainer{ /*全局容器*/
    width: 250px;
    height: 150px;
    margin: 50px;
    border-color: #9acfea;
    border-style: dotted;
  }
  .mycontainer ul{
    list-style: none; /*取消列表项显示*/
  }
  .mycontainer li{
    float: left; /*列表项从左浮动*/
  }
  .mybutton button{
    width: 75px;
    height: 37px;
    background-color: #c4e3f3; /*按钮部分(普通状态):颜色浅蓝*/
    margin-right: 10px;
  }
  .mybutton .active{
    background-color: #28a4c9; /*按钮部分(活跃状态):颜色深蓝,取消底边框*/
    border-bottom: 0px;
  }
  .mytext{
    float: left;
    width: 80%;
    height: 50%;
    margin-left: 10%;
    margin-right: 10%;
    border-style: groove;
    border-color: #cccccc;
    color: transparent; /*文本部分(普通状态):颜色透明色不可见*/
  }
  .mytext .mytextset{
    position: absolute; /*文本部分 [使用绝对布局] :所有内容重叠,在同一个位置重叠*/
  }
  .mytext .active{ /*文本部分(活跃状态):颜色为黑色可见*/
    color: black;
  }
</style>


<!--第二部分:HTML-->
<div class="mycontainer">
  <ul class="mybutton">
    <li><a href="#"><button class="mybuttonset active" id="b1" onclick="inActive(1)">P1</button></a></li>
    <li><a href="#"><button class="mybuttonset" id="b2" onclick="inActive(2)">P2</button></a></li>
  </ul>
  <div class="mytext">
    <section class="mytextset active" id="t1" >1</section>
    <section class="mytextset" id="t2" >2</section>
  </div>
</div>


<!--第三部分:JS-->
<script>
  function inActive(id){
    activeText(id); //激活当前按钮的(active类),去除先前活跃按钮的(active类)
    activeButton(id); //激活当前文本的(active类),去除先前活跃文本的(active类)
  }
  function activeText(id) {
    var all = document.getElementsByClassName("mytextset"); //获取文本节点大类
    for(let i = 0; i < all.length; i++){
      //所有该类子节点中,去除active类
      all[i].classList.remove("active"); /*使用classList添加和删除类*/
    }
    var x = document.getElementById("t" + id);
    //为当前节点添加active类
    x.classList.add("active"); /*使用classList添加和删除类*/
  }

  function activeButton(id) {
    var all = document.getElementsByClassName("mybuttonset"); //获取按钮节点大类
    for(let i = 0; i < all.length; i++){
      //所有该类子节点中,去除active类
      all[i].classList.remove("active"); /*使用classList添加和删除类*/
    }
    var x = document.getElementById("b" + id);
    //为当前节点添加active类
    x.classList.add("active"); /*使用classList添加和删除类*/
  }

</script>

</body>
</html>

你可能感兴趣的:(前端学习开发实例,javascript,css)