首页 > 其他分享 >js hw15 spa

js hw15 spa

时间:2023-01-02 21:00:14浏览次数:52  
标签:hw15 show js let path spa todo id boxs

spa

<!-- location
navigator
history
screen
window -->
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      width: 200px;
      height: 200px;
    }

    .one {
      background-color: pink;
      display: none;
    }

    .two {
      background-color: yellow;
      display: none;
    }

    .show {
      display: block;
    }
  </style>
</head>

<body οnhashchange="myFunction()">
  <button data-id="1">1</button>
  <button data-id="2">2</button>
  <div class="box one" data-id="1">11111111111111111</div>
  <div class="box two" data-id="2">22222222222222222</div>
  <script>
    // todo存在localStorage里面
    // {
    //   "id" : 1,
    //   "task" : "hw",
    //   "done" : false
    // }
    // 四个界面
    // 创建todo
    // 显示某个todo
    // 修改todo
    // 显示todo列表(所有todo)
    // 1.按钮按下去显示内容隐藏其他的
    // 2.改变网址
    // 3.改变网址也要改变内容
    buttons = document.querySelectorAll('button')
    boxs = document.querySelectorAll('.box')

    buttons.forEach(button => {
      button.addEventListener("click", function (e) {
        const id = e.target.dataset.id
        let nowId = location.search.split('=')
        nowId = nowId[nowId.length - 1]
        if (id === nowId) {
          return
        }
        path = "?path=" + id
        history.pushState(null, '', path)
        showpage()
      })
    })
    function showpage() {
      let path = location.search
      if (path === "") {
        for (let i = 0; i < boxs.length; i++) {
          if (boxs[i].classList.contains("show")) {
            boxs[i].classList.remove("show")
            break;
          }
        }
        return
      }
      else {
        let id = path.split('=')
        id = id[id.length - 1]
        for (let i = 0; i < boxs.length; i++) {
          if (boxs[i].classList.contains("show")) {
            boxs[i].classList.remove("show")
            break;
          }
        }
        for (let i = 0; i < boxs.length; i++) {
          if (boxs[i].dataset.id === id) {
            boxs[i].classList.add("show")
            break;
          }
        }
      }
    }
    window.addEventListener("popstate", function () {
      showpage()
    });

    showpage()

  </script>
</body>

</html>

标签:hw15,show,js,let,path,spa,todo,id,boxs
From: https://www.cnblogs.com/echoT/p/17020500.html

相关文章

  • 第1节 js相关概念
    1:js介绍javascript是一门弱类型的编程语言,简称js,创始人布兰登·艾奇,由美国网景公司发布。微软也有类似的语言叫jscript。前端编程语言只有js,而后端编程语言有java、C......
  • jsdemo01.html
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><scripttype="text/javascript">varx;......
  • angularJS友好URL实现 good
    nginx部署angularjs时的rewrite问题使用h5+angularjs完成了一个项目此项目在正式环境上使用nginx做webserver此项目的入口在微信/微博分享中由于分享时的项目访问地址中......
  • 前端页面HTML、JS屏蔽页面所有console.log打印日志
      //判断配置文件是否开启日志调试是否输出日志true输出false不输出varlogDebug=true;console.log=(function(oriLogFunc){retur......
  • Fastjson 专题
    ​​https://github.com/eishay/jvm-serializers/wiki​​ TypeReference1.基础使用在fastjson中提供了一个用于处理泛型反序列化的类TypeReference。importcom.alibaba.......
  • 初识JavaScript-概念,注释,js输入和输出语句
    初识JavaScript目录初识JavaScript1.初识JavaScript1.1JavaScript是什么1.1JavaScript是什么1.2JavaScript的作用1.3HTML/CSS/JS的关系1.4浏览器执行JS简介......
  • gluon 基于浏览器+nodejs 的桌面应用开发框架
    gluon基于浏览器+nodejs的桌面应用开发框架,好处是相对轻量,只使用系统浏览器,对于nodejs可以支持包含以及不包含模式目前支持chrome以及firfox浏览器器,打包的应用相对比......
  • 分享几个Ext.js 学习的地方
    分享几个Ext.js学习的地方 ​​https://www.w3cschool.cn/extjs/extjs_themes.html​​  W3C ​​http://extjs.org.cn/ ​​Sencha中文站日后还会更新!......
  • jsp自定义标签
    jsp自定义标签   需求:向浏览器输出当前客户的IP地址(只能使用jsp标签)1.自定义标签开发步骤    1. 编写一个普通的java类,继承SimpleTagSupport......
  • 【JavaWeb】Http get请求乱码、post请求乱码,html页面乱码、jsp页面乱码,控制台tomcat日
    目录​​1、乱码原因和解决思路​​​​2、准备知识(新手必读,老司机跳过)​​​​2.1字符集​​​​2.2URL编码​​​​2.3 javawebservlet ​​​​3 浏览器编码/解码......