【项目经验】elementui抽屉(从下到上方向)实现向上拉伸

news2025/2/26 19:17:19

效果图

直接上代码

<template>
    <div>
        <el-button @click="drawerBtn" type="primary" style="margin-left: 16px;">
            点我打开
        </el-button>

        <el-drawer title="我是标题" :modal="false" :wrapperClosable="false" :visible.sync="drawer" :with-header="false"
            :direction="btt" v-drawerDrag>
            <div class="box">
                <div class="text">bug天选之子</div>
            </div>
        </el-drawer>
    </div>
</template>

<script>
import Vue from 'vue'
Vue.directive('drawerDrag', {
    bind (el, binding, vnode, oldVnode) {
        // 抽屉可拉伸的最小高度
        let minHeight = 200;
        const dragDom = el.querySelector('.el-drawer');
        // console.log("抽屉的Dom", dragDom);
        // 创建上拉按钮并添加到抽屉里面
        const resizeELT = document.createElement("div");
        dragDom.appendChild(resizeELT);
        // 上拉按钮的样式
        resizeELT.style.cursor = 'n-resize';
        resizeELT.style.position = 'absolute';
        resizeELT.style.height = '10px';
        resizeELT.style.width = '100%';
        resizeELT.style.left = '0px';
        resizeELT.style.top = '0px';
        // resizeELT.style.background = 'red'
        // console.log(resizeELT);

        // 上边拉伸鼠标按下事件
        resizeELT.onmousedown = (e) => {
            console.log("jinlail");
            let ELoffSetTop = dragDom.offsetTop;
            let clientY = e.clientY;
            let elH = dragDom.clientHeight;
            document.onmousemove = function (e) {
                // 鼠标移动时禁止默认事件
                e.preventDefault();
                if (clientY > ELoffSetTop && clientY < ELoffSetTop + 10) {
                    // 向上拉
                    if (clientY > e.clientY) {
                        dragDom.style.height = elH + (clientY - e.clientY) + 'px';
                        console.log(dragDom.style.height);
                    }
                    // 向下拉
                    if (clientY < e.clientY) {
                        if (dragDom.clientHeight < minHeight) {
                            // 小于最小高度,不操作
                        } else {
                            dragDom.style.height = elH - (e.clientY - clientY) + 'px';
                            console.log(dragDom.style.height);
                        }
                    }
                }
            }
            // 结束时移除事件
            document.onmouseup = function (e) {
                document.onmousemove = null;
                document.onmouseup = null;
            }
        }
    }
})
export default {
    name: 'WorkspaceJsonAboutView',

    data () {
        return {
            drawer: false,
            btt: 'btt',
            closeFalg: false
        };
    },

    mounted () {

    },

    methods: {
        drawerBtn () {
            this.drawer = true;
        }
    },
};
</script>

<style lang="less" scoped>
// 复制的时候可以不用复制css代码
.box {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background: url("../assets/img/火焰.jpg");
    background-size: 100% 100%;
    background-repeat: no-repeat;
}

.text {
    flex: 0 0 100%;
    font-size: 50px;
    font-weight: 900;
    color: #00000000;
    text-align: center;
    font-family: 'Lato', sans-serif;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    border-bottom: 1px solid #d4d7ff;
    border-top: 1px solid #d4d7ff;
    /*这里更换你的背景图片*/
    background: url("../assets/img/火焰.jpg");
    background-clip: text;
    -webkit-background-clip: text;
}
</style>

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

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

相关文章

centos7 下使用docker安装常见的软件:Redis

关于docker的基础知识&#xff0c;请见《别在说自己不知道docker了&#xff0c;全文通俗易懂的给你说明白docker的基础与底层原理》 在自己学习的过程中经常会需要动手安装一下常见的工具&#xff0c;本篇就手把手带你用docker安装一遍。 jdk安装 如果先要更换之前的jdk从第…

汽车级肖特基二极管DSS220-Q 200V 2A

DSS220-Q是什么二极管&#xff1f;贵司有生产吗&#xff1f; 肖特基二极管DSS220-Q符合汽车级AEC Q101标准吗&#xff1f; DSS220-Q贴片肖特基二极管参数是什么封装&#xff1f;正向电流和反向电压是多大&#xff1f; DSS220-Q肖特基二极管需要100KK&#xff0c;有现货吗&#…

LeetCode 48题: 旋转图像

题目 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]]…

LeetCode刷题笔记【24】:贪心算法专题-2(买卖股票的最佳时机II、跳跃游戏、跳跃游戏II)

文章目录 前置知识122.买卖股票的最佳时机II题目描述贪心-直观写法贪心-优化代码更简洁 55. 跳跃游戏题目描述贪心-借助ability数组贪心-只用int far记录最远距离 45.跳跃游戏II题目描述回溯算法贪心算法 总结 前置知识 参考前文 参考文章&#xff1a; LeetCode刷题笔记【23】…

Ansible-roles学习

目录 一.roles角色介绍二.示例一.安装httpd服务 一.roles角色介绍 roles能够根据层次型结构自动装载变量文件&#xff0c;tasks以及handlers登。要使用roles只需在playbook中使用include指令即可。roles就是通过分别将变量&#xff0c;文件&#xff0c;任务&#xff0c;模块以…

Python爬虫(十八)_多线程糗事百科案例

多线程糗事百科案例 案例要求参考上一个糗事百科单进程案例:https://cloud.tencent.com/developer/article/1021994 Queue(队列对象) Queue是python中的标准库&#xff0c;可以直接import Queue引用&#xff1b;队列时线程间最常用的交互数据的形式。 python下多线程的思考…

0015Java程序设计-springboot美食网站

摘 要目 录**绪论**1.1背景及意义1.2 国内外研究概况1.3 研究的内容 开发环境 摘 要 随着移动应用技术的发展&#xff0c;越来越多的用户借助于移动手机、电脑完成生活中的事务&#xff0c;许多的传统行业也更加重视与互联网的结合。 本论文主要介绍基于java的美食网站&#…

Ubuntu系统自动清理系统内存脚本和使用方法

在使用Ubuntu系统时会出现内存占用太多&#xff0c;系统卡顿现象&#xff0c;有一种shell脚本可以自动清理系统内存&#xff0c;使用方法如下&#xff1a; 1. 新建脚本文件 如 /home/hulk/tools/SysTools/memory-monitor.sh #!/bin/bash# while [[ true ]]; doCOMPILE_TIMEdat…

Yarn资源调度器

文章目录 一、Yarn资源调度器1、架构2、Yarn工作机制3、HDFS、YARN、MR关系4、作业提交之HDFS&MapReduce 二、Yarn调度器和调度算法1、先进先出调度器&#xff08;FIFO&#xff09;2、容量调度器&#xff08;Capacity Scheduler&#xff09;3、公平调度器&#xff08;Fair …

配电室智能运维方案

为提高配电房的智能运维水平&#xff0c;实现智能运维、多端监测、远程控制、用电分析和异常告警等功能&#xff0c;力安科技依托电易云-智慧电力物联网提供了配电室智能运维方案&#xff0c;协助用户监测配电房内的设备运行状态、实现故障实时报警及无人值守&#xff0c;消灭人…

机器学习笔记:node2vec(论文笔记:node2vec: Scalable Feature Learning for Networks)

2016 KDD 1 intro 利用graph上的节点相似性&#xff0c;对这些节点进行embedding 同质性&#xff1a;节点和其周围节点的embedding比较相似 蓝色节点和其周围的节点结构等价性 结构相近的点embedding相近 比如蓝色节点&#xff0c;都处于多个簇的连接处 2 随机游走 2.1 介绍…

vue+antd——table组件实现动态列+表头下拉选择功能——技能提升

Table 表格 展示行列数据。 何时使用 当有大量结构化的数据需要展现时&#xff1b; 当需要对数据进行排序、搜索、分页、自定义操作等复杂行为时。 最近在写vueantd的框架&#xff0c;遇到一个需求&#xff1a;就是要实现table表格的动态列&#xff0c;并且相应的表头要实现下拉…

Python实现SSA智能麻雀搜索算法优化XGBoost回归模型(XGBRegressor算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法&#xff0c;在2020年提出&a…

【34. 在排序数组中查找元素的第一个和最后一个位置】

目录 1.题目解析2.算法思路3.代码实现 1.题目解析 2.算法思路 3.代码实现 class Solution { public:vector<int> searchRange(vector<int>& nums, int target) {if(nums.size()0){return {-1,-1};}vector<int> ret;int left0,rightnums.size()-1;while(…

C++:类和对象(二)

本文主要介绍&#xff1a;构造函数、析构函数、拷贝构造函数、赋值运算符重载、const成员函数、取地址及const取地址操作符重载。 目录 一、类的六个默认成员函数 二、构造函数 1.概念 2.特性 三、析构函数 1.概念 2.特性 四、拷贝构造函数 1.概念 2.特征 五、赋值…

ORB-SLAM2算法15之回环检测线程Loop Closing

文章目录 0 引言1 概述2 回环主函数3 回环检测4 计算Sim3变换5 回环矫正 0 引言 ORB-SLAM2算法7详细了解了System主类和多线程、ORB-SLAM2学习笔记8详细了解了图像特征点提取和描述子的生成、ORB-SLAM2算法9详细了解了图像帧、ORB-SLAM2算法10详细了解了图像关键帧、ORB-SLAM2…

网络通信深入解析:探索TCP/IP模型

http协议访问web 你知道在我们的网页浏览器的地址当中输入url&#xff0c;未必是如何呈现的吗&#xff1f; web浏览器根据地址栏中指定的url&#xff0c;从web服务器获取文件资源&#xff08;resource&#xff09;等信息&#xff0c;从而显示出web页面。web使用HTTP&#xff08…

OSI七层模型简介

七层模型&#xff0c;亦称OSI&#xff08;Open System Interconnection&#xff09;。参考模型是国际标准化组织&#xff08;ISO&#xff09;制定的一个用于计算机或通信系统间互联的标准体系&#xff0c;一般称为OSI参考模型或七层模型 一、OSI参考模型 1、OSI的来源 OSI&am…

多媒体透明屏,在户外广告领域中,有哪些应用展示?

多媒体透明屏是一种新型的显示技术&#xff0c;它能够将图像和视频直接投射到透明的屏幕上&#xff0c;使得观众可以同时看到屏幕后面的实物。 这种技术在广告、展览、商场等场合有着广泛的应用前景。 多媒体透明屏的原理是利用透明显示技术&#xff0c;将图像和视频通过光学…

安防监控/视频汇聚/云存储/AI视频智能算法引擎系统:遛狗检测算法详解

根据最新修订发布的《中华人民共和国动物防疫法》规定&#xff1a;遛狗不栓绳&#xff0c;养狗不办证、未定期接种疫苗等行为都是违法行为。作为一个合格的“铲屎官"出门遛狗一定要牵好狗绳&#xff0c;保护他人和爱犬的安全。但就算法律明文规定&#xff0c;还是有很多人…