效果参见:https://segmentfault.com/q/1010000011359250/a-1020000011360185

上述链接中,大佬给除了解决方法,再次进行总结,方便以后使用。

除了使用jQuery的方式实现上述效果,同样可以在Vue实现,下面是解决办法:

1、创建collapse.js文件

const elTransition ="0.3s height ease-in-out, 0.3s padding-top ease-in-out, 0.3s padding-bottom ease-in-out";
const Transition = {"before-enter"(el) {el.style.transition = elTransition;if (!el.dataset) el.dataset = {};el.dataset.oldPaddingTop = el.style.paddingTop;el.dataset.oldPaddingBottom = el.style.paddingBottom;el.style.height = 0;el.style.paddingTop = 0;el.style.paddingBottom = 0;},enter(el) {el.dataset.oldOverflow = el.style.overflow;if (el.scrollHeight !== 0) {el.style.height = el.scrollHeight + "px";el.style.paddingTop = el.dataset.oldPaddingTop;el.style.paddingBottom = el.dataset.oldPaddingBottom;} else {el.style.height = "";el.style.paddingTop = el.dataset.oldPaddingTop;el.style.paddingBottom = el.dataset.oldPaddingBottom;}el.style.overflow = "hidden";},"after-enter"(el) {el.style.transition = "";el.style.height = "";el.style.overflow = el.dataset.oldOverflow;},"before-leave"(el) {if (!el.dataset) el.dataset = {};el.dataset.oldPaddingTop = el.style.paddingTop;el.dataset.oldPaddingBottom = el.style.paddingBottom;el.dataset.oldOverflow = el.style.overflow;el.style.height = el.scrollHeight + "px";el.style.overflow = "hidden";},leave(el) {if (el.scrollHeight !== 0) {el.style.transition = elTransition;el.style.height = 0;el.style.paddingTop = 0;el.style.paddingBottom = 0;}},"after-leave"(el) {el.style.transition = "";el.style.height = "";el.style.overflow = el.dataset.oldOverflow;el.style.paddingTop = el.dataset.oldPaddingTop;el.style.paddingBottom = el.dataset.oldPaddingBottom;}
};export default {name: "collapseTransition",functional: true,render(h, { children }) {const data = {on: Transition};return h("transition", data, children);}
};

2、在.vue组件中引入


<template><div class="container"><button @click="isActive = !isActive">展开/折叠</button><collapse><div class="container" v-show="isActive"><h2>欢迎大家品尝Pizza!</h2><h5>这里有你非常喜欢的Pizza!</h5></div></collapse></div>
</template>
<script>
import collapse from "../assets/js/collapse.js";
export default {data() {return {isActive: false};},components: {collapse}
};
</script>

Vue 实现展开折叠效果相关推荐

  1. WPF实现圆形菜单动态展开折叠效果

    实现效果如下: 思路:根据子菜单个数计算旋转角度动态生成子菜单,并设置展开折叠动画. 步骤: 1.自定义按钮MyButton,建立展示图像属性DisplayImage public class MyB ...

  2. vue制作展开收起效果

    <template><div><div class="report-list-title"><div v-for="(item, ...

  3. JasperReport做清单的展开折叠效果

    之前工作需要要求在报表中做这样的效果,在网上找了很久很久没有找到方法. 后来自己想到一个方法,思路是这样:就是给需要折叠的条目设置有规律的id,并且利用其文本直接复制的处理方式,为需要折叠的标签加上o ...

  4. VUE实现折叠展开动画效果

    VUE实现折叠展开动画效果 第一种情况:从中间向两边展开效果(水平缩放) .input-search {position: absolute;bottom: 8px;right: 0px;width: ...

  5. 标签超过两行折叠,可展开(淘宝搜索历史记录折叠效果)(vue)

    问题: 有时,碰到很多行标签,需要展示的篇幅比较大,例如淘宝搜索的历史记录标签行,如果一下子全部展示很影响美观,我们就有必要使用折叠效果,达到用户需要展开查看全部时再查看. 解决: 1. 获取父容器所 ...

  6. Vue table 点击按钮展开折叠面板

    vue 实现的 table 折叠展开功能,由于工作中用到,这里把相应代码整理下,方便自己日后 Copy 1.Html 部分 由基本的 table 表单与折叠栏部分组成 PS:table 上需要加上 r ...

  7. vue实现侧边折叠菜单栏手风琴效果

    在我们做管理后台亦或是产品流程时,总是需要一个菜单栏或者导航栏来架起我们的产品架构,那么,如何用vue实现侧边折叠导航栏呢?接下来将一一介绍. 请先看效果演示图. 步骤1:先架构整个页面的布局,撰写h ...

  8. html鼠标移动自动展开,JS实现鼠标滑过折叠与展开菜单效果代码

    本文实例讲述了JS实现鼠标滑过折叠与展开菜单效果代码.分享给大家供大家参考.具体如下: 这是一款展开菜单特效,鼠标移上的时候自动展开,移走后自动折叠隐藏起来,运用了JS技术,并结合了CSS共同实现的效 ...

  9. Vue 实现在文本溢出后浮现Tooltip、及文本展开收起效果

    目录 示例: 1. expandable模式(默认) - 文本展开收起效果: 2. tooltip模式 - 文本使用Tooltip效果: 3. tooltipExpandable模式 - 文本同时使用 ...

最新文章

  1. centos安装及网络配置
  2. .NET速度的问题,不是最重要的
  3. iOS 导航栏实现总结
  4. java实现遍历树形菜单方法——实体类VoteTree
  5. UserThreadLocal 用户线程Token拦截验证
  6. Windows之vue-cli安装和vue项目快速搭建
  7. 解决iframe在ios中无法滚动的bug
  8. 微软Patterns Practices发布Windows Azure指南第三部分——构建混合应用
  9. android 音频控件,android AudioManager音频控件
  10. [Swust OJ 166]--方程的解数(hash法)
  11. 【ThinkPHP 开发辅助系统】问答
  12. ubuntu 旺旺_Ubuntu 下通过Wine安装阿里旺旺并解决中文乱码
  13. 笔记本摄像头频闪频灭
  14. Android——距离传感器(PROXIMITY)的应用
  15. python人名统计_「姓名分析」Python|美国婴儿姓名分析 - seo实验室
  16. “黎明”号新任务继续“锁定”谷神星
  17. ubuntu测试键盘工具_Lubuntu安装屏幕键盘onboard,使触摸屏可以登录和输入
  18. ## 编写一个从1到150的循环,并在每行打印一个值,另外在每个3的倍数行打印“foo“,在5的倍数行打印“biz“,在10的倍数行打印“baz“;
  19. 做游戏,学编程(C语言) 15 太鼓达人
  20. 前序+中序 =〉后序

热门文章

  1. 使用Vue三种方法实现简单计算器
  2. 关于 JS 中,实现在异步代码执行完毕再执行后续代码
  3. 利用VSCode集成并连接远程Linux服务器上的Docker
  4. 华为路由器登录方式设置
  5. C++11之后的decltype类型指示符
  6. park和unpark方法详解
  7. 彻底解决Wireshark找不到接口的问题
  8. activiti完整教程
  9. 什么是电商运营(2)?
  10. 一份MCS51指令表