vue操作dom元素的3种方法示例


Posted in Javascript onSeptember 20, 2020

1.原生js操作dom

const dom = getElementById(‘box')

2.vue官方方法:ref

vue中的ref是把当前dom元素 “ 抽离出来 ” ,只要通过 this.$refs就可以获取到

< div class=“set” ref=“up”>

.set是我们要操作的dom对象,它的ref是 up

@click=“Alert”

给父元素一个点击事件,

接下来我们来编写这个方法

methods:{
  this.$refs.addAlert.style.display = “block”;
}

CSS还要吗?

那我把代码全粘过来你们自己看吧

<template>
	<div id="app">
		<div class="index-box">
			<!--新增按钮-->
			<input type="button" id="DbManagement-addBtn" @click="showAddAlert" value="新增">
			<!--新增数据源弹框-->
			<div class="addDbSource-alert" ref="addAlert">
				<div class="addAlert-top">
					<!--添加数据源-->
					<input type="button" value="×" class="addAlert-close" @click="closeAddAlert">
				</div>
				<div class="addAlert-content">
					<div style="height: 1000px;"></div>
				</div>
			</div>
		</div>
	</div>
</template>
<script>
	export default {
		name: "Index",
		data(){
			return {
			}
		},
		methods:{
			// 点击新增按钮,弹出新增数据源的弹框
			showAddAlert(){
				this.$refs.addAlert.style.display = "block";
			},
			// 点击 × 关闭新增数据源的弹框
			closeAddAlert(){
				this.$refs.addAlert.style.display = "none";
			},
		},
		created(){
		}
	}
</script>
<style scoped>
	#app{
		width:100%;
		height:100%;
		overflow-y:auto;
	}
 	/* 容器 */
 .index-box{
  width: 100%;
  height: 100%;
  background: #212224;
  display: flex;
 }
 /* 添加数据源按钮 */
 #DbManagement-addBtn {
  width: 100px;
  height: 45px;
  border: none;
  border-radius: 10px;
  background: rgba(29, 211, 211, 1);
  box-shadow: 2px 2px 1px #014378;
  margin-left: 20px;
  margin-top: 17px;
  cursor: pointer;
  font-size: 20px;
 }
 /*新增数据源弹框*/
 .addDbSource-alert{
  position: fixed;
		top:0;left:0;right:0;bottom:0;
		margin:auto;
  width: 4rem;height: 4rem;
  background: #2b2c2f;
  display: none;
 }
 /*新增弹框头部*/
 .addAlert-top{
  width: 100%;
  height: 50px;
  background: #1dd3d3;
  line-height: 50px;
  font-size: 20px;
  box-sizing: border-box;
  padding-left: 20px;
 }
 /*新增弹框关闭*/
 .addAlert-close{
  background: #1dd3d3;
  border: none;
  font-size: 30px;
  cursor: pointer;
  float: right;
  margin-right: 20px;
  margin-top: 5px;
 }
 /*新增弹框内容部分*/
 .addAlert-content{
  width: 100%;
  box-sizing: border-box;
  padding: 0px 30px 20px;
 }
 /* 滚动条效果 */
 /* 设置滚动条的样式 */
 .addAlert-content::-webkit-scrollbar {
  width: 5px;
 }
 /* 滚动槽 */
 .addAlert-content::-webkit-scrollbar-track {
  /* -webkit-box-shadow: inset 0 0 6px rgba(40, 42, 44, 1);
  border-radius: 10px; */
 }
 /* 滚动条滑块 */
 .addAlert-content::-webkit-scrollbar-thumb {
  border-radius: 10px;
  background: rgba(29, 211, 211, 1);
  /* -webkit-box-shadow: inset 0 0 6px rgba(29, 211, 211, 1); */
 }
 .addAlert-content::-webkit-scrollbar-thumb:window-inactive {
  background: rgba(29, 211, 211, 1);
 }
</style>

CSS比正文和脚本加起来都多,如果你能看懂CSS,没理由学不会 ref

还有第三种方法,jQuery 操作dom,看完以后直呼不敢用

3.jQuery操作dom

  只要拿jQuery的选择器,选中相应的dom进行操作就可以了,但是大家都知道jQuery获取元素是查找页面所有,相当于“循环”所有元素直至找到需要的dom,但是vue是单页面的,jQuery获取dom并不只是获取vue当前页面,而是从根路由开始查找所有,当其他页面出现相同的元素,也会被获取到,而且jQuery操作的dom,如果是根据动态获取数据渲染的,那么写在mounted里的操作方法将会失效,必须放到updated里,这样会导致有些操作被执行多遍,所以还是不建议在vue中使用jQuery。

总结

到此这篇关于vue操作dom元素的3种方法示例的文章就介绍到这了,更多相关vue操作dom元素方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
js模拟点击事件实现代码
Nov 06 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
Aug 01 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
Sep 01 Javascript
JavaScript中双叹号!!作用示例介绍
Sep 21 Javascript
JS动态修改iframe高度和宽度的方法
Apr 01 Javascript
Javascript编程中几种继承方式比较分析
Nov 28 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
Jun 20 Javascript
Angular2 (RC5) 路由与导航详解
Sep 21 Javascript
详解使用nvm管理多版本node的方法
Aug 30 Javascript
js实现数组内数据的上移和下移的实例
Nov 14 Javascript
layui 上传图片 返回图片地址的方法
Sep 26 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
Apr 28 Javascript
npm ci命令的基本使用方法
Sep 20 #Javascript
js面试题之异步问题的深入理解
Sep 20 #Javascript
js实现简单的点名器随机色实例代码
Sep 20 #Javascript
前端vue+elementUI如何实现记住密码功能
Sep 20 #Javascript
Vue+element+cookie记住密码功能的简单实现方法
Sep 20 #Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
Sep 18 #Javascript
vue-cli3 热更新配置操作
Sep 18 #Javascript
You might like
PHP生成带有雪花背景的验证码
2008/09/28 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
JQUERY操作JSON实例代码
2010/02/09 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
2011/11/02 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
js实现简易的单数字随机抽奖(0-9)
2020/03/19 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
ionic3 懒加载
2017/08/16 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
Js图片点击切换轮播实现代码
2020/07/27 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python中fnmatch模块的使用详情
2018/11/30 Python
Python3实现的简单工资管理系统示例
2019/03/12 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
pytorch 模型可视化的例子
2019/08/17 Python
Pytorch提取模型特征向量保存至csv的例子
2020/01/03 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
Ajax和javascript的区别
2013/07/20 面试题
学校安全教育制度
2014/01/31 职场文书
自动化毕业生专业自荐书范文
2014/02/04 职场文书
小学生作文评语大全
2014/04/21 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
护士长2015年终工作总结
2015/04/24 职场文书
2015安全保卫工作总结
2015/04/25 职场文书
大学生青年志愿者活动总结
2015/05/06 职场文书
2016年度员工工作表现评语
2015/12/02 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书
浅谈MySQL函数
2021/10/05 MySQL