flex布局实现上下固定中间滑动的布局方式

发布时间:2022-04-13 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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也是一样的。

&nbsp;

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

在此记录该布局方式

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

到此这篇关于flex布局实现上下固定中间滑动的布局方式的文章就介绍到这了,更多相关flex上下固定中间滑动布局内容请搜索脚本宝典以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本宝典!

脚本宝典总结

以上是脚本宝典为你收集整理的flex布局实现上下固定中间滑动的布局方式全部内容,希望文章能够帮你解决flex布局实现上下固定中间滑动的布局方式所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:flexflex