最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

如何使用js来实现多行溢出隐藏功能

来源:懂视网 责编:小采 时间:2020-11-27 19:33:45
文档

如何使用js来实现多行溢出隐藏功能

如何使用js来实现多行溢出隐藏功能:这篇文章主要介绍了关于如何使用js来实现多行溢出隐藏功能,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下由于做移动端比较多,移动端对ellipsis这个css属性的支持还算不错,对-webkit-line-clamp的支持不一,特别是安卓机。查了查资料,发
推荐度:
导读如何使用js来实现多行溢出隐藏功能:这篇文章主要介绍了关于如何使用js来实现多行溢出隐藏功能,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下由于做移动端比较多,移动端对ellipsis这个css属性的支持还算不错,对-webkit-line-clamp的支持不一,特别是安卓机。查了查资料,发

这篇文章主要介绍了关于如何使用js来实现多行溢出隐藏功能,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

由于做移动端比较多,移动端对ellipsis这个css属性的支持还算不错,对-webkit-line-clamp的支持不一,特别是安卓机。
查了查资料,发现-webkit-line-clamp并不在css规范中。
那我们就尝试手动实现一个,对外暴露接口去调用。

2种实现思路:

  • 定义行数,展现该行数以内的文字,隐藏超出行数的文字;

  • 定义总内容的部分,展现该部分,隐藏超出该部分的文字;

  • 实现方式:

  • 模拟jQuery实现无new构造去调用

  • 需要注意的是,对于文字内容,css中务必设置文字的"行高"这个属性。

    //调用方式:k('#p').ellipsistoText(3), k('#p').ellipsistoLine(2), k('#p').restoretoLine(), k('#p').restoretoText()
    (function () {
     var k = function (selector) {
     return new F(selector)
     }
     var F = function (selector) {
     this.ele = document.querySelector(selector);
     if (!this.ele.ori_height) {
     this.ele.ori_height = this.ele.offsetHeight; //用于保存原始高度
     }
     if (!this.ele.ori_html) {
     this.ele.ori_html = this.ele.innerHTML; //用于保存原始内容
     }
     }
     F.prototype = {
     init: function () {
     this.ele.style.height = this.ele.ori_height;
     this.ele.innerHTML = this.ele.ori_html;
     },
     ellipsistoLine: function (l) {
     this.init();
     this.ele.style.cssText = 'overflow: hidden; height: ' + parseInt(window.getComputedStyle(this.ele)['line-height']) * l + 'px';
     },
     ellipsistoText: function (t) {
     this.init();
     var len = (this.ele.ori_html).length * (1/t);
     this.ele.innerHTML = this.ele.ori_html.substr(0, len);
     },
     restoretoLine: function () {
     this.ele.style.height = this.ele.ori_height + 'px';
     },
     restoretoText: function () {
     this.ele.innerHTML = this.ele.ori_html;
     }
     }
     window.k = k;
    })(window)

    声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文档

    如何使用js来实现多行溢出隐藏功能

    如何使用js来实现多行溢出隐藏功能:这篇文章主要介绍了关于如何使用js来实现多行溢出隐藏功能,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下由于做移动端比较多,移动端对ellipsis这个css属性的支持还算不错,对-webkit-line-clamp的支持不一,特别是安卓机。查了查资料,发
    推荐度:
    标签: 功能 隐藏 实现
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top