vue——自定义指令,实现拖拽改变元素的宽度——技能提升

news2024/11/22 17:56:22

最近在看企业微信时,发现tapd的需求部分,分为左右两部分,左侧可以实现拖拽改变宽度。
在这里插入图片描述
感觉这样的实现效果比较好,再联想到之前写绩效结构时,也是同样的左右布局。
在这里插入图片描述
如果能实现同样的效果,则算是很好一种体验。

上面的效果可以通过vue指令的形式来实现:

直接上代码:

1.在utils里面添加drag.js

/**
*拖拽改变宽度的指令
*/
export default {
	install(Vue){
		Vue.mixin({
			directives:{
				drag:{
					inserted:function(el){
						const dragDom = el;
						dragDom.style.cursor="e-resize";
						dragDom.onmousedown = e=>{
							//鼠标按下,计算当前元素距离可视区的距离
							const disX = e.clientX;
							const w = dragDom.clientWidth;
							const minW = 240;
							const maxW = 600;
							var nw;
							document.onmousemove = function(e){
								//通过事件委托,计算移动的距离
								const l = e.clientX - disX;
								//改变当前元素宽度,不可超过最小最大值
								nw = w + l;
								nw = nw < minW?minW:nw;
								nw = nw > maxW?maxW:nw;
								dragDom.style.width = `{nw}px`;
							}
							document.onmouseup = function(e){
								document.onmousemove = null;
								document.onmouseup = null;
							}
						}
					}
				}
			}
		})
	}
}

2.在main.js里面引入并注册

import drag from './utils/drag.js'
Vue.use(drag);

3.在页面上使用v-drag

<template>
	<div class="wrap">
		<div class="left" v-drag></div>
		<div class="right"></div>
	</div>
</template>

完成!!!多多积累,多多收获!!!

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

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

相关文章

【方法】公众号上传的视频不能横屏播放,如何解决?

目录 说明 解决步骤 步骤一&#xff1a;开启微信横屏模式 步骤二&#xff1a;打开手机自动旋转功能 说明 直接用手机打开公众号文章上内嵌的视频&#xff0c;发现只能横屏播放&#xff0c;无法全屏查看。 这个时候学习&#xff0c;尤其是看视频课程的时候无法看清楚全图。…

华为发布大模型时代AI存储新品

7月14日&#xff0c;华为发布大模型时代AI存储新品&#xff0c;为基础模型训练、行业模型训练&#xff0c;细分场景模型训练推理提供存储最优解&#xff0c;释放AI新动能。 企业在开发及实施大模型应用过程中&#xff0c;面临四大挑战&#xff1a; 首先&#xff0c;数据准备时…

数据结构:第五章 树

文章目录 一、树的基本概念1.1树的定义1.2树的基本用语1.2.1结点之间的关系描述1.2.2结点、树的属性描述1.2.3有序树、无序树1.2.4森林1.2.5小结 1.3树的性质 二、二叉树的概念2.1二叉树的定义和基本术语2.2二叉树的性质2.2.1二叉树常考性质2.2.2完全二叉树常考性质 2.3二叉树的…

使用chatgpt过funcaptcha验证码3个人学习记录

funcaptcha 验证码3 通过记录 往期验证码&#xff1a;http://t.csdn.cn/ulgXY funcaptcha1 往期验证码&#xff1a;http://t.csdn.cn/3xMnZ funcaptcha2 funcaptcha 那个公司开发的简要介绍&#xff1a; Funcaptcha是由hCaptcha公司开发的一种人机验证系统。hCaptcha是一家位…

快速排序的非递归实现、归并排序的递归和非递归实现、基数排序、排序算法的时间复杂度

文章目录 快速排序的非递归三数取中法选取key快速排序三路划分 归并排序的递归归并排序的非递归计数排序稳定性排序算法的时间复杂度 快速排序的非递归 我们使用一个栈来模拟函数的递归过程&#xff0c;这里就是在利用栈分区间。把一个区间分为 [left,keyi-1][key][keyi1,right…

机器学习(13)--支持向量机

目录 一、支持向量机概述 二、Sklearn中的SVM概述 三、线性SVM损失函数 四、sklearn中进行可视化 1、导入模块 2、实例化数据集&#xff0c;可视化 3、网格点制作 4、建立模型并绘制决策边界和超平面 5、常用接口 6、如果数据是环形呢&#xff1f; 五、核函数 1、…

emacs下相对行号的设置

全局设置 全局开启行号显示&#xff1a;global-display-line-numbers-mode t 并设置 display-line-numbers-type的样式: relative 相对 配置代码如下: (use-package emacs:ensure t:config (setq display-line-numbers-type relative) (global-display-line-numbers-mode t)…

校园跑腿小程序如何运营赚钱,方法其实很简单

校园跑腿小程序是一种以满足大学生的校园内外需求为主要目标的创业方式。下面将详细介绍校园跑腿小程序的运营方式&#xff0c;包括市场调研、产品设计、用户获取与留存、服务流程管理等方面。 市场调研&#xff1a; 在开始校园跑腿小程序的运营之前&#xff0c;进行充分的市…

2023年经典【自动化面试题】附答案

一、请描述一下自动化测试流程&#xff1f; 自动化测试流程一般可以分为以下七步&#xff1a; 编写自动化测试计划&#xff1b; 设计自动化测试用例&#xff1b; 编写自动化测试框架和脚本&#xff1b; 调试并维护脚本&#xff1b; 无人值守测试&#xff1b; 后期脚本维…

【C++从0到王者】第九站:String基本介绍及使用

文章目录 一、String的基本使用二、String构造相关的成员函数1.String构造函数2.String析构函数3.operator运算符重载4.String增删查改之增5. operator[]运算符重载 三、String迭代器1.迭代器介绍2.string中迭代器的作用3.迭代器跟容器结合4.反向迭代器5.const修饰的迭代器 四、…

华夏ERP在虚拟机Ubuntu上的安装(测试实例)

1.虚拟机软件VirtualBOX 7.0 2.Ubuntu 版本 3.宝塔面板安装 百度搜索宝塔面板&#xff0c;按官网提示进行安装。下面截图是官网示例。 if [ -f /usr/bin/curl ];then curl -sSO download.cnnbt.net/install_panel.sh;else wget -O install_panel.sh download.cnnbt.net/install…

python接口自动化(三十七)-封装与调用--读取excel 数据(详解)

简介 在进行软件接口测试或设计自动化测试框架时&#xff0c;一个不比可避免的过程就是: 参数化&#xff0c;在利用python进行自动化测试开发时&#xff0c;通常会使用excel来做数据管理&#xff0c;利用xlrd、xlwt开源包来读写excel。例如&#xff1a;当我们登录的账号有多个的…

报错400是什么怎么解决呢?

首先要了解400错误是什么错误&#xff1a; HTTP状态码400表示"错误请求"。它是一种客户端错误状态码&#xff0c;表示服务器无法理解请求的语法或参数。当服务器收到一个无效的请求时&#xff0c;通常会返回400错误码。这可能是由于请求中缺少必要的参数、参数格式错…

亚马逊买家号怎么留评

要在亚马逊上留下产品评价&#xff0c;需要买家号有留评权限才行。以下是留评论的步骤&#xff1a; 1、登录亚马逊账号&#xff1a;使用您的买家账号和密码登录到亚马逊的网站或移动应用程序。 2、找到购买的产品&#xff1a;在亚马逊的网站或应用程序中&#xff0c;找到您购…

el-ment ui 表格组件table实现列的动态插入功能

在实际需求中我们经常遇到各种奇葩的需求&#xff0c;不足为奇。每个项目的需求各不相同&#xff0c;实现功能的思路大致是一样的。 本文来具体介绍怎么实现table表格动态插入几列。 首先实现思路有2种&#xff0c; 1. 插入的位置如果是已知的&#xff0c;我知道在哪个标题的…

WEB学习笔记3

输入输出语句 外部js&#xff1a;这种写法有一个不好的地方就是&#xff0c;两个不同的开发人员在使用不同的js写function的时候有可能造成重复&#xff0c;导致程序紊乱。在这推荐一种用json格式方式书写js函数的方法 变量&#xff1a; 变量命名规范&#xff1a; let和var的区…

DolphinScheduler使用问题记录

1.资源中心 功能板块 出现 storage not startup #问题原因 提示&#xff1a;“storage not startup”&#xff0c;顾名思义&#xff1a;未启用存储 #解决方式 1. 修改两个 common.properties 文件&#xff1a; api-server/conf/common.properties worker-server/conf/common.p…

分布式运用——存储系统Ceph

分布式运用——存储系统Ceph 一、Ceph 介绍1.Ceph 简介2、存储基础2.1 单机存储设备2.2 单机存储的问题2.3 商业存储解决方案2.4 分布式存储&#xff08;软件定义的存储 SDS&#xff09;2.5 分布式存储的类型 3.Ceph 优势3.1 高扩展性3.2 高可靠性3.3 高性能3.4 功能强大 4.Cep…

自动化测试——selenium(完结篇)

自动化测试——selenium&#xff08;完结篇) 文章目录 自动化测试——selenium&#xff08;完结篇)一、元素操作方法二、浏览器操作方法三、获取元素信息操作四、鼠标操作 &#xff08;需要实例化鼠标对象&#xff09;4.1 鼠标右键及双击4.2 鼠标拖拽4.3 鼠标悬停 【重点】 五、…

【JavaEE面试题(九)线程安全问题的原因和解决方案】

多线程-初阶 4. 多线程带来的的风险-线程安全 (重点)4.1 观察线程不安全原因是 1.load 2. add 3. save 4.2 线程安全的概念4.3 线程不安全的原因最根本的是 操作系统对线程的调度是随机的★1. 修改共享数据&#xff08;多个线程修改同一个变量&#xff09;★2. 操作不是原子性★…