1、【最简单的文本长度限制】超出部分直接裁切,并在后面加上【...】
效果:

代码:(需要先引入jquery.js)
<div letter-limit="30" data-click="true">离离原上草,一岁一枯荣。风吹草低见牛羊。床前明月光,疑是地上霜。举头望明月,低头思故乡。</div>
$('[letter-limit]').each(function(){
var that = $(this);
var limitNum = parseInt($(this).attr("letter-limit"));
var olds = $.trim($(this).text());
if(limitNum && olds.length > limitNum){
$(this).text(olds.substring(0, limitNum)+"...");
}
});
2、支持点击切换的两种文本限制组件
$('[data-plugin="letter-limit"]').each(function(){
var that = $(this);
var limit = that.attr("data-limit");
switch(limit){
case "css":
that.css({
'overflow': 'hidden',
'white-space': 'nowrap',
'text-overflow': 'ellipsis'
});
that.attr("data-state", "0");
if(that.attr("data-click") == "true"){
that.on('click', function(){
if(that.attr("data-state") == "0"){
that.css({
'overflow': 'visible',
'white-space': 'normal',
'text-overflow': 'normal'
});
that.attr("data-state", "1");
}else{
that.css({
'overflow': 'hidden',
'white-space': 'nowrap',
'text-overflow': 'ellipsis'
});
that.attr("data-state", "0");
}
});
}
break;
default:
var limitNum = parseInt(limit);
if(!limitNum){ console.log('limit不合法:'+limit); return false;}
var olds = that.text();
olds = $.trim(olds);
var news = olds.substring(0, limitNum)+"...";
if(olds.length > limitNum){
that.text(news);
that.attr("data-news", news);
that.attr("data-olds", olds);
that.attr("data-state", "0");
}
if(that.attr("data-click") == "true"){
that.on('click', function(){
if(olds.length > limitNum){
if(that.attr("data-state") == "0"){
that.text(that.attr("data-olds"));
that.attr("data-state", "1");
}else{
that.text(that.attr("data-news"));
that.attr("data-state", "0");
}
}
});
}
break;
}
});
使用1:【单行溢出隐藏/自动换行】
<div data-plugin="letter-limit" data-limit="css" data-click="true">离离原上草,一岁一枯荣。风吹草低见牛羊。床前明月光,疑是地上霜。举头望明月,低头思故乡。</div>
效果2:【js裁切文本】
<div data-plugin="letter-limit" data-limit="30" data-click="true">离离原上草,一岁一枯荣。风吹草低见牛羊。床前明月光,疑是地上霜。举头望明月,低头思故乡。</div>
其中,data-link为true时则支持点击切换