flex布局實現(xiàn)上下固定中間滑動的布局方式
本文主要介紹了flex布局實現(xiàn)上下固定中間滑動的布局方式,分享給大家,具體如下:

例如這樣的一個頁面,希望有個頭圖,有個底部的底欄,中部內(nèi)容區(qū)域可滑動。
簡單介紹一下如何實現(xiàn)
固定頭部和尾部,中間部分可滑動,使用flex布局
1.設(shè)置html,body高度為100%
2.設(shè)置最外層div的布局方式為彈性布局display:flex;
3.設(shè)置最外層div的主軸方向為flex-direction: column;主軸為垂直方向,起點在上沿
row(默認值):主軸為水平方向,起點在左端。
row-reverse:主軸為水平方向,起點在右端。
column:主軸為垂直方向,起點在上沿。
column-reverse:主軸為垂直方向,起點在下沿。
4.設(shè)置最外層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上,如果手指滑動超出了盒子的區(qū)域,那么很容易再次滑動的時候,導致區(qū)域不能滑動的問題,那樣子就好像是手指沒有點到那個盒子一樣,所以這里使用了BScroll插件,使用IScroll也是一樣的。

他的最終效果就是把content的直接子元素加了transition效果。
在此記錄該布局方式
注:注意 這種布局方式在ios9.3及其以下版本不兼容,flex布局在需要兼容低版本ios時還是需要慎用的哦
到此這篇關(guān)于flex布局實現(xiàn)上下固定中間滑動的布局方式的文章就介紹到這了,更多相關(guān)flex上下固定中間滑動布局內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章

使用Flex布局實現(xiàn)頭部固定內(nèi)容區(qū)域滾動的方法
這篇文章主要介紹了使用Flex布局實現(xiàn)頭部固定內(nèi)容區(qū)域滾動的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小2020-08-04
這篇文章主要介紹了詳解flex布局下圖片變形的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學2020-08-04
詳解flex布局與position:absolute/fixed的沖突問題
這篇文章主要介紹了詳解flex布局與position:absolute/fixed的沖突問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面2020-08-03
Flex布局實現(xiàn)div內(nèi)部子元素垂直居中的示例
這篇文章主要介紹了Flex布局實現(xiàn)div內(nèi)部子元素垂直居中的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編2020-08-03
這篇文章主要介紹了Flex布局讓子項保持自身高度的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學2020-08-03
讓CSS flex布局最后一行列表左對齊的N種方法(小結(jié))
這篇文章主要介紹了讓CSS flex布局最后一行列表左對齊的N種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編2020-07-23
css3 flex布局實現(xiàn)平均分配元素的示例代碼
這篇文章主要介紹了css3 flex布局實現(xiàn)平均分配元素的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編2020-07-21
Flex 是 Flexible Box 的縮寫,意為"彈性布局",用來為盒狀模型提供最大的靈活性。這篇文章給大家介紹flex布局語法的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧2020-08-26


