element ui tabs-tab页放到右边、侧边

这篇具有很好参考价值的文章主要介绍了element ui tabs-tab页放到右边、侧边。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 右边有哪些tab页和有哪些数据是后台反的数据、并且黄色的部分可以拖动改变两边的大小
    element ui tabs-tab页放到右边、侧边
  2. 现在想把右侧的tab页靠右边、官网提供的靠右是这样的
    element ui tabs-tab页放到右边、侧边
  3. 现在想实现成这样 还有上下调整的功能(注:下方代码中无上下调整功能的按钮,右侧的tab页跟鼠标滚轮联动了,代码中有两处地方让右侧的滚轮跟滚动条联动的地方)
    element ui tabs-tab页放到右边、侧边
<template>
	<div id="div">
		<!-- 左边元素 -->
		<div id="div1">
			字母和数字键的键码值(keyCode)
			按键 键码 按键 键码 按键 键码 按键 键码
			A 65 J 74 S 83 1 49
			B 66 K 75 T 84 2 50
			C 67 L 76 U 85 3 51
			D 68 M 77 V 86 4 52
			E 69 N 78 W 87 5 53
			F 70 O 79 X 88 6 54
			G 71 P 80 Y 89 7 55
			H 72 Q 81 Z 90 8 56
			I 73 R 82 0 48 9 57
		</div>
		<!-- 中间黄色拖动元素 -->
		<div id="div2" @mousedown="mousedown"></div>
		<!-- 右边元素 -->
		<div id="div3">
			<!-- tab页 -->
			<el-tabs class="tabRight" v-model="activeName" type="card" @tab-click="handleClick">
				<el-tab-pane v-for="(value,key,index) in tabData" :label="key" :name="key">
					{{value.key}}:{{value.value}}
				</el-tab-pane>
			</el-tabs>
		</div>
	</div>
</template>

<script>
	export default {
		data() {
			return {
				activeName: '',
				tabData: {},
			};
		},
		watch:{
			tabData:function(newVal){
				if(newVal != null && newVal != ""){
					setTimeout(()=>{
						var tabs = $(".tabRight .el-tabs__item")
						for (var i = 0; i < tabs.length; i++) {
							var tab = tabs[i]
							var text = tab.textContent
							var htmlStr = ""
							for(var char of text){
								htmlStr = htmlStr+"<div style='float:left;transform:rotate(-90deg);padding:0px 5px;'>"+char+"</div>";
							}
							tab.textContent = ""
							tab.innerHTML = htmlStr
							tab.style.width = text.length * 25 +'px'
							tab.style.padding = '0px'
							tab.style.margin = '0px'
						}
						
						// 右侧tab页滚动条绑定滚轮不用可以注释掉下面方法(下面css样式中也有一个地方)
						let tabContainer = document.querySelector(".tabRight .el-tabs__nav-scroll")
						tabContainer.addEventListener("wheel",(e) =>{
							e.preventDefault();
							tabContainer.scrollLeft += e.deltaY
						})
						
					},10)
				}
			},
		},
		mounted() {
			// 获取后台tab页数据可从后台查询
			this.getTabList();
		},
		methods: {
			getTabList() {
				// 获取后台tab页数据可从后台查询
				this.tabData = {
					"用户管理": {
						"key": "用户管理",
						"value": "用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理用户管理"
					},
					"配置管理": {
						"key": "配置管理",
						"value": "配置管理"
					},
					"角色管理": {
						"key": "角色管理",
						"value": "角色管理"
					},
					"定时任务补偿": {
						"key": "定时任务补偿",
						"value": "定时任务补偿"
					},
					"定时任务补偿1": {
						"key": "定时任务补偿",
						"value": "定时任务补偿"
					},
					"定时任务补偿2": {
						"key": "定时任务补偿",
						"value": "定时任务补偿"
					},
					"定时任务补偿3": {
						"key": "定时任务补偿",
						"value": "定时任务补偿"
					},
					"定时任务补偿4": {
						"key": "定时任务补偿",
						"value": "定时任务补偿"
					},
				}
				// 获取到数据后默认选择第一个
				for (var tab in this.tabData) {
					this.activeName = tab;
					break;
				}
			},
			handleClick(tab, event) {
				console.log(tab, event);
			},
			// 中间拖动黄色的调整两边大小
			mousedown(e) {
				// 父级框的宽度
				let divWidth = document.getElementById("div").clientWidth;
				//添加鼠标移动事件
				document.onmousemove = function(e) {
					// 防止链接打开 URL
					e.preventDefault();
					// e.clientX是鼠标指针相对于浏览器页面(或客户区)的水平坐标
					// 可以理解为鼠标距离屏幕左侧的距离
					// 当鼠标距离左面大于300和鼠标位置小于父级总长度-220
					//就是控制左面和右边两个的最小宽度
					if (e.clientX > 300 && e.clientX < (divWidth - 220)) {
						//设置左面的大小
						document.getElementById("div1").style.width = (e.clientX + "px");
						//设置右边的大小
						document.getElementById("div3").style.width = ((divWidth - e.clientX - 10) + "px");
					}
				}
				document.onmouseup = function(e) {
					document.onmousemove = null;
					document.onmouseup = null;
				}
			}
		}
	}
</script>
<!-- scoped="scoped" -->
<style>
	/* tab页内容右边边距 */
	.tabRight {
		padding-right: 7vh;
	}
	/* tab页内容右边边距 */
	.tabRight .tabSpan {
		margin: 0px;
		transform: rotate(-90deg);
	}
	/* tab页内容高度 */
	.tabRight>.el-tabs__content {
		height: 63vh;
		overflow: auto;
	}
	/* 将横着的tab页头部旋转到右边 */
	.tabRight>.el-tabs__header.is-top {
		transform: rotate(90deg);
		/* 旋转后宽就是tab页头部的高度 */
		width: 63vh;
		position: absolute;
		/* 页面距离屏幕右边距离 根据width调整位置 */
		right: -27vh;
		/* 页面距离屏幕上边距离 根据width调整位置 */
		top: 30vh;
		z-index: 2;
	}
	
	/* 下面的是让右侧的tab页跟鼠标滚动关联 不要可以去掉 */
	/* 右侧tab页显示滚动条 隐藏上下箭头 */
	.tabRight .el-tabs__nav-scroll{
		overflow: auto;
	}
	.tabRight .el-tabs__nav-prev{
		display: none !important;
	}
	.tabRight .el-tabs__nav-next{
		display: none !important;
	}
	/* 右侧不需要滚动条的 需要上下箭头的可以把中间的这一段去掉 */
	
	#div {
		height: 600px;
		background-color: #55aaff;
	}
	#div>div {
		float: left;
	}
	#div1 {
		height: 500px;
		width: 80%;
		background-color: #00ff00;
	}
	#div2 {
		height: 500px;
		width: 10px;
		background-color: #ffff00;
		cursor: w-resize;
	}
	#div3 {
		height: 500px;
		width: calc(20% - 10px);
		background-color: #aa00ff;
	}
</style>

文章来源地址https://www.toymoban.com/news/detail-409936.html

到了这里,关于element ui tabs-tab页放到右边、侧边的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element UI el-tabs组件使用

    使用 Elemenet UI 框架中的 el-tabs 组件 平时在做项目时,tab切换效果几乎是必不可少的,下来整理一个最近做的一个小功能:el-tabs    说明: v-model:当前选中项 :tab-position:tab栏显示方向 @tab-click:切换tab栏的事件 JS:

    2024年02月11日
    浏览(33)
  • 【Element】实现基于 Element UI el-tabs 的左右滑动动画

    在构建现代 web 应用时,为用户提供平滑的动画效果是提升用户体验的关键。本篇博客将详细介绍如何在使用 Vue 以及 Element UI 时,实现一个具有左右滑动效果的 tab 切换动画。 首先,我们需要创建一个基础的 el-tabs 组件,用于展示不同的内容区域。 我们希望了解用户是向左

    2024年03月14日
    浏览(34)
  • 【实操】vue+element UI tab页多表单合并校验提交

    一个页面中tab栏切换多个form表单组件,只有一个保存按钮。需要把各组件下的表达数据合并校验提交。 父组件通过两次调用$refs获取子组件的dom元素以及组件内部form的dom元素。 通过循环表单项获取validate值获取校验结果,通过Promise.all合并表单。 子组件内部getData方法返回表

    2024年02月11日
    浏览(31)
  • element ui中el-tabs 标签页使用技巧

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 当我们使用el-tabs不要按照固化的思路去写每一页的具体内容,可以通过放在el-tabs外部,相同内容,来让代码更简洁 提示:以下是本篇文章代码,下面案例可供参考 提示:这里简单的介绍了一个el-tabs的使用

    2024年02月16日
    浏览(36)
  • Element ui tabs组件左右箭头切换 (第一项为固定项)

    之前发布过一篇关于切换的 但是有点瑕疵 这次补充一下 data里没啥可看的 就是要渲染的数据定义 在生命周期里刚开始的时候判断了一下 看是否添加固定项 因为我这个是组件 这个是判断条数低于几条的时候不展示左右箭头 有需求的话看是开局就添加还是监测到数据了在触发

    2024年02月01日
    浏览(36)
  • 改变element-ui中el-tabs组件的样式

    2024年01月24日
    浏览(37)
  • Element-ui中el-tabs的下划线样式微调

    1.页面加载周期结束之后调用方法          2.写这个方法 3.el-tabs上绑定ref就可以了          4.结果:下划线就可以向左边偏移一点了,看起来更好看  

    2024年02月11日
    浏览(27)
  • 解决element ui中el-tabs标签点击切换闪屏问题

    现象:点击切换 element ui中el-tabs时候,table会出现闪一下的状况; 初始element ui中el-tabs组件代码如下: 使用v-if=\\\"activeName===\\\'first\\\'\\\" 解决闪屏   改造后代码如下:

    2024年02月07日
    浏览(36)
  • 【element-ui 中 el-tabs+el-menu 实现点击菜单 新增导航tab页 并实现关闭其他、当前、所有的功能】

    element-ui 【el-tabs+el-menu 实现点击菜单 新增导航tab页 并实现关闭其他、当前、所有的功能】 文章分3个部分 el-tabs 以及右击菜单代码 vuex 代码及其方法实现 router路由信息常规写法el-menu写法常规(自行去掉修饰部分) el-tabs 以及右击菜单代码

    2024年02月11日
    浏览(41)
  • Element UI之el-tabs的样式修改字体颜色、下划线、选中/未选中

    目录 默认样式 修改默认字体颜色: 修改鼠标悬浮/选中字体颜色: 去掉长分割线并修改下划线颜色 完整代码 默认样式 注意事项:一定要在 style scoped不然修改的样式不会覆盖生效 修改默认字体颜色: 修改鼠标悬浮/选中字体颜色: 去掉长分割线并修改下划线颜色 完整代码

    2024年02月04日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包