介绍
小编给大家分享一下flex布局如何实现上下固定中间滑动,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!
例如这样的一个页面,希望有个头图,有个底部的底栏,中部内容区域可滑动。
简单介绍一下如何实现
固定头部和尾部,中间部分可滑动,使用flex布局
1。设置html,身体高度为100%
2。设置最外层div的布局方式为弹性布局显示:flex;
3。设置最外层div的主轴方向为flex-direction:列;主轴为垂直方向,起点在上沿
行(默认值):主轴为水平方向,起点在左端。
row-reverse:主轴为水平方向,起点在右端。
专栏:主轴为垂直方向,起点在上沿。
column-reverse:主轴为垂直方向,起点在下沿。
4。设置最外层div的高度为100%
5。正常写头部样式
6。正常写尾部样式
7。flex中间样式为:1;溢出:隐藏或者溢出:汽车;-webkit-overflow-scrolling:触摸后者在ios手机中滑动会有问题,建议使用插件
html部分:
& lt; div 类=癿ain-warp"比;
,,,& lt; div 类=癶eader"比;
,,,,,& lt; img src=https://www.yisu.com/zixun/癷mgurl”class=" header-img " alt>
%20
%20%20%20js部分:
%20%20&%20lt;%20script>
import %20BScroll 得到&%20#%2039;better-scroll&%20#%2039;
export %20default %20{
data 才能;(),{
,,,return %20{
,,,,,
,,,}
,,},
,
,,组件:{
,,},
方法:才能,{
,
,,},
,
计算才能:{
,
,,},
,
mounted 才能;(),{
,,,这个。nextTick美元(function %20(),%20{
,,,,,/*,eslint-disable %20no-new %20*/,,,,,let %20pageBottom =,%20document.querySelector%20(&%20#%2039;%20.content&%20#%2039;)
,,,,,new %20BScroll%20(pageBottom,,{,点击:true })
,,,})
,,},
created 才能;(),{
,,}
}
&%20lt;/script>%20
%20样式部分:
%20%20&%20lt;%20style %20lang=發ess",,%20rel=把奖?less",类型=拔谋?less"比;
@r:%20100;//,固定头部和尾部,中间部分可滑动,使用flex布的局
,//,html,
body %20{
背景:才能,url%20(“//storage.jd.com/1901/04nianhuojie/02lingquanbg_02.png")
,,,repeat-y;
,,background-size: 100%;
,,身高:100%;
}
.main-warp {
,,max-width: 750 px;
最小高度才能:100%;
保证金才能:0,汽车;
,,显示:flex;
,,flex-direction:列;
,,身高:100%;
,,宽度:100%;
,,box-sizing: border-box;
.header {才能
,,,身高:,500 rem /, @r;
,,,.header-img {
,,,,,,身高:500 rem /, @r;
,,,}
,,}
.content {才能
flex:,,,, 1;
,,,宽度:,100%;
,,,溢出:,隐藏;
,,,//,溢出:,汽车;
,,,//,-webkit-overflow-scrolling:,联系;
,,,.shop-box {
,,,,,保证金:,50 rem /, @r 0;
,,,,,img {
,,,,,,,宽度:,106 rem /, @r;
,,,,,}
,,,}
,,}
.footer {才能
,,,背景:,url (“//storage.jd.com/1901/04nianhuojie/fixbtnbg_02.png"),重复;
,,,background-size:, 12 rem /, @r 11 rem /, @r;
,,,身高:,82 rem /, @r;
,,,宽度:,100%;
,,,底部:,0;
,,,颜色:,# ffdeb8;
,,,字体大小:,34 rem /, @r;
,,,行高:,82 rem /, @r;
,,,text-align:,中心;
,,,粗细:,大胆;
,,,max-width:, 750 px;
,,}
}
,
& lt;/style>
说明一下,在移动端,如果直接使用
溢出:汽车;
-webkit-overflow-scrolling:触摸;
的话,在ios上,如果手指滑动超出了盒子的区域,那么很容易再次滑动的时候,导致区域不能滑动的问题,那样子就好像是手指没有点到那个盒子一样,所以这里使用了BScroll插件,使用IScroll也是一样的。
,
他的最终效果就是把内容的直接子元素加了过渡效果。