首先需要知道如何获取屏幕的宽高
对于1920*1080的电脑屏幕
1、获取窗口中的文档显示区域宽高
w = window.innerWidth; //1920(包含滚动条)
h = window.innerHeight; //883(不含工具条)
2、获取窗口(包括滚动条与工具条)区域宽高
w = window.outerWidth; //1920(包含滚动条)
h = window.outerHeight; //883(包含工具条)
3、获取网页可见区域宽高
clientw = document.body.clientWidth; //1903(不包含滚动条)
clienth = document.body.clientHeight; //866(不包含工具条)
4、获取网页可见(含边线,但不是边距)区域宽高
clientw = document.body.offsetWidth; //1903(不包含滚动条,含边线)
clienth = document.body.offsetHeight; //866(不包含工具条,含边线)
5、网页正文全文宽高
clientw = document.body.scrollWidth; //1903(不含滚动条)
clienth = document.body.scrollHeight; //1269(不含工具条)
所谓正文全文,实际就是整个网页文档的宽高,既然是整个网页文档宽高肯定就是,网页内容有多宽那个宽就是多少,网页内容有多高那高就是多少了,当然同样包含着边线
6、屏窗
所谓屏窗就是整个屏幕窗口,我们前面说的到都属于视窗,也就是可视区域的窗口
获取屏窗一般使用:
clientw = window.screen.width; //1920
clienth = window.screen.height; //1080
第二种是获取屏幕可用工作去宽高
clientw = window.screen.availWidth; //1920
clienth = window.screen.availHeight; //1040
原文链接:http://www.cnblogs.com/leona-d/p/6347013.html
接下来说说轮播,html部分动态绑定高度,至于样式就宽度100%就好
<el-carousel
v-if="obj.ad_list.length==0?false:true"
:interval="5000"
:height="bannerheight+'px'"
arrow="always"
id="self"
>
<el-carousel-item :height="bannerheight+'px'" v-for="(item,key) in obj.ad_list" :key="key">
<a class="ban-box" :height="bannerheight+'px'" :href="item.url" rel="external nofollow">
<img :src="item.image" alt />
</a>
</el-carousel-item>
</el-carousel>
在mounted时期调用方法,因为mounted才可以操作DOM,监听窗口变化
data(){
return{
bannerheight:""
}
},
mounted() {
this.setSize();
window.addEventListener(
"resize",
() => {
this.setSize();
},
false
);
},
//这个3.84的比例是按照1920*500的轮播来的,即1920/500
methods: {
setSize() {
this.bannerheight = document.body.clientWidth / 3.84; //这个比例是1920/500
}
}
网友评论