Vue.js动态获取浏览器高度并进行实时修改DOM元素高度
项目中有高度自适应需求,div的高度始终需要一个浏览器的高度,在此做个记录,以便之后迅速搭建<template> <div class="content" :style="contentStyleObj"></div></template>&
·
项目中有高度自适应需求,div的高度始终需要一个浏览器的高度,在此做个记录,以便之后迅速搭建
<template>
<div class="content" :style="contentStyleObj"></div>
</template>
<script>
export default {
name: 'App',
data () {
return {
contentStyleObj:{
height:''
}
}
},
components:{
},
methods:{
getHeight(){
this.contentStyleObj.height=window.innerHeight-70+'px';
}
},
created(){
window.addEventListener('resize', this.getHeight);
this.getHeight()
},
destroyed(){
window.removeEventListener('resize', this.getHeight)
}
}
</script>
完成效果:
附源码(略乱)
<template>
<div id="app">
<TopNav></TopNav>
<LeftNav></LeftNav>
<div class="content" :style="contentStyleObj">
<router-view/>
</div>
</div>
</template>
<script>
import TopNav from '@/components/common/topNav'
import LeftNav from '@/components/common/leftNav'
export default {
name: 'App',
data () {
return {
contentStyleObj:{
height:''
}
}
},
components:{
TopNav,
LeftNav
},
methods:{
getHeight(){
this.contentStyleObj.height=window.innerHeight-70+'px';
}
},
created(){
window.addEventListener('resize', this.getHeight);
this.getHeight()
},
destroyed(){
window.removeEventListener('resize', this.getHeight)
}
}
</script>
<style>
#app {
height: 100%;
}
.content{
margin-left: 50px;
padding: 10px;
padding-top: 60px;
}
body,html{
height: 100%;
}
/* 清除内外边距 */
body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, /* structural elements 结构元素 */
dl, dt, dd, ul, ol, li, /* list elements 列表元素 */
pre, /* text formatting elements 文本格式元素 */
fieldset, lengend, button, input, textarea, /* form elements 表单元素 */
th, td { /* table elements 表格元素 */
margin: 0;
padding: 0;
}
/* 设置默认字体 */
body,
button, input, select, textarea { /* for ie */
/*font: 12px/1 Tahoma, Helvetica, Arial, "宋体", sans-serif;*/
/*font: 12px/1 Tahoma, Helvetica, Arial, "\5b8b\4f53", sans-serif;*/ /* 用 ascii 字符表示,使得在任何编码下都无问题 */
font: 12px/1 Tahoma, Helvetica, Arial, "微软雅黑", sans-serif;
}
h1 { font-size: 18px; /* 18px / 12px = 1.5 */ }
h2 { font-size: 16px; }
h3 { font-size: 14px; }
h4, h5, h6 { font-size: 100%; }
address, cite, dfn, em, var { font-style: normal; } /* 将斜体扶正 */
code, kbd, pre, samp, tt { font-family: "Courier New", Courier, monospace; } /* 统一等宽字体 */
small { font-size: 12px; } /* 小于 12px 的中文很难阅读,让 small 正常化 */
/* 重置列表元素 */
ul, ol,li { list-style: none; text-decoration:none;}
/* 重置文本格式元素 */
a { text-decoration: none; }
/*a:hover { text-decoration: underline; }*/
abbr[title], acronym[title] { /* 注:1.ie6 不支持 abbr; 2.这里用了属性选择符,ie6 下无效果 */
border-bottom: 1px dotted;
cursor: help;
}
q:before, q:after { content: ''; }
/* 重置表单元素 */
legend { color: #000; } /* for ie6 */
fieldset, img { border: none; } /* img 搭车:让链接里的 img 无边框 */
/* 注:optgroup 无法扶正 */
button, input, select, textarea {
font-size: 100%; /* 使得表单元素在 ie 下能继承字体大小 */
}
/* 重置表格元素 */
table {
border-collapse: collapse;
border-spacing: 0;
}
/* 重置 hr */
hr {
border: none;
height: 1px;
}
/* 让非ie浏览器默认也显示垂直滚动条,防止因滚动条引起的闪烁 */
html { overflow-y: auto; }
</style>
更多推荐
已为社区贡献2条内容
所有评论(0)