我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript实现文字展开和收起效果

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript实现文字展开和收起效果

列表式的文字的展开和收起的实现,供大家参考,具体内容如下

需求:

1、当文字超出目标值,则截取目标值,其他隐藏,同时显示“展开”二字和下拉箭头;
2、点击“展开”显示所有文字,同时改为“收起”和上拉箭头
3、如果文字本身就没有超过目标值,则显示所有文字即可

之前想过使用css设置超出多少行隐藏,或者给Li标签设置高度隐藏,但都无法满足以上第三条,所以想到了下边一种方法将就可以使用

思路:

1、初始遍历需要展开和收起的元素,超出目标值隐藏,然后把所有标签中的内容存起来(后边显示全部的时候会用到)
2、点击展开和收起的时候,根据当前的内容去存储的值中匹配,匹配到之后做相应的处理,展示出来

HTML


<ul class="outList">
        <li>
            <div>5-14号</div>
            <ul class="innerList">
                <li class="wordsContent">111111111111111111111111</li>
                <li class="wordsContent">222222222222222222222222</li>
                <li class="wordsContent">333333333333333333333333</li>
            </ul>
        </li>
        <li>
            <div>5-15号</div>
            <ul class="innerList">
                <li class="wordsContent">4444</li>
                <li class="wordsContent">5555555555555555555555555</li>
                <li class="wordsContent">6666666666666666666666666</li>
            </ul>
        </li>
</ul>

CSS


ul,li {
   list-style: none;
 }
.innerList>li {
     margin-bottom: 0.2rem;
     border-bottom: 0.01rem solid green;
     box-sizing: border-box;
     padding: 0.2rem 5% 0.7rem 3%;
     position: relative;
     margin-bottom: 0.3rem;
 }
 .open {
     font-size: 0.22rem;
     color: #12309E;
     position: absolute;
     right: 0.2rem;
     bottom: 0.1rem;
     font-weight: bold;
 }
 .close {
     font-size: 0.22rem;
     color: #12309E;
     position: absolute;
     right: 0.2rem;
     bottom: 0.1rem;
     font-weight: bold;
 }

JS


//新闻的展开收起部分
var objList = $(".wordsContent");   //需要展开收起的li标签元素
var maxNum = 5;                     //目标值的长度
var arr = [];                       //需要展开收起的所有文字汇总
objList.delegate(".open", "click", function () {
    openClose(true, this)
})
objList.delegate(".close", "click", function () {
    openClose(false, this)
})
//初始化封装,初始化是为了1:存储原本的Li标签中的内容;2:超出目标值的文字隐藏
function init(objList, maxNum) {
    objList.each(function (index, item) {
        arr.push($(item_).text())
        if ($(item).text().length > maxNum) {
            $(item).html($(item).text().substr(0, maxNum) + "<span class='open'>展开<img class="lazy" data-src='./image/down^.png'/></span>")
        }
    })
}
init(objList, maxNum)

//展开和收起的封装
function openClose(boo, clickObj) {
    var final = '';
    arr.map(function (item, index) {
        if (item.match($(clickObj).parents(".wordsContent").text().substring(0, $(clickObj).parents(".wordsContent").text().length - 2))) {
            final = item
        }
    })
    if (boo) {
        $(clickObj).parents(".wordsContent").html(final + "<span class='close'>收起<img class="lazy" data-src='./image/up^.png'/></span>")
    } else {
        $(clickObj).parents(".wordsContent").html(final.substr(0, maxNum) + "<span class='open'>展开<img class="lazy" data-src='./image/down^.png'/></span>")
    }
}

效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript实现文字展开和收起效果

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

纯CSS3如何实现移动端展开和收起效果

这篇文章给大家分享的是有关纯CSS3如何实现移动端展开和收起效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。展示效果:HTML代码
2023-06-08

vue+elementUl实现展开和收起搜索功能

这篇文章主要介绍了vue+elementUl实现展开和收起搜索功能,需要的朋友可以参考下
2023-01-16

Android TextView实现多文本折叠、展开效果

背景在开发过程中,当我们的需求中包含说说或者评论等内容的展示时,我们都会考虑当内容太多时该如何显示。当内容的字数太多,如果全部展示出来可能会影响体验效果,但是又不能只截取一部分内容进行展示,此时就需要考虑使用多行显示折叠的效果来实现。效果图
2023-05-31

微信小程序怎么实现text文本的展开与收起

这篇文章主要介绍了微信小程序怎么实现text文本的展开与收起 的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序怎么实现text文本的展开与收起 文章都会有所收获,下面我们一起来看看吧。先看看布局文件,关
2023-06-26

Android UI实现多行文本折叠展开效果

上文介绍了单行文本水平触摸滑动效果,通过EditText实现TextView单行长文本水平滑动效果。 本文继续介绍了多行文本折叠展开,自定义布局View实现多行文本折叠和展开 1.概述 经常在APP中能看到有引用文章或大段博文的内容,他们的
2022-06-06

Javascript中怎么实现逐行滚动文字效果

Javascript中怎么实现逐行滚动文字效果,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。//FILE: scrolltext.js CREATED: DannyKang
2023-06-03

用CSS3+HTML5+JS 怎么实现块的收缩与展开的动画效果

本篇内容介绍了“用CSS3+HTML5+JS 怎么实现块的收缩与展开的动画效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!最近在做项目时,
2023-06-08

Android实现文字和图片混排(文字环绕图片)效果

本文实例讲述了Android实现文字和图片混排(文字环绕图片)效果。分享给大家供大家参考,具体如下: 在平时我们做项目中,或许有要对一张图片或者某一个东西进行文字和图片说明,这时候要求排版美观,所以会出现文字和图片混排的情况,如图:这种情况
2022-06-06

CSS实现文字动画效果的方法和技巧

在网页设计与开发中,文字动画效果能够为页面增添活力和趣味性,吸引用户的眼球,提升用户体验。而CSS是实现文字动画效果的重要工具之一。本文将介绍一些常用的CSS属性与技巧,帮助你实现各种各样的文字动画效果。一、基础动画属性transition
2023-10-21

CSS实现文字滚动效果的技巧和方法

在网页设计中,文字滚动效果可以增加页面的活力和吸引力,为用户提供更好的视觉体验。通常情况下,我们可以使用CSS来实现文字滚动效果,使文字以流畅的动画形式在页面上滚动。本文将介绍一些常用的技巧和方法,帮助您实现文字滚动效果,并提供具体的代码示
2023-10-21

Android开发中怎么实现一个文字倒影效果

这期内容当中小编将会给大家带来有关Android开发中怎么实现一个文字倒影效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。布局文件中增加如下代码
2023-05-31

编程热搜

目录