使用css的transition属性实现抽屉功能

需求

使用css手写一个抽屉,并且不能遮挡住原来的页面

效果:(录的gif有点卡,实际情况很丝滑)

实现代码:

<template>
  <div class="dashboard-container">
    <div class="mainBox"></div>
    <div id="drawerRight">
      <div class="iconDiv" @click="expandFn">展开</div>
    </div>
  </div>
</template>

<script>
export default {
  name: "drawer",
  data() {
    return {};
  },
  methods: {
    expandFn() {
      var Div = document.querySelector("div#drawerRight");
      var Btn = document.querySelector(".iconDiv");
      var mainDiv = document.querySelector(".mainBox");
      if (Btn.innerHTML === "展开") {
        Btn.innerHTML = "收起";
        Div.style.right = "0";
        mainDiv.style.width = "80%";
      } else if (Btn.innerHTML === "收起") {
        Div.style.right = "-15.5%";
        Btn.innerHTML = "展开";
        mainDiv.style.width = "95%";
      }
    },
  },
};
</script>

<style lang="scss" scoped>
.dashboard {
  &-container {
    margin: 30px;
    height: calc(100vh - 60px);
  }
  &-text {
    font-size: 30px;
    line-height: 46px;
  }
}
.mainBox {
  width: 95%;
  height: 80%;
  position: absolute;
  border: 1px dashed #0c99e6;
  transition: width linear 0.5s;

}
#drawerRight {
  position: relative;
  width: 16%;
  height: 80%;
  background-color: rgb(225, 216, 233) !important;
  padding: 20px;
  border-radius: 4px;
  position: absolute;
  right: -15.5%;
  transition: right linear 0.5s;
  .iconDiv {
    position: absolute;
    right: 100%;
    top: 45%;
    width: 30px;
    height: 80px;
    text-align: center;
    padding: 20px 5px;
    background-color: #0c99e6;
    color: #ffffff;
    border-radius: 4px;
    text-align: center;
    transition: right linear 0.5s;
    cursor: pointer;
    i {
      position: relative;
      top: 50%;
    }
  }
}
</style>

知识点:

1、这里主要使用了transition属性,transition属性是css3中的一个重要属性,可以为一个元素在不同样式之间变化添加补间动画。只需要定义开始状态和结束状态,就可以为我们添加补间动画。相较于传统的js实现的动画,transition属性实现的动画效果更细腻而且内存开销小。

2、transition属性有4个基本要素,分别是要过度的属性,动画时长,动画演变速度,延迟时间

3、transition可以过渡的属性有:

(1)所有数值属性都可以参与过度,比如width,height,left,top,border-radius
(2)背景颜色和文字颜色都可以过渡
(3)所有变形(包括2D和3D变换)都可以过渡

4、这里还使用了js原生写法,具体讲解可以看另一篇文章:前端基础知识--Document的常用属性和常用函数_document选择器-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/420093.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

android移动应用开发教程,android系统工程师面试宝典

Java相关 Java基础 HashMap1.7和1.8的实现原理final关键字&#xff0c;为什么匿名内部类使用局部引用要用final Java多线程 线程池的使用和原理 锁机制&#xff1a;synchronized、Lock volatile关键字 ThreadLocal原理 JVM Java内存结构Java垃圾回收机制Java类加载过程…

基于CVX凸优化的电动汽车充放电调度matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 CVX凸优化 4.2 电动汽车充放电调度 5.完整程序 1.程序功能描述 基于CVX凸优化的电动汽车充放电调度.仿真输出无电动汽车充电时的负载&#xff0c;电动汽车充电时cvx全局优化求解后的总…

牛客周赛 Round 34(A,B,C,D,E,F,G)

把这场忘了。。官方也迟迟不发题解 比赛链接 出题人题解 A 小红的字符串生成 思路&#xff1a; 枚举四种字符串打印出来即可&#xff0c;为了防止重复可以用set先去一下重。 code&#xff1a; #include <iostream> #include <cstdio> #include <cstring&g…

kubernetes最新版安装单机版v1.21.5

k8s集群由Master节点和Node&#xff08;Worker&#xff09;节点组成。 1.环境 环境&#xff1a;centos 7资源配置&#xff1a;2c4g &#xff08;CPU最少2c&#xff0c;不然k8s起不来&#xff09;docker&#xff1a;25.0.3k8s&#xff1a;1.21.5 2.安装前置环境 [rootbertra…

代码随想录算法刷题训练营day28:LeetCode(93)复原IP地址 、LeetCode(78)子集 、LeetCode(90)子集II

代码随想录算法刷题训练营day28&#xff1a;LeetCode(93)复原IP地址 、LeetCode(78)子集 、LeetCode(90)子集II LeetCode(93)复原IP地址 题目 代码 import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List;class Solu…

Nacos进阶

目录 Nacos支持三种配置加载方案 Namespace方案 DataID方案 Group方案 同时加载多个配置集 Nacos支持三种配置加载方案 Nacos支持“Namespacegroupdata ID”的配置解决方案。 详情见&#xff1a;Nacos config alibaba/spring-cloud-alibaba Wiki GitHub Namespace方案…

JavaScript高级程序设计

前言 《JavaScript高级程序设计》 第1章——什么是JavaScript DOM将整个页面抽象为一组分层节点。 BOM用于支持访问和操作浏览器的窗口。 第2章——HTML中的JavaScript 2.1 < script >元素 元素描述async立即开始下载脚本&#xff0c;但不能阻止其他页面动作&#…

黑马程序员Java面试专题(2)|并发编程篇(1)线程基础

指路&#x1f449; 黑马程序员Java面试专题&#xff08;1&#xff09;|常见集合篇&#xff08;1&#xff09;ArrayList&LinkedList-CSDN博客https://blog.csdn.net/YOYU_/article/details/135932520黑马程序员Java面试专题&#xff08;1&#xff09;|常见集合篇&#xff0…

RTE 开源|小红书 REDPlayer 正式发布!快来 get 同款播放器~

本项目由 RTE 开发者社区 x 小红书 联合运营 播放器最初出现在 19 世纪&#xff0c;当时主要用于播放音频&#xff0c;例如通过留声机播放唱片。 随着技术的进步&#xff0c;音频播放器不断改进&#xff0c;品质越来越好&#xff0c;体积也越来越小。到了今天&#xff0c;通过…

Vue2:用node+express写一个轻量级的后端服务

1、桌面创建demo文件夹 进入demo&#xff0c;执行如下命令 npm init输入名称&#xff1a; test_server然后一路回车 2、安装express框架 npm i express3、新建server.js 在demo文件夹中&#xff0c;新建server.js const express require(express) const app express()…

Linux——进程控制(一)进程的创建与退出

目录 一、进程创建 1.写时拷贝 2.创建多个进程 二、进程终止 1.main函数的返回值 2.bash中的$? 3.自定义退出码 4.C语言的错误码 5.错误码与退出码的区别 6.代码异常终止 7.exit函数 8.总结 一、进程创建 在之前&#xff0c;我们学过linux中的非常重要的函数——…

Fastadmin下拉选择菜单

下拉菜单效果图如下所示 对应的表字段为 cid int(11) unsigned NOT NULL DEFAULT ‘1’ COMMENT ‘分类ID 1 新手 2VIP 3基金产品’ 步骤如下&#xff1a; 一、lang/zh-cn 中找到对应的文件&#xff0c;添加 配置 二、Model 中添加方法 三、控制器中添加 四、add.html中 …

leetcode刷题(javaScript)——栈相关场景题总结

在LeetCode刷题中&#xff0c;栈是一个非常有用的数据结构&#xff0c;可以解决许多问题&#xff0c;包括但不限于以下几类问题&#xff1a; 括号匹配问题&#xff1a;例如检查括号序列是否有效、计算表达式的值等。逆波兰表达式求值&#xff1a;使用栈来实现逆波兰表达式的计算…

Python实现链表:从基础到应用

一、引言 链表是一种常见的数据结构&#xff0c;它由一系列节点组成&#xff0c;每个节点包含数据和指向下一个节点的指针。链表在内存中的存储不是连续的&#xff0c;这使得它在插入和删除操作上具有较高的效率。本文将使用Python语言来实现一个简单的链表&#xff0c;并展示其…

零基础学编程,中文编程工具之进度标尺构件的编程用法

零基础学编程&#xff0c;中文编程工具之进度标尺构件的编程用法 一、前言 今天给大家分享的中文编程开发语言工具 进度条构件的用法。 编程入门视频教程链接 https://edu.csdn.net/course/detail/39036 编程工具及实例源码文件下载可以点击最下方官网卡片——软件下载——…

力扣:35. 搜索插入位置

力扣&#xff1a;35. 搜索插入位置 描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,…

windows系统玩《模拟人生 4》 免安装版本

本文介绍如何在windows系统上玩《模拟人生 4》这个游戏&#xff0c;无需安装&#xff0c;直接玩&#xff01; 首先下载百度网盘分享的文件&#xff0c;这里下载文章末尾。 下载完成后先点击 language-change.exe 将游戏语言更改为英文&#xff0c;默认是俄语&#xff0c;根本…

sqllabs的order by注入

当我们在打开sqli-labs的46关发现其实是个表格&#xff0c;当测试sort等于123时&#xff0c;会根据列数的不同来进行排序 我们需要利用这个点来判断是否存在注入漏洞&#xff0c;通过加入asc 和desc判断页面有注入点 1、基于使用if语句盲注 如果我们配合if函数&#xff0c;表达…

B端系统:导航机制设计,用户体验提升的法宝

Hi&#xff0c;大家好&#xff0c;我是贝格前端工场&#xff0c;从事8年前端开发的老司机。很多B端系统体验不好很大一部分原因在于导航设计的不合理&#xff0c;让用户无所适从&#xff0c;大大降低了操作体验&#xff0c;本文着重分析B端系统的导航体系改如何设计&#xff0c…

[CISCN2019 华北赛区 Day2 Web1]Hack World 1 题目分析与详解

一、分析判断 进入靶机&#xff0c;主页面如图&#xff1a; 主页面提供给我们一条关键信息&#xff1a; flag值在 表flag 中的 flag列 中。 接着我们尝试输入不同的id&#xff0c;情况分别如图&#xff1a; 当id1时&#xff1a; 当id2时&#xff1a; 当id3时&#xff1a; 我…