我创建或实现了这个在很多网站上都很常见的字符限制器,在我的例子中,我将限制设置为最多200个字符,然后显示省略号。
$str = $row[1];
$count = strlen($str);
if($count<200){
$post = $row[1];
}else{
$end = $count-200;
$mod = substr($row[1], 0, -$end);
$post = $mod."...";
}
if ($row[0] % 2 == 0) {
echo
'<div class="background-even">'.
$row[2].
'<br>'.
'<br>'.
nl2br($post).
'<br>'.'<br>'.
'</div>';
}
else {
echo
'<div class="background-odd">'.
$row[2].
'<br>'.
'<br>'.
nl2br($post).
'<br>'.'<br>'.
'</div>';
}
我想要做的是有一个按钮,我像陈词滥调一样推动&#34;阅读更多&#34;或类似的东西,然后显示其余的。
我可以开始考虑像jQuery这样的解决方案来隐藏/显示其余的内容,或者使用帖子的id来拉取整个存储的条目,我甚至之前使用过基于URL的查询但是有一个更简单的方法?
答案 0 :(得分:1)
试试这个:http://jsfiddle.net/Twisty/dhbcdLL1/
使用JQuery,你可以做到这一点。
function truncate(t, l) {
if (t.length > l) {
var parts = [];
parts[0] = t.substr(0, l - 3);
parts[1] = t.substr(l - 3);
return parts[0] + "..." + "<span style='display: none;'>" + parts[1] + "</span>";
} else {
return t;
}
}
$(function () {
$(".truncate").each(function () {
$(this).html(truncate($(this).text(), 200));
});
$("body").on("click", "a.show-more", function () {
var parts = $(this).prev("p").text().split("...");
$(this).prev("p").html(parts[0] + parts[1]);
$(this).addClass("hide-more").removeClass("show-more").html("Hide More");
});
$("body").on("click", "a.hide-more", function () {
var ft = $(this).prev("p").text();
$(this).prev("p").html(truncate(ft, 200));
$(this).addClass("show-more").removeClass("hide-more").html("Show More");
});
});
如果需要,可以在PHP中进行拆分。
$count = strlen($row[1]);
if($count<200){
$post = $row[1];
}else{
$parts = array(substr($row[1], 0, 197), substr($row[1], 197));
$post = "{$parts[0]...<span style='display: none;'>{$parts[1]}</span>";
}