CSS使用过渡动画实现展开折叠效果

前端页面展开/折叠效果可通过v-show控制显示隐藏,但这样页面交互太刻意了,显得不是很顺畅,为了提高用户使用体验感可以使用过渡动画实现平缓地展开折叠效果~

一、页面结构

大致如下,页面成左右结构,通过箭头控制收缩

 二、html代码

isFold 为变量, 初始化值 false

<template>
  <div class="tool-param-wrap">
    <!-- 向右的箭头 展开 -->
    <div v-if="isFold" class="r-arrow" @click="handleTrigger">
      <i class="el-icon-arrow-right"></i> 
    </div>
    <div :class="['group-wrap', isFold ? 'is-fold' : 'not-fold']">
        <!-- 向左的箭头 折叠 -->
        <div class="fold-icon" @click="handleTrigger">
          <i class="el-icon-arrow-left"></i>
        </div>
    </div>
    <div :class="['group-p-box', isFold ? 'g-not-fold' : 'g-is-fold']"></div>
  </div>
</template>

三、css样式

  .tool-param-wrap {
    display: flex;
    position: relative;
    width: 100%;
    height: calc(100vh - 78px);

    .r-arrow {
      cursor: pointer;
      position: absolute;
      width: 14px;
      height: 14px;
      left: 15px;
      top: 28px;
    }

    .is-fold {
      transition: all 0.2s;
      width: 0px;
    }

    .not-fold {
      width: 200px;
      border: 1px solid #f2f3f8;
    }

    .group-p-box {
      height: calc(100vh - 110px);
      overflow-y: auto;
    }

    .g-not-fold {
      width: 100%;
    }

    .g-is-fold {
      width: calc(100% - 200px);
      transition: all 0.2s;
    }
  }

重点:transition: all 0.2s;

1、CSS过渡允许您在给定的时间内平滑地改变属性值

2、过渡效果两个明确事件:

1)添加效果的CSS属性   

2)效果持续时间

注意:如果未规定持续时间部分,则过渡不会有效果,默认值为0

3、CSS过渡属性

transition: all 0.2s;      是简写等价于   transition: 过渡属性  过渡效果延迟;

CSS 过渡https://www.w3school.com.cn/css/css3_transitions.asp

四、折叠展开事件处理函数

handleTrigger() {
    this.isFold = !this.isFold;
}

五、效果展示

 

 以上就可以实现平滑展开折叠啦,快去试试吧

这世界很喧嚣,做你自己就好

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CSS中,实现点击按钮折叠展开效果可以通过利用CSS的选择器和伪类,结合使用CSS动画过渡效果实现。 首先,我们需要一个具有点击功能的按钮,在HTML中可以用`<button>`标签或者自定义的`<div>`元素来实现。这个按钮可以用来触发展开折叠内容的动作。 然后,我们可以利用CSS的选择器选中要展开折叠的内容。可以是一个段落(`<p>`标签),一个列表(`<ul>`或`<ol>`标签),或者一个容器元素(`<div>`标签)。 接下来,我们可以使用CSS的伪类选择器,比如`:hover`,`:focus`或者`:target`来设置按钮被点击时要执行的动作。比如,当按钮被点击时,我们可以通过`display`属性将内容的显示模式设置为`block`或者`none`来实现展开折叠效果。 我们还可以通过CSS动画过渡效果实现平滑的展开折叠效果。可以使用`transition`属性来设置内容的过渡效果(比如渐变,移动等),使用`animation`属性来设置动画效果(比如旋转,缩放等)。 最后,我们可以通过CSS的媒体查询来实现响应式设计。根据不同的屏幕大小或设备类型,我们可以设置不同的展开折叠效果,以适应不同的屏幕尺寸和设备。 综上所述,通过选择器、伪类、动画过渡效果和媒体查询等CSS属性和功能的灵活组合,我们可以实现点击按钮折叠展开效果,增强网页的交互性和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值