zoukankan      html  css  js  c++  java
  • h5 css 瀑布流图片展示

    在H5的图片布局中,我们经常遇到容器盒子一致但图片大小不一的情况,如果仅仅展示一列的话,则可以通过调整图片宽度100%来布局,但是如果有二列呢,我们使用css3的column-count属性分列

    demo查看:https://my.weblf.cn/alone_page/pages/falls_img.html

    全部代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1,user-scalable=no,target-densitydpi=400" >
      <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
      <meta http-equiv="Pragma" content="no-cache" />
      <meta http-equiv="Expires" content="0" />
      <title>vue的瀑布流图片展示</title>
      <link rel="stylesheet" href="../statics/css/reset.css" id='reset'>
      <link rel="stylesheet/less" type="text/css" href="../statics/css/falls_img.less?ver=1">
      <script type="text/javascript" src="../statics/js/public.js?ver=2" id='public'></script>
      <script type="text/javascript" src="../statics/js/less2.5.3.min.js" id='less'></script>
      <script type="text/javascript" src="../statics/js/vue2.6.11.js"></script>
      <!-- mint-ui -->
      <link rel="stylesheet" href="https://unpkg.com/mint-ui/lib/style.css">
      <script src="https://unpkg.com/mint-ui/lib/index.js"></script>
    </head>
    <body>
      <div id="app" v-cloak :style="{'padding-top':isWeiXin?'0rem':'3rem'}">
        <!-- 头部 -->
        <div class="now_page_head" ref="now_page_head" v-if="!isWeiXin">
          vue的瀑布流图片展示
          <img src="../statics/images/back.png" class="back"/>
        </div>
        <!-- 页面的主要内容 -->
        <section class="content">
          <div class="olist">
            <div class="img_box_outer">
              <div class="img_box" @click="get_ele($event)" />
              <img src="../statics/images/falls_img1.jpg">
              </div>
            </div>
            <div class="img_box_outer">
              <div class="img_box" @click="get_ele($event)" />
              <img src="../statics/images/falls_img3.jpg">
              </div>
            </div>
            <div class="img_box_outer">
              <div class="img_box" @click="get_ele($event)" />
              <img src="../statics/images/falls_img2.jpg">
              </div>
            </div>
            <div class="img_box_outer">
              <div class="img_box" @click="get_ele($event)" />
              <img src="../statics/images/falls_img4.jpeg">
              </div>
            </div>
            <div class="img_box_outer">
              <div class="img_box" @click="get_ele($event)" />
              <img src="../statics/images/falls_img5.png">
              </div>
            </div>
            <div class="img_box_outer">
              <div class="img_box" @click="get_ele($event)" />
              <img src="../statics/images/falls_img6.jpg">
              </div>
            </div>
          </div>
        </section>
     
        <!-- 图片预览 -->
        <transition name="fade">
          <div class="img_prew" v-if="is_show_img_prew" @click="is_show_img_prew=false">
            <img :src="img_prew_src" class="img_prew_img" />
          </div>
        </transition>
     
        <!-- 页面结束 -->
      </div>
    </body>
     
    <script>
      var vm = new Vue({
        el: '#app',
        data: {
          showSpinner: false,
          isWeiXin: window.TS_WEB.isWeiXin,
          isApps: window.TS_WEB.isApp,
          img_prew_src:'', //图片预览地址
          is_show_img_prew:false
        },
        components: {},
        computed: {},
        methods: {
          get_ele(event){
            let el = event.target
            let el_name=event.target.nodeName.toLowerCase()
            if(el_name=='img'){
              let el_src=el.src
              this.img_prew_src=el_src
              this.is_show_img_prew=true
            }
          },
        },
        created() {
          document.title='vue的瀑布流图片展示'
        }
      })
    </script>
    <style>
    </style>
    </html>

    css:

    #app {
      width: 100%;
      height: 100%;
      overflow: hidden;
      background: rgba(245, 245, 245, 1);
      position: relative;
      box-sizing: border-box;
      overflow: hidden;
      padding-top: 3rem;
      height: 100%;
      padding-bottom: 0;
      //头部
      .now_page_head {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 3rem;
        text-align: center;
        font-size: 1.27rem;
        line-height: 3rem;
        z-index: 11;
        transition: all 0.5s ease;
        background: #fff;
        .back {
          height: 1rem;
          position: absolute;
          left: 1rem;
          top: 1rem;
        }
        .seting {
          height: 1.2rem;
          position: absolute;
          right: 1rem;
          top: 0.9rem;
        }
        .share {
          position: absolute;
          right: 1rem;
          top: 0rem;
          line-height: 3rem;
          font-size: 1rem;
        }
      }
      // 图片预览
      .img_prew{
        position: fixed;
        width: 100%;
        height: 100%;
        left: 0;
        top: 0;
        z-index: 10;
        background: rgba(0, 0, 0, 0.8);
        .img_prew_img{
          width: 100%;
          position: absolute;
          top: 50%;
          transform: translateY(-50%);
        }
      }
      // 内容区
      .content {
        background: #ededed;
        height: 100%;
        padding-bottom: 0;
        width: 100%;
        overflow-x: hidden;
        overflow-y: auto;
        .olist{
          padding-bottom: 2rem;
          -moz-column-count: 2; /* Firefox */
          -webkit-column-count: 2; /* Safari �� Chrome */
          column-count: 2;      /* 将 div 元素中的文本分为2列,并规定列间1rem像素的间隔。 */
          -moz-column-gap: 1rem;
          -webkit-column-gap: 1rem;
          column-gap: 1rem;
        }
        .img_box_outer{
          -webkit-column-break-inside:avoid;
          margin: 0 0 1rem 0;
          -moz-page-break-inside: avoid;
          -webkit-column-break-inside: avoid;
          break-inside: avoid;   /*break-inside: avoid; 避免元素内部断行并产生新列*/
          position: relative;
          border-radius:0.5rem;
          overflow: hidden;
          .img_box{
            width: 100%;
            img{
              width: 100%;
              border-radius: 0.5rem;
            }
          }
        }
      }
    }

    结果预览:

  • 相关阅读:
    wpf中DataGrid自定义验证(包含BindingGroup)
    WPF博客地址分享
    ComboBox在WPF中的绑定示例:绑定项、集合、转换,及其源代码
    【windows phone】CollectionViewSource的妙用
    WPF之Binding深入探讨
    正确理解WPF中的TemplatedParent
    继续聊WPF——获取ComboBox中绑定的值
    WPF触发器(Trigger、DataTrigger、EventTrigger)
    jQuery和javaScript页面加载完成时触发的事件
    jQuery对象和dom对象的转换
  • 原文地址:https://www.cnblogs.com/linfblog/p/13540489.html
Copyright © 2011-2022 走看看