flex布局怎样做上下固定的效果
发布时间:2023-09-20 13:05:32 所属栏目:语言 来源:
导读:我们在浏览网站的时候,会看到一些页面的布局方式是上下固定中间滑动的效果,那么这个效果是怎样实现的呢?对此,这篇文章给大家分享用flex布局怎样实现上下固定的页面布局方式。
例如这样的一个页面,希望有个头
例如这样的一个页面,希望有个头
我们在浏览网站的时候,会看到一些页面的布局方式是上下固定中间滑动的效果,那么这个效果是怎样实现的呢?对此,这篇文章给大家分享用flex布局怎样实现上下固定的页面布局方式。 例如这样的一个页面,希望有个头图,有个底部的底栏,中部内容区域可滑动。 固定头部和尾部,中间部分可滑动,使用flex布局 1.设置html,body高度为100% 2.设置最外层div的布局方式为弹性布局display:flex; 3.设置最外层div的主轴方向为flex-direction: column;主轴为垂直方向,起点在上沿 row(默认值):主轴为水平方向,起点在左端。 row-reverse:主轴为水平方向,起点在右端。 column:主轴为垂直方向,起点在上沿。 column-reverse:主轴为垂直方向,起点在下沿。 4.设置最外层div的高度为100% 5.正常写头部样式 6.正常写尾部样式 7.中间样式为flex: 1;overflow: hidden或者overflow:auto;-webkit-overflow-scrolling: touch后者在ios手机中滑动会有问题,建议使用插件 html部分: <div class="main-warp"> <div class="header"> <img src="imgurl" class="header-img" alt> </div> <div class="content"> <div class="content-scroll"> <div class="shop-box"> <img src="imgurl" alt> </div> <div class="shop-box"> <img src="imgurl" alt > </div> <div class="shop-box"> <img src="imgurl" alt > </div> <div class="shop-box"> <img src="imgurl" alt > </div> </div> </div> <div class="footer"></div> </div> js部分: <script> import BScroll from 'better-scroll' export default { data () { return { } }, components: { }, methods: { }, computed: { }, mounted () { this.$nextTick(function () { /* eslint-disable no-new */ let pageBottom = document.querySelector('.content') new BScroll(pageBottom, { click: true }) }) }, created () { } } </script> 样式部分: <style lang="less" rel="stylesheet/less" type="text/less"> @r: 100; // 固定头部和尾部,中间部分可滑动,使用flex布局 // html, body { background: url("//storage.jd.com/1901/04nianhuojie/02lingquanbg_02.png") repeat-y; background-size: 100%; height: 100%; } .main-warp { max-width: 750px; min-height: 100%; margin: 0 auto; display: flex; flex-direction: column; height: 100%; width: 100%; box-sizing: border-box; .header { height: 500rem / @r; .header-img { height: 500rem / @r; } } .content { flex: 1; width: 100%; overflow: hidden; // overflow: auto; // -webkit-overflow-scrolling: touch; .shop-box { margin: 50rem / @r 0; img { width: 106rem / @r; } } } .footer { background: url("//storage.jd.com/1901/04nianhuojie/fixbtnbg_02.png") repeat; background-size: 12rem / @r 11rem / @r; height: 82rem / @r; width: 100%; bottom: 0; color: #ffdeb8; font-size: 34rem / @r; line-height: 82rem / @r; text-align: center; font-weight: bolder; max-width: 750px; } } </style> 说明一下,在移动端,如果直接使用 overflow: auto; -webkit-overflow-scrolling: touch; 在ios上,如果手指滑动超出了盒子的区域,那么很容易再次滑动的时候,导致区域不能滑动的问题,那样子就好像是手指没有点到那个盒子一样,所以这里使用了BScroll插件,使用IScroll也是一样的。 他的最终效果就是把content的直接子元素加了transition效果。 这种布局方式在ios9.3及其以下版本不兼容,flex布局在需要兼容低版本ios时还是需要慎用的哦 以上就是关于flex布局实现上下固定中间滑动布局方式的介绍啦,本文代码有一定的借鉴价值,有需要的朋友可以参考学习,希望对大家学习flex布局的使用有帮助。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |