利用js實現文字過多時隱藏部分文字
阿新 • • 發佈:2019-02-18
效果:當文字字數超過9個時,隱藏第九個字之後文字,使用“…顯示全部”的標籤代替。點選“…顯示全部”顯示所有文字資訊。“…顯示全部”變成“收起”。點選“收起”又變回9個字文字。
原理:在一個名為fullText的div標籤中存放所有文字,在另一個名為subText的div標籤中存放9個字的文字,在一個a標籤中實現點選效果。頁面初識載入時,將要顯示的文字放入一個text變數中,將fullText的div的文字置為空,判斷text長度是否大於9,若大於9,在名為subText的div標籤中顯示前9個字的文字+“…顯示全部”。若不大於9,在subText顯示全部文字。
點選a標籤時,判斷a標籤的文字內容,若為“…顯示全部”,將text變數中的值賦給subText,並將a標籤改為”收起”。若a標籤中的內容為”收起”,將text變數的前9個值賦給subText並將a標籤改為“…顯示全部”。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="GBK">
<title>隱藏功能</title>
</head>
<body>
<div id="d1"><div id="fullText">以前鏗鏘有力的靈魂之聲,不知道什麼時候,被默默沉寂在心底。渴望著黑夜裡,能有一雙巨大有力的手,將我的冰冷握緊。在這些安靜的日子裡,一個人無言無語,對著擱置了很久的書,認真的翻閱起來。裡面的一些話語,帶著禪意,讓人頓悟,豁然開明。</div > <div id="subText"></div><a id="btn" onclick="change()"></a></div>
<script>
var text;
function show() {
text = document.getElementById("fullText").innerHTML;
document.getElementById("fullText").innerHTML = "";
document.getElementById("subText" ).style.float = "left";
document.getElementById("btn").style.float = "left";
if(text.length > 9) {
document.getElementById("subText").innerHTML = text.substring(0, 9);
document.getElementById("btn").innerHTML = "...顯示全部";
} else {
document.getElementById("subText").innerHTML = text;
document.getElementById("btn").innerHTML = "";
}
}
function change() {
var t = document.getElementById("btn");
var tt = document.getElementById("subText");
if(t.innerHTML == "...顯示全部") {
tt.innerHTML = text;
t.innerHTML = "收起"
} else {
tt.innerHTML = text.substring(0, 9);
t.innerHTML = "...顯示全部"
}
}
show();
</script>
</body>
</html>