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 相关文章推荐
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
Jul 06 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
Jun 16 Javascript
JS根据年月获得当月天数的实现代码
Jul 03 Javascript
javascript面向对象程序设计(一)
Jan 29 Javascript
JavaScript数据类型转换的注意事项
Jul 31 Javascript
jQuery实现点击行选中或取消CheckBox的方法
Aug 01 Javascript
浅谈EasyUI常用控件的禁用方法
Nov 09 Javascript
vue脚手架vue-cli的学习使用教程
Jun 06 Javascript
js canvas实现红包照片效果
Aug 21 Javascript
JavaScript 性能提升之路(推荐)
Apr 10 Javascript
浅谈Three.js截图并下载的大坑
Nov 01 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
Dec 14 Vue.js
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分页时出现的Fatal error的解决方法
2011/04/18 PHP
php学习之简单计算器实现代码
2011/06/09 PHP
PHP缓存机制Output Control详解
2014/07/14 PHP
php文件上传类的分享
2017/07/06 PHP
laravel 判断查询数据库返回值的例子
2019/10/11 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
javascript复制对象使用说明
2011/06/28 Javascript
仿中关村在线首页弹出式广告插件(jQuery版)
2012/05/03 Javascript
jquery中attr和prop的区别分析
2015/03/16 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
2016/08/20 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
react.js 获取真实的DOM节点实例(必看)
2017/04/17 Javascript
基于rem的移动端响应式适配方案(详解)
2017/07/07 Javascript
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
Nodejs实现的操作MongoDB数据库功能完整示例
2019/02/02 NodeJs
nodejs通过钉钉群机器人推送消息的实现代码
2019/05/05 NodeJs
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
Python中的自定义函数学习笔记
2014/09/23 Python
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
python使用mysql的两种使用方式
2018/03/07 Python
python人民币小写转大写辅助工具
2018/06/20 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
django中SMTP发送邮件配置详解
2019/07/19 Python
python怎么调用自己的函数
2020/07/01 Python
逼真的HTML5树叶飘落动画
2016/03/01 HTML / CSS
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
计算机开发个人求职信范文
2013/09/26 职场文书
运动会广播稿100字
2014/01/11 职场文书
违反校纪校规检讨书
2014/02/15 职场文书
信仰纪录片观后感
2015/06/08 职场文书
如何利用golang运用mysql数据库
2022/03/13 Golang