本文主要介绍了flex布局实现上下固定中间滑动的 布局方式 ,分享给大家,具体如下:
例如这样的一个页面,希望有个头图,有个底部的底栏,中部内容区域可滑动。
简单 介绍一下如何实现
固定头部和尾部,中间部分可滑动,使用flex布局
1.设置ht ML ,body高度为100%
2.设置最外层div的布局方式为弹性布局dis play :flex;
3.设置最外层div的主轴 方向 为flex-direction: column;主轴为垂直方向,起点在上沿
row(默认值):主轴为水 平方 向,起点在左端。
row- rev erse:主轴为水平方向,起点在右端。
column:主轴为垂直方向,起点在上沿。
column-reverse:主轴为垂直方向,起点在下沿。
4.设置最外层div的高度为100%
5. 正常 写头部样式
6.正常写尾部样式
7.中间样式为flex: 1;overflow: hidden 或者 overflow:auto;- webkit -overflow -s crolling: touch后者在ios手机中滑动会有问题,建议使用插件
html部分:
<div class=" ;m ai n-warp">
<div class="header">
< img src="imgurl" class="header -i mg" 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 {
}
},
component s: {
},
methods: {
},
computed: {
},
mount ed () {
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" ty PE ="text/less">
@r: 100;
// 固定头部和尾部,中间部分可滑动,使用flex布局
// html,
body {
background: url("//storage.jd .COM /1901/04nianhuojie/02lingquanbg_02.png")
repeat-y;
background-size : 100%;
h ei ght: 100%;
}
.main-warp {
max-width: 750px;
min-height: 100%;
m arg in: 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;
// -webk IT -overflow-scrolling: touch;
.shop-box {
mar gin : 50rem / @r 0;
img {
width: 106rem / @r;
}
}
}
.footer {
background: url("//storage.jd测试数据/1901/04nianhuojie/fix BT nbg_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也是一样的。
&nbs p;
他的最终效果就是把content的直接子元素加了transition效果。
在此记录该布局方式
注:注意 这种布局方式在 ios9 .3及其以下版本不兼容,flex布局在需要兼容低版本ios时还是需要 慎用 的哦
到此这篇关于flex布局实现上下固定中间滑动的布局方式的 文章 就介绍到这了,更多相关flex上下固定中间滑动布局内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!
总结
以上是 为你收集整理的 flex布局实现上下固定中间滑动的布局方式 全部内容,希望文章能够帮你解决 flex布局实现上下固定中间滑动的布局方式 所遇到的问题。
如果觉得 网站内容还不错, 推荐好友。
查看更多关于flex布局实现上下固定中间滑动的布局方式的详细内容...