Vue组件宽高自适应问题

在两个月前,我被公司安排做一个系统的前端页面开发,当时我还是个对前端知识一无所知的小白,html标签只知道<p><body>这些,css只知道width啊,height啊,margin啊这种很简单的属性,js就只知道变量都是弱类型,声明var全搞定,什么前端框架更是一概不知了。没人做,只能硬着头皮上了,用的vue框架,一路跌跌撞撞,踩了不知道多少坑,终于从无到有写出来个平台,不算粗糙也算不上精美,只能说一般般,到现在也只敢说自己微微入了门,深感前端的博大精深和折磨人,样式就要调死人,而且因为自己基础的薄弱,对一些想要实现的功能和效果根本有心无力,一句话,心很累!

虽然自己还是个菜鸟,但是两个月做下来,自己也有一些心得,想要拿出来跟大家交流交流,顺便抛砖引玉,万一大神看到了,说,你这么做太愚蠢了,应该怎么怎么滴,那岂不是很爽,期待幻想中的大神~

今天想要说的是Vue组件宽高自适应问题。针对不同的屏幕大小,肯定不能把组件的width,height都定死了,用百分比对一些效果还有布局来说也不是很好。做到现在,我是有几个自适应的小方法的,但是也有不满意的地方,想要提出来跟大家交流交流,感觉应该有更好的方法。

1.在created方法中设置宽高

在created方法中,使用jQuery获取组件,设置组件的宽高

created () {

       $('#total').css('width', $('#rightBox').height() * 0.5)

}

2.使用计算属性计算宽高

computed: {

     mapWidth() {return$(document).width() -200+'px'},

     mapHeight() {return$(document).height() -100+'px'}

},

在templete中的组件要这么写

<div id="map":style="{width: mapWidth, height: mapHeight}"></div>

两种方法其实大同小异,但是有一个大问题,就是都是一次性设置,不能做到随屏幕大小改变,除非刷新。感觉很愚蠢又找不到别的方法。希望有人能知道聪明的做法,一起交流交流呗

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天一早,载着婆婆公公驱车几十公里去看望老公的三姑,三姑是公公最小的妹妹,俩人一直是兄妹中感情最深的,前...
    花香001阅读 275评论 0 0
  • 月光如雪 街灯加深了思念颜色 身影亦渐被夜色吞没 一个人,藏在树影里 偷偷把想念折叠 思念是错 错是牵念太多 我愿...
    长河冬阳阅读 276评论 3 5
  • 不看小说,不逛淘宝 上厕所尽量不带手机 中午-英语和政治 吃完饭,背单词
    cleddie阅读 138评论 0 0
  • 1.今天在家里撕新买的卷纸,据说一箱摊开来边拆边数1234。 2.今晚吃饭吃的猪皮,吃了满满一大碗粥还说要皮皮。完...
    杨杨杨她麻咪阅读 206评论 0 0