vue环境如何实现div focus blur焦点事件
短信预约 -IT技能 免费直播动态提醒
vue div focus blur焦点事件
onfocus
获取焦点事件与onblur失去焦点事件本身是input类用的input
类如果是点击后才加载的话需要做个延时器,否则会报错
setTimeout(()=>{
this.$refs.aside.focus()
},100)
div想支持则需要加上tabindex="0"属性//0或者以上
但是在vue环境中,加上这个也不支持,而移动端无法使用鼠标事件
<div tabindex="0" hidefocus="true" ref="aside" class="aside" @click="dialaing()" @blur='()=>{dialaingIsShow =false}'>
<div v-show="dialaingIsShow" class="dialaing">dsadasd</div>
</div>
dialaing(){
this.$refs.aside.focus()
this.dialaingIsShow = true
},
就可以了
vue div 获得焦点和失去焦点
<div tabindex="0" @blur="aside1_hide()" ref="aside1" class="aside" style="width: 200px; overflow: scroll;">
<!-- background-color="#23303E" transparent -->
<el-menu background-color="#23303E" text-color="#fff" active-text-color="#fff">
...
</el-menu>
</div>
left_click: function() {
if (!this.left_show) {
this.$refs.aside1.style.left = "0"
this.$refs.aside1.focus() //获得焦点
this.left_show = true
} else {
this.aside1_hide()
}
},
aside1_hide:function () {
this.$refs.aside1.style.left = "-200px"
this.left_show = false
},
@media screen and (min-width: 1200px) {
.aside {
position: static;
width: 200px;
height: 100vh;
margin: 0;
padding: 0;
background-color: #23303E;
z-index: 100;
transition: left 500ms ease;
color: #fff;
}
}
@media screen and (max-width: 1200px) {
.aside {
position: fixed;
top: 0;
left: -200px;
width: 200px;
height: 100vh;
margin: 0;
padding: 0;
background-color: #23303E;
z-index: 100;
transition: left 500ms ease;
color: #fff;
}
}
.aside::-webkit-scrollbar {
display: none;
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341