vue3前端實(shí)現(xiàn)全屏顯示及元素垂直填滿頁面效果
1、 toggleFullscreen方法實(shí)現(xiàn)選定元素全屏展示
2、使用flex屬性+ flex-direction 實(shí)現(xiàn)垂直布局填滿整個(gè)頁面
<template>
<div id="aaa" class="container">
<div class="header">
<el-button @click="toggleFullscreen">全屏</el-button>
</div>
<div class="content">
<div style="display: flex;height: 100%">
<el-table :data="countData" border style="width: 30%" height="88%">
<el-table-column label="線體" prop="prolineCode" align="center" min-width="120px" />
<el-table-column label="點(diǎn)檢異常次數(shù)" prop="count" align="center" min-width="120px" />
</el-table>
<div id="bbb" style="width: 70%; height: 100%"></div>
</div>
</div>
</div>
</template>
<script>
import { ref, onMounted, onUnmounted } from 'vue'
import * as echarts from 'echarts'
export default {
name: 'App',
setup() {
const countData = ref([])
onMounted(() => {
initChart()
// initChart1()
})
onUnmounted(() => {
})
const initChart = () => {
var chartDom = document.getElementById('bbb')
let myChart = echarts.getInstanceByDom(chartDom);
if (myChart) {
myChart.dispose();
}
myChart = echarts.init(chartDom);
var option = {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [
{
data: [820, 932, 901, 934, 1290, 1330, 1320],
type: 'line',
smooth: true
}
]
}
option && myChart.setOption(option)
window.addEventListener('resize', function () {
myChart.resize()
})
}
const initChart1 = () => {
var chartDom = document.getElementById('ccc')
let myChart = echarts.getInstanceByDom(chartDom);
if (myChart) {
myChart.dispose();
}
myChart = echarts.init(chartDom);
var option = {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [
{
data: [820, 932, 901, 934, 1290, 1330, 1320],
type: 'line',
smooth: true
}
]
}
option && myChart.setOption(option)
window.addEventListener('resize', function () {
myChart.resize()
})
}
const toggleFullscreen = () => {
const element = document.getElementById('aaa')
if (element) {
if (document.fullscreenElement) {
document.exitFullscreen();
} else {
element.requestFullscreen()
.catch(err => {
console.log('無法進(jìn)入全屏模式:', err)
})
}
}
}
return {
countData,
toggleFullscreen
}
}
}
</script>
<style>
body {
margin: 0;
}
/* 使用flex布局 */
.container {
display: flex;
flex-direction: column;
height: 100vh;
/* 確保容器元素的高度與視口高度一致 */
}
/* 設(shè)置上部元素 */
.header {
border: 1px solid green;
height: 100px;
/* 上部元素的高度 */
background-color: #ccc;
/* 上部元素的樣式 */
}
/* 設(shè)置下部元素 */
.content {
border: 1px solid yellow;
flex-grow: 1;
/* 下部元素占據(jù)父元素的剩余空間 */
background-color: #eee;
/* 下部元素的樣式 */
}
</style>附:vue3實(shí)現(xiàn)某一個(gè)元素全屏為什么全屏之后就黑屏了
A:可能是因?yàn)槿林笤撛馗采w了整個(gè)屏幕,導(dǎo)致后續(xù)的內(nèi)容無法顯示。你可以考慮在該元素上添加一些內(nèi)容使其可見,或者通過下面的代碼來解決該問題:
<div ref="fullscreenElement"></div>
<script>
const fullscreenElement = this.$refs.fullscreenElement;
function requestFullscreen() {
if (fullscreenElement.requestFullscreen) {
fullscreenElement.requestFullscreen();
} else if (fullscreenElement.webkitRequestFullscreen) {
fullscreenElement.webkitRequestFullscreen();
} else if (fullscreenElement.msRequestFullscreen) {
fullscreenElement.msRequestFullscreen();
}
}
requestFullscreen();
</script>
該代碼會(huì)在指定元素上調(diào)用全屏方法,并在原始頁面上添加一些樣式。你可以在其中添加你自己的樣式。
總結(jié)
到此這篇關(guān)于vue3前端實(shí)現(xiàn)全屏顯示及元素垂直填滿頁面效果的文章就介紹到這了,更多相關(guān)vue3前端全屏顯示內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue+Websocket簡單實(shí)現(xiàn)聊天功能
這篇文章主要為大家詳細(xì)介紹了Vue+Websocket簡單實(shí)現(xiàn)聊天功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
vue3(ts)類型EventTarget上不存在屬性value的問題
這篇文章主要介紹了vue3(ts)類型EventTarget上不存在屬性value的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
使用el-upload組件實(shí)現(xiàn)遞歸多文件上傳的全過程
el-upload組件文件上傳都是每個(gè)文件請求一次接口,本次實(shí)現(xiàn)一次請求上傳多個(gè)文件,下面這篇文章主要給大家介紹了關(guān)于使用el-upload組件實(shí)現(xiàn)遞歸多文件上傳的相關(guān)資料,需要的朋友可以參考下2023-03-03
Vue3+Vue Router實(shí)現(xiàn)動(dòng)態(tài)路由導(dǎo)航的示例代碼
隨著單頁面應(yīng)用程序(SPA)的日益流行,前端開發(fā)逐漸向復(fù)雜且交互性強(qiáng)的方向發(fā)展,在這個(gè)過程中,Vue.js及其生態(tài)圈的工具(如Vue Router)為我們提供了強(qiáng)大的支持,本文將介紹如何在Vue 3中使用Vue Router實(shí)現(xiàn)動(dòng)態(tài)路由導(dǎo)航,需要的朋友可以參考下2024-08-08
解決vue 綁定對象內(nèi)點(diǎn)擊事件失效問題
今天小編就為大家分享一篇解決vue 綁定對象內(nèi)點(diǎn)擊事件失效問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
vue data恢復(fù)初始化數(shù)據(jù)的實(shí)現(xiàn)方法
今天小編就為大家分享一篇vue data恢復(fù)初始化數(shù)據(jù)的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
vue watch普通監(jiān)聽和深度監(jiān)聽實(shí)例詳解(數(shù)組和對象)
這篇文章主要介紹了vue watch普通監(jiān)聽和深度監(jiān)聽(數(shù)組和對象),文中單獨(dú)通過代碼給大家介紹了vue watch 深度監(jiān)聽的方法,感興趣的朋友一起看看吧2018-08-08

