vue实现动画效果展开与收起,vue 列表菜单展开收起

  vue实现动画效果展开与收起,vue 列表菜单展开收起

  本文主要详细介绍了Vue的文本展开和折叠功能。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。

  本文分享Vue实现文字展开和折叠功能的具体代码,供大家参考。具体内容如下

  先说需求和要实现的需求。

  1.移动端H5,发布消息后跳转到评论列表,文字超过5行,超出部分需要隐藏,需要有展开/折叠按钮。

  2.对于不超过5行的单词,不需要显示展开和折叠/按钮。

  直接把核心代码放在下面。

  div :ref=`community_${index} `

  社区词汇

  :class= { more-line :item . DOM height 300!item.open}

  v-html= content html(item . content)

  /div

  span class=切换-折叠

  v-show=item.domHeight 300

  @click=toggleFoldFn(item,index)

  {{ item.open?折叠:展开 }}

  /span

  实现思路:数据采集后,先渲染页面,然后计算渲染dom元素的高度,动态添加类,设置多余样式,显示展开和折叠按钮。目前是移动端h5,流畅度符合正常要求!下面说说具体细节:

  div显示文本内容。这里文本的行高固定为60px,所以5行以上的行高为300px。这里以300作为判断条件,可以根据实际情况进行修改。开放字段是展开和折叠的,默认为false。我们来看看具体的js代码。

  apiQueryCommentsList(数据)。然后((res)={

  if(res.data res.data.length){

  this . community list=RES . data;

  这个。$nextTick(()={

  for(设k=0;k this . community list . length;k ){

  const domHeight=this。$refs[`community_${k}`][0]。偏高;

  const open=domHeight 300?真:假;

  这个。$set(this.communityList[k], domHeight ,DOM height);

  这个。$set(this.communityList[k], open ,open);

  }

  });

  }否则{

  this . community list=[];

  }

  });

  获取数据后,先渲染,再获取dom高度。通过$set为每个数据添加domHeight属性和open属性。open属性也将用于展开和折叠功能。接下来看扩展和折叠功能。

  toggleFoldFn(item){

  //点击iOS下的展开,记录滚动条位置,点击折叠,返回展开位置。

  如果(!item.open){

  this . scoll top=document . document element . scroll top document . body . scroll top;

  }否则{

  const ua=window . navigator . user agent . tolocalelowercase();

  const isIOS=/iphoneipadipod/。测试(ua);

  if(this.scollTop!==空isIOS

  window.scrollTo(0,this . scoll top);

  }

  }

  item.open=!item.open

  }

  item.open=!item.open这个代码可以实现展开和折叠的功能。其他代码用于解决ios上展开和折叠后滚动条位置变化的问题。上面的代码可以完成展开和折叠的功能!

  替换换行符:

  contentHtml(内容){

  return content.replace(/\n/g, br/);

  }

  在下面张贴css代码。社区-单词{

  字体大小:32px

  字体系列:方平SC;

  字体粗细:400;

  行高:60px

  颜色:rgba(6,15,38,1);

  自动换行:断字;

  断字:正常;

  }。更多行{

  断字:全断;

  文本溢出:省略号;

  显示:-WebKit-box;

  -webkit-box-orient:垂直;

  -WebKit-line-clamp:5;

  溢出:隐藏;

  }

  这就是本文的全部内容。希望对大家的学习有帮助,支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: