这篇“vue环境怎么实现div focus blur焦点事件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“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 },
就可以了
<div tabindex="0" @blur="aside1_hide()" ref="aside1" class="aside" > <!-- 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; /*padding: 36px;*/ color: #fff; } } /*可以滚动,但隐藏滚动条*/ .aside::-webkit-scrollbar { display: none; }
以上就是关于“vue环境怎么实现div focus blur焦点事件”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。