js实现超出一定字数隐藏并用省略号"..."代替,点击后又可进行展开和收起,

Posted 十月桂花香十里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js实现超出一定字数隐藏并用省略号"..."代替,点击后又可进行展开和收起,相关的知识,希望对你有一定的参考价值。

原理简单阐述:放两个一模一样的div,把你要展示的文字放进去。页面初始化的时候,第一个div展示,第二个

div隐藏,就是这么简单。(ps:可以直接复制代码到你自己项目中,查看效果)

样式部分(记得引用一下jquery,如果你喜欢手写原生的js当我没说)**********

<style>
.ms-cont2{display: none;}
.ms-cont2,.ms-cont1{cursor: pointer;}
</style>

body部分**********

<div class="ms-cont1">{!! $v[\'content\'] !!}</div>
<div class="ms-cont2">{!! $v[\'content\'] !!}</div>

js部分************

<script>
 function cutString(str, len) {
 //length属性读出来的汉字长度为1
 if(str.length*2 <= len) {
  return str;
 }
 var strlen = 0;
 var s = "";
 for(var i = 0;i < str.length; i++) {
  s = s + str.charAt(i);
  if (str.charCodeAt(i) > 128) {
   strlen = strlen + 2;
   if(strlen >= len){
    return s.substring(0,s.length-1) + "...";
   }
  } else {
   strlen = strlen + 1;
   if(strlen >= len){
    return s.substring(0,s.length-2) + "...";
   }
  }
 }
 return s;
}
//以上cutString方法借鉴参考了:http://www.jb51.net/article/91716.htm,万分感谢!
$(document).ready(function(){
var cont1 = $(\'.ms-cont1\'),
cont2 = $(\'.ms-cont2\');
cont1.click(function(){
$(this).hide().next().show();
});
cont2.click(function(){
$(this).hide().prev().show();
})
cont1.each(function(){
var that = $(this), txt = that.text();
// console.log(txt);
that.text(cutString(txt,30));
})
})
</script>

 

前台页面截图展示**********

加载后的效果

点击后的效果

再次点击后

以上是关于js实现超出一定字数隐藏并用省略号"..."代替,点击后又可进行展开和收起,的主要内容,如果未能解决你的问题,请参考以下文章

js表格限制字数表超过的内容隐藏

div内文字显示两行,超出两行部分省略号显示css能实现么?

怎么实现CSS限制字数,超出部份显示点点点

怎么实现CSS限制字数,超出部份显示点点点

div+css怎么显示两行或三行文字,然后多出的部分省略号代替??

CSS 超出两行显示省略号有啥办法?