component-右侧抽屉组件

news2024/9/20 5:56:19

1.右侧抽屉组件

点击筛选,右侧抽屉滑出,点击取消或者点击空白处抽屉收起。

2.代码 


<template>
	<div class="all" @click="hidden()">
        <!-- 抽屉 -->
		<div class="drawer">
			<div class="drawerBox" id="drawerBox" :class="{ show: isShow }">
                <!-- 头部 -->
				<div class="BoxHeader">
					<span class="boxFilterTitle">xxxx</span>
					<span class="off" @click="closeS">
						<svg t="1686011566423" class="icon" viewBox="0 0 1024 1024" p-id="4236" width="16" height="16">
							<path d="M801.856 734.016 579.904 512l222.016-222.016c18.816-18.816 18.88-49.152 0.064-67.968-18.752-18.752-49.216-18.752-67.904 0L512 444.032 289.92 222.016c-18.688-18.752-49.088-18.752-67.904 0C203.328 240.768 203.328 271.232 222.144 290.048L444.096 512l-222.016 221.952c-18.816 18.752-18.816 49.152-0.064 67.968C231.424 811.392 243.84 816 256 816s24.576-4.608 33.92-14.016L512 579.968l222.08 222.016c9.408 9.344 21.696 14.016 33.92 14.016 12.288 0 24.576-4.608 33.92-14.016C820.672 783.104 820.736 752.768 801.856 734.016z" p-id="4237" fill="#8a8a8a"></path>
						</svg>
					</span>
				</div>
				<!-- 内容 -->
				<div class="BoxContent" style="backgroundColor:green">
				</div>
                <!-- 底部 -->
				<div class="BoxBottom" style="display:flex;align-items:center;justify-content:center">
                    <a-button class="button" type="primary">筛选</a-button>
                    <a-button class="button" type="sync" style="margin-left:5%">取消</a-button>
				</div>
			</div>
            <!-- 筛选 -->
			<div @click="open()" id="search" style="width:60px;cursor: pointer;top:2%;right:100px;z-index:999; position: absolute;">
				<svg t="1686017135854" class="icon icons" viewBox="0 0 1024 1024" p-id="5444" width="20" height="20">
					<path d="M544.064 472a32 32 0 0 1 8.096-21.248L696.8 288H327.36l144.64 162.752a32 32 0 0 1 8.096 21.248V704l64-48v-184z m64 200a32 32 0 0 1-12.8 25.6l-128 96a32 32 0 0 1-51.2-25.6v-283.84L232.16 277.248C213.76 256.64 228.448 224 256.064 224h512c27.616 0 42.24 32.64 23.904 53.248l-183.904 206.912V672z" fill="#515151" p-id="5445"></path>
				</svg>
				<span class="filter">筛选</span>
			</div>
		</div>
	</div>
</template>
<script>
export default {
	name: "drawerBox",
	data(){
	return{
		    isShow: false,
        }
	},
	methods: {
		hidden() {
			var drawerBox = document.getElementById("drawerBox");
			var search = document.getElementById("search");
			if (drawerBox && search) {
				if (!drawerBox.contains(event.target) && !search.contains(event.target)) {
				this.isShow = false;
				}
			}
		},
		// 点击显示与否
		closeS() {
			this.isShow = false;
		},
		open() {
			this.isShow = true;
		},
	}
}
</script>
<style lang="less" scoped>
.all {
    width: 100%;
    height: 100%;
    background-color: rgb(255, 255, 255);
}
.drawer {
    height: 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
/* 搜索 */
.boxFilterTitle {
    display: block;
    width: 12%;
    height: 50%;
    float: left;
    margin-top: 2.7%;
    color: #46494d;
    font-size: 14px;
    padding-left: 3%;
}
.boxFilterTitle:hover {
    color: #1890ff;
    path {
        fill: #1890ff;
    }
}

/* 关闭 */
.off {
    margin-left: 77%;
    cursor: pointer;
    display: block;
    margin-top: 2.7%;
    float: left;
    width: 10%;
    height: 50%;
}
.off:hover{
    color: black;
    path:hover{
        fill: red;
}
}
/* 抽屉盒子 */
.drawerBox {
    position: fixed;
    z-index: 1000;
    top: 17%;
    width: 390px;
    height: 81%;
    border-left: 1px solid #cfd8dc !important;
    box-shadow: 0px 3px 12px rgb(168, 162, 162);
    transition: all 0.6s ease;
    right: -400px;
    padding: 0px 10px 0px 0px;
    border-top-left-radius: 1%;
    border-bottom-left-radius: 1%;
    background-color: rgb(255, 255, 255);
}
  
.show {
    right: 0;
}
  
/* 过滤图标 */
.icons {
    float: left;
}
  
.filter {
    display: block;
    width: 50%;
    height: 100%;
    float: left;
    align-items: center;
    padding-left: 2%;
    font-size: 14px;
}
  
/* 主体内容 */
.BoxHeader,
.BoxContent,
.BoxBottom {
    margin-right: 15%;
}
  
.BoxHeader {
    margin-top: 1%;
    height: 6%;
    width: 100%;
    border: 1px solid #ddd;
    border-top: none;
    border-top-left-radius: 1%;
}

.BoxContent {
    height: 80%;
    width: 100%;
    border-right: 1px solid #ddd;
}

.BoxBottom {
    height: 10%;
    border: 1px solid #ddd;
    border-bottom: none;
    width: 100%;
    border-left: none;
    border-top-left-radius: 1%;
    border-bottom-left-radius: 1%;
}  
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件测试相关内容第五弹 -- 自动化测试Selenium

写在前&#xff1a;hello这里是西西~ 这边博客主要学习关于自动化测试的相关内容&#xff0c;首先了解自动化测试的相关理论知识&#xff0c;其次学习web应用中基于UI的自动化测试框架 - selemium[需要重点掌握selenium工作原理]&#xff0c;实操selenium,最后学习Junit相关知识…

如何在个人Windows电脑搭建Cloudreve云盘并实现无公网IP远程访问

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了&#xff0c;各互联网大厂也纷纷加入战局&#…

人像抠图PP-Matting——支持多场景精细化高精度人像抠图(C++模型推理)

简介 Matting和分割是图像处理中两个重要的任务&#xff0c;它们在抠图和图像分析中起着不同的作用。 分割方法将图像分成不同的区域&#xff0c;并为每个像素分配一个分类标签&#xff0c;因此其输出是一个像素级别的分类标签图&#xff0c;通常是整型数据。这种方法适用于将…

微信小程序开发之创建一个自己的项目和项目目录下各个文件的了解

1、小程序开发工具基础 &#xff08;1&#xff09;菜单栏&#xff1a;可以对开发工具进行一些简单的设置&#xff0c;还可以在帮助一行获取学习相关api文档 &#xff08;2&#xff09;模拟器显示栏&#xff1a;每当我们在进行便写好代码之后&#xff0c;通过编译可以在模拟显示…

Springboot+vue的医疗挂号管理系统+数据库+报告+免费远程调试

效果介绍: Springbootvue的医疗挂号管理系统&#xff0c;Javaee项目&#xff0c;springboot vue前后端分离项目 本文设计了一个基于Springbootvue的前后端分离的医疗挂号管理系统&#xff0c;采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;con…

OceanMind海睿思入选中国信通院《2023高质量数字化转型技术解决方案集》

近日&#xff0c;由中国信息通信研究院“铸基计划”编制的《2023高质量数字化转型技术解决方案集&#xff08;第一版&#xff09;》正式发布。 中新赛克海睿思 凭借卓越的产品力以及广泛的行业实践&#xff0c;成功入选该方案集的数据分析行业技术解决方案。 为促进数字化转型…

嵌入式指纹方案——ACM32FP0 二合一(主控+TK)锁控芯片

随着智能设备的持续发展&#xff0c;指纹识别技术成为了现在智能终端市场和移动支付市场中占有率最高的生物识别技术。凭借高识别率、短耗时等优势&#xff0c;被广泛地运用在智能门锁、智能手机、智能家居等设备上。 我们推荐的产品在2015年进入指纹识别应用领域&#xff0c;自…

PR无法在指定轨道上粘贴

在Adobe Premier Pro 2022中&#xff0c;按照视频教程复制(Ctrl C)、粘贴(Ctrl V)一段视频素材时&#xff0c;不能粘贴到点亮的轨道上&#xff0c;尝试了几次都不行。 最后找到了原因。 在快捷键设置中&#xff0c;发现CtrlV快捷键对应的是&#xff0c;粘贴到同一轨道&…

CCTSDB 数据集 VOC/YOLO格式

CCTSDB 数据集是由长沙理工大学的相关学者及团队制作而成的&#xff0c;其有交通标志样本图片有近 20000 张&#xff0c;共含交通标志近 40000 个&#xff0c;但目前只公开了其中的 10000 张图片&#xff0c;标注了常见的指示标志、禁令标志及警告标志三大类交通标志。经过筛选…

Linux/Agile

Agile Enumeration Nmap 扫描发现对外开放了22和80端口&#xff0c;使用nmap详细扫描这两个端口 nmap -sC -sV -oA Agile.nmap -p 22,80 10.10.11.203 详细扫描22和80端口&#xff0c;22端口运行着ssh服务,80端口运行着http服务&#xff0c;nmap揭示了域名superpass.htb&am…

vue中循环数据,添加展开、收起操作

1.在data中定义变量 expandedIndex&#xff0c;默认展开第一条 expandedIndex:0,2.标题栏展开、收起显示判断&#xff0c;并填加点击事件 toggleVisibility <h5 class"titleLine">{{item.checkPart}} <span click"toggleVisibility(index)">…

怎么建设数据中台?详解数据中台架构内的三大平台

一、什么是数据中台&#xff1f; 要知道“中台”是什么&#xff0c;就得先了解“前台”和“后台”。 前台&#xff0c;就是我们日常使用的过程中可以直接看到和感知到的东西&#xff0c;比如你打开某东app买了个3080显卡&#xff0c;在这个过程中你看到的页面以及搜索、点击详…

Java学习笔记20——枚举类型的创建与使用

在实际编程中&#xff0c;存在着这样的“数据集”&#xff0c;它们的数值在程序中是稳定的并且个数是有限的。例如春、夏、秋、冬四个数据元素组成了四季的“数据集”&#xff0c;一月到十二月组成了十二个月份的“数据集”&#xff0c;周一到周五及周六周日组成了每周七天的“…

了解交换机上的SFP和QSFP端口

在当今互联的世界中&#xff0c;可靠、高效的网络通信对于企业的蓬勃发展至关重要。为了实现顺畅的连接&#xff0c;了解能够实现该目标的技术非常重要。其中一项关键技术是交换机上的SFP和QSFP端口。本文将简要介绍这些概念&#xff0c;定义并解释交换机SFP端口和QSFP端口的优…

面试官:对于 Java 中多态的理解是什么?

面试官&#xff1a;对于 Java 中多态的理解是什么&#xff1f; 题目 面试官&#xff1a;对于 Java 中多态的理解是什么&#xff1f; 推荐解析 1.父类的引用指向子类的对象 子类重写父类的方法&#xff1a;子类可以继承父类的方法&#xff0c;并对其进行重写。当通过父类的…

Python炒股自动化(5):通过接口查询订单,查询账户资产

上一节我们演示了报单撤单&#xff0c;也叫提交委托和撤销委托&#xff0c;我习惯说下单撤单&#xff0c;与交易所建立连接这里不演示了&#xff0c;没看的可以点下面链接了解一下 Python炒股自动化&#xff08;4&#xff09;&#xff1a;通过接口向交易所发送订单https://cai…

关于msvcp140.dll丢失的解决方法详情介绍,修复dll文件的安全注意事项

在使用电脑的过程中&#xff0c;是否有遇到过关于msvcp140.dll丢失的问题&#xff0c;遇到这样的问题你是怎么解决的&#xff0c;都有哪些msvcp140.dll丢失的解决方法是能够完美解决msvcp140.dll丢失问题的&#xff0c;今天小编将带大家去了解msvcp140.dll文件以及分析完美解决…

2024年是否值得投资购买Photoshop?优势与劣势解析

相信所有的设计师都是对的 Adobe Photoshop 非常熟悉&#xff0c;它是一款专业的照片编辑软件应用程序。如果您有兴趣购买&#xff0c;请购买。 Adobe Photoshop&#xff0c;也许你想知道Adobe Photoshop价格。Adobe Photoshop的价格反映了它强大的使用价值&#xff0c;下面是不…

Vuex状态、数据持久化(vue2、vue3状态数据持久化)

简介&#xff1a;Vuex是一个仓库&#xff0c;是vue的状态管理工具&#xff0c;存放公共数据&#xff0c;任何组件都可以使用vuex里的公共数据。Vuex提供了插件系统&#xff0c;允许我们使用 vuex-persistedstate插件&#xff0c;将Vuex的状态持久化到本地存储中&#xff0c;解决…

@arco.design radioGroup 组件手写 beforeChange 方法

官方是没有提供 beforeChange 事件的&#xff0c;只能自己写一个 子组件&#xff08;CustomRadioGroup&#xff09; <template><a-radio-group :model-value"modelValue" change"onRadioChange"><a-radio v-for"item in list" …