主要是效率问题,一开始我参考网上的一个js代码实现了一个,效率很低,页面刷很久才能刷出来。后来二分实现了,速度还可以。
var wordLimit = function(){
$(".tutor_preview_detail").each(function()
{
var original = $(this).text();
var start = 0;
var end = original.length;
while (end > start)
{
//alert("start:" + start);
//alert("end:" + end);
var mid = Math.ceil((end + start) / 2);
//alert("mid:" + mid);
$(this).text(original.substring(0, mid + 1));
$(this).html($(this).html() + "... ");
var copyThis = $(this.cloneNode(true)).hide().css({
'position': 'absolute', 'height': 'auto', 'overflow': 'visible'});
$(this).after(copyThis);
if (copyThis.height() > $(this).height())
{
end = mid;
}
else{
start = mid + 1;
}
copyThis.remove();
}
});
};
【 在 zxdong262 (zxd) 的大作中提到: 】
: 一种方法是因为固定宽高,可以定下个最大的字符长度,根据字体和最极限情况的容纳的最小长度,以这个长度为准截取。
: 如果要稍微智能一点,可以把文字原样输出,前端js检测高度,根据高度对应百分比的文字,再截取。
--
FROM 121.236.219.*