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部分:

<divclass="main-warp">
<divclass="header">
<imgsrc="imgurl"class="header-img"alt>
</div>
<divclass="content">
<divclass="content-scroll">
<divclass="shop-box">
<imgsrc="imgurl"alt>
</div>
<divclass="shop-box">
<imgsrc="imgurl"alt>
</div>
<divclass="shop-box">
<imgsrc="imgurl"alt>
</div>
<divclass="shop-box">
<imgsrc="imgurl"alt>
</div>
</div>
</div>
<divclass="footer"></div>
</div>

js部分:

<script>
importBScrollfrom'better-scroll'
exportdefault{
data(){
return{

}
},

components:{
},
methods:{

},

computed:{

},

mounted(){
this.$nextTick(function(){
/*eslint-disableno-new*/
letpageBottom=document.querySelector('.content')
newBScroll(pageBottom,{click:true})
})
},
created(){
}
}
</script>

样式部分:

<stylelang="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:0auto;
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/@r0;
img{
width:106rem/@r;
}
}
}
.footer{
background:url("//storage.jd.com/1901/04nianhuojie/fixbtnbg_02.png")repeat;
background-size:12rem/@r11rem/@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也是一样的。

flex布局如何实现上下固定中间滑动

他的最终效果就是把content的直接子元素加了transition效果。

在此记录该布局方式

注:注意 这种布局方式在ios9.3及其以下版本不兼容,flex布局在需要兼容低版本ios时还是需要慎用的哦

看完了这篇文章,相信你对“flex布局如何实现上下固定中间滑动”有了一定的了解,如果想了解更多相关知识,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!

发布于 2021-03-21 22:37:23
收藏
分享
海报
0 条评论
171
上一篇:HTML5图片层叠怎么实现 下一篇:Shell两种for循环怎么实现
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码