|
@@ -0,0 +1,60 @@
|
|
|
|
+<!DOCTYPE html>
|
|
|
|
+<html lang="en">
|
|
|
|
+<head>
|
|
|
|
+ <meta charset="UTF-8">
|
|
|
|
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
+ <title>Document</title>
|
|
|
|
+ <style>
|
|
|
|
+ ul{
|
|
|
|
+ margin: 0;
|
|
|
|
+ padding: 0;
|
|
|
|
+ display: flex;
|
|
|
|
+ }
|
|
|
|
+ li{
|
|
|
|
+ list-style: none;
|
|
|
|
+ width: 100px;
|
|
|
|
+ height: 50px;
|
|
|
|
+ background-color: #aaa;
|
|
|
|
+ color: #fff;
|
|
|
|
+ font-weight: bold;
|
|
|
|
+ text-align: center;
|
|
|
|
+ line-height: 50px;
|
|
|
|
+ }
|
|
|
|
+ .active{
|
|
|
|
+ background-color: #000;
|
|
|
|
+ }
|
|
|
|
+ </style>
|
|
|
|
+</head>
|
|
|
|
+<body>
|
|
|
|
+ <ul>
|
|
|
|
+ <li data-hash="first" class="active">first</li>
|
|
|
|
+ <li data-hash="second">second</li>
|
|
|
|
+ <li data-hash="third">third</li>
|
|
|
|
+ </ul>
|
|
|
|
+ <script>
|
|
|
|
+ let aLi = document.querySelectorAll("li");
|
|
|
|
+ for(let i=0;i<aLi.length;i++){
|
|
|
|
+ aLi[i].onclick = function(e){
|
|
|
|
+ let thisVal = e.target.dataset.hash;
|
|
|
|
+ // location.hash = thisVal;
|
|
|
|
+ history.pushState(thisVal,"");
|
|
|
|
+ for(let j=0;j<aLi.length;j++){
|
|
|
|
+ aLi[j].classList.remove("active");
|
|
|
|
+ }
|
|
|
|
+ this.classList.add("active");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ window.onpopstate = function(e){
|
|
|
|
+ console.log(e.state);
|
|
|
|
+ for(let i=0;i<aLi.length;i++){
|
|
|
|
+ if(aLi[i].dataset.hash == e.state){
|
|
|
|
+ aLi[i].classList.add("active")
|
|
|
|
+ }else{
|
|
|
|
+ aLi[i].classList.remove("active");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ </script>
|
|
|
|
+</body>
|
|
|
|
+</html>
|