vue左右滑屏(vue中实现全屏以及对退出全屏的监听)
类别:编程学习 浏览量:741
时间:2021-10-03 01:21:52 vue左右滑屏
vue中实现全屏以及对退出全屏的监听目录
- 前言:
- 实现步骤:
- 完整源码:
- 更多资料:
vue中实现默认进来页面,某个li全屏,并监听退出全屏的次数,当退出全屏次数达到5的时候跳转到别的页面。
实现步骤:1、页面上在你想要的容器上加上id = ‘con_lf_top_li',再给他加个动态class名,加上提示和点击进入全屏按钮
<template> <el-card shadow="never" class="examining" v-loading.fullscreen.lock="loading" id="con_lf_top_li" :class="{'isScreen':!fullscreen}" > <p style="color:red;">*温馨提示:请在全屏下进行考试,退出全屏5次以后将禁止考试</p> <el-button v-if="fullscreen" @click="screen();screen()" style="position: absolute;top: 0px;right: 0;">全屏</el-button> ...其他内容
2、css部分,全屏后的部分需要单独加样式
.isScreen{ height:100vh!important; overflow-y: auto; }
3、js部分
data:
fullscreen:false,//是否全屏 goCount:0 //退出第几次
mounted初始化调用
mounted() { this.initScreen() }
methods定义方法:
//初始化全屏方法 initScreen(){ this.goCount = 0 this.screen() //打开全屏 window.addEventListener('keydown', function(event) { //禁掉F11的全屏的默认事件,不会禁止F11的退出全屏 const e = event || window.event if (e && e.keyCode === 122) { e.preventDefault() } }) document.addEventListener('fullscreenchange', v => { if(this.fullscreen == true){ this.fullscreen = false }else{ this.goCount++ // this.$message.info('当前是退出第'+this.goCount+'次') console.log('当前是退出第'+this.goCount+'次') this.fullscreen = true if(this.goCount == 5){ this.goBack() } } }) },
1、页面: <el-card id="con_lf_top_li" :class="{'isScreen':!fullscreen}" > <p style="color:red;">*温馨提示:请在全屏下进行考试,退出全屏5次以后将禁止考试</p> <el-button v-if="fullscreen" @click="screen();screen()" style="position: absolute;top: 0px;right: 0;">全屏</el-button> ... 2、data: fullscreen:false,//是否全屏 goCount:0 //退出第几次 3、mounted: this.initScreen() 4、methods: //初始化全屏方法 initScreen(){ this.goCount = 0 this.screen() //打开全屏 window.addEventListener('keydown', function(event) { //禁掉F11的全屏的默认事件,不会禁止F11的退出全屏 const e = event || window.event if (e && e.keyCode === 122) { e.preventDefault() } }) document.addEventListener('fullscreenchange', v => { if(this.fullscreen == true){ this.fullscreen = false }else{ this.goCount++ // 注意这里的事件都会触发两次 console.log('当前是退出第'+this.goCount+'次') this.fullscreen = true if(this.goCount == 5){ this.goBack() } } }) }, //全屏方法 screen(){ //设置后就是id==con_lf_top_li 的容器全屏 let element = document.getElementById('con_lf_top_li'); if (this.fullscreen) { if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.webkitCancelFullScreen) { document.webkitCancelFullScreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.msExitFullscreen) { document.msExitFullscreen(); } } else { if (element.requestFullscreen) { element.requestFullscreen(); } else if (element.webkitRequestFullScreen) { element.webkitRequestFullScreen(); } else if (element.mozRequestFullScreen) { element.mozRequestFullScreen(); } else if (element.msRequestFullscreen) { // IE11 element.msRequestFullscreen(); } } this.fullscreen = !this.fullscreen; }, //退出全屏方法 goBack(){ //111111111111111111111111111111111111111 this.$message.error('您已退出全屏5次,当前考试已经结束') this.$router.go(-1) },
https://blog.csdn.net/qq_41619796/article/details/104751814
https://blog.csdn.net/wangsiyisiyi/article/details/117086453
到此这篇关于vue中实现全屏以及对退出全屏的监听的文章就介绍到这了,更多相关vue中实现全屏以及对退出全屏的监听内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- vue动态路由实现权限控制(vue2/vue3路由权限管理的方法实例)
- vue怎么引入axios(如何用vue封装axios请求)
- vue中什么时候需要set属性(Vue.set和this.$set使用和区别)
- vue使用echarts教程(Vue使用echarts可视化组件的方法)
- vue 访问后台接口(vue轮询请求解决方案的完整实例)
- vue功能测试和生产环境切换(vue 单元测试的推荐插件和使用示例)
- vue 手机端tab切换页面不刷新(vue Tab切换以及缓存页面处理的几种方式)
- vue虚拟dom如何转换成真实dom的(vue中对虚拟dom的理解知识点总结)
- vue项目步骤(Vue项目中常用的实用技巧汇总)
- vue导出动态的excel功能(vue中如何下载excel流文件及设置下载文件名)
- vue图片组件使用方法(Vue图片裁剪组件实例代码)
- vuejs过滤器使用教程(vue3删除过滤器的原因)
- vue.js开发网站的关键技术(Vue.js项目前端多语言方案的思路与实践)
- vueweb端聊天(Vue实现聊天界面)
- vue3 props用法(vue3组合API中setup、 ref、reactive的使用大全)
- vue计算两个日期差几分钟(vue实现同时设置多个倒计时)
- 这个全椒人被通报表彰,看看你认识吗(这个全椒人被通报表彰)
- 全椒人,38年集体回忆 1980-2018 ,看完不要哭(全椒人38年集体回忆)
- 董元奔吟咏历代文人 1012新旧均可 全椒人张璪 1022 -1093(董元奔吟咏历代文人)
- 泪目 这位 刷屏 的英雄,是全椒人的骄傲(泪目这位刷屏)
- 人从众 火炎焱 全椒再现 正月十六走太平 的魅力(人从众火炎焱全椒再现)
- 官宣 全椒籍明星许海峰 奚秀兰 方芳 王璐瑶携手回家 走太平(全椒籍明星许海峰)
热门推荐
- 如何执行docker镜像(Docker镜像管理常用操作代码示例)
- mysql数据库主键选择的详解(图文详解MySQL中的主键与事务)
- OpenLDAP docker使用教程(Docker搭建OpenLDAP+phpLDAPadmin统一用户认证的方法)
- netcore连什么数据库好(.Net Core导入千万级数据至Mysql的步骤)
- thinkphp静态怎么设置(浅谈thinkphp的nginx配置,以及重写隐藏index.php入口文件方法)
- linuxsvn服务怎么打开(CentOS SVN服务器如何管理多个项目)
- mysql各种备份方式(MySQL 逻辑备份与恢复测试的相关总结)
- html5常用标记(HTML5超文本标记语言的实现方法)
- phpmyadmin 安装教程(新安装的XAMPP访问phpmyadmin出错的解决方法)
- vue界面自动生成(Vue中实现3D标签云的详细代码)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9