1.什麼是hash?
在前端中,hash值可以利用來實現頁面的局部刷新 - 他是location下的一個屬性 ,hash 屬性是一個可讀可寫的字符串,該字符串是 URL 的錨部分(從 # 號開始的部分)。
2.利用hash實現頁面局部跳轉
跳轉原理:利用a標籤的href屬性去尋找相應id名,實現單頁面內跳轉
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
div {
width: 100%;
height: 2000px;
background: pink;
}
#box1 {
background: sandybrown;
}
#box2 {
background: gold;
}
</style>
</head>
<body>
<a href="#box1">跳轉box1</a>
<a href="#box2">跳轉box2</a>
<div></div>
<div id="box1"></div>
<div id="box2"></div>
</body>
</html>
3.利用hash進行頁面局部刷新
利用onhashchange 監聽頁面hash的改變,利用jquery的load函數進行加載局部頁面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
#header,
#footer {
width: 100%;
height: 50px;
background: pink;
}
#main {
width: 100%;
height: 420px;
background: gold;
}
</style>
</head>
<body>
<div id="header">
<a href="#home">點擊局部刷新</a>
</div>
<div id="main"></div>
<div id="footer"></div>
</body>
<script src="./jquery.js"></script>
<script>
$(function () {
window.onhashchange = function () {
let hash = location.hash;
if (hash == '#home') {
//局部加載的頁面地址
$('#main').load("./home.html", function () {
console.log(1)
})
}
}
})
</script>
</html>
4.hash傳值
http://localhost:3000/?type=2#personal/borrow_apply
在地址後面,#之前, 格式:?開頭屬性名=屬性值&屬性名=屬性值
#後面的都是hash值
利用location.search可以獲取到傳的值