jQuery瀑布流插件masonry

项目要做荣誉证书的排版,宽度是统一的,但是高度不一致

采用瀑布流的效果来实现

默认先实现前15张,点击按钮再加载全部剩下的数据

效果图

 

 首先是html部分,写好样式

<!-- 荣誉资质 -->
  <div class="about_honor">
      <div class="container">
         <h2>
              <img src="/templates/img/honor_img1.png" />
              <p>展望未来,我们满怀信心。xx网络的点滴进步均来源于广大客户的不断支持。</p>
         </h2>
         <ul class="box-container" id="main-box">
          <!-- 加载前15张图片 -->
          <?php
              $info=mysqli_query($con,"SELECT * FROM `wit_honor` order by `order` limit 15"); 
              while($row=mysqli_fetch_array($info)){

          ?>
          <li class="box wow fadeInUp" data-wow-delay=".1s"><img src="/templates/images/honor/<?php echo $row['honor_imgurl'];?>" /></li>           
          <?php
              }
              //加载15张以后的全部图片
              $info2=mysqli_query($con,"SELECT * FROM `wit_honor` order by `order` limit 15,30  "); 
              while($row2=mysqli_fetch_array($info2)){
            ?>
                <li class="box new-box"><img src="/templates/images/honor/<?php echo $row2['honor_imgurl'];?>" /></li>
            <?php
              }
            ?>
         
          </ul>
         <div class="clearfix"></div>
         <div class="honor_loading">
             <div class="button--loading">
                 <i>·</i>
                 <i>·</i>
                 <i>·</i>
             </div>
             查看全部证书
          </div>
      </div>    
  </div>

因为php很烂,所以直接把代码嵌里面了,哈哈哈

css部分大概这样

/*荣誉资质*/
.about_honor{width:100%; float: left; position: relative; background: #2d323c; padding: 50px 0;}
.about_honor ul li{width:20%; float: left; text-align: center; padding-bottom: 15px; -webkit-flex: 1;flex: 1;}
.about_honor li img{border: 13px #ffff solid; width:85%;}
.about_honor h2{ text-align:center;}
.about_honor p{ font-size:18px; color: #fff; padding-bottom: 30px;}

.honor_loading {width:100px; text-align: center; margin:0 auto; font-size:16px; color: #fff; line-height: 35px;}
.honor_loading a {position: relative;display: block;color: #74777b;padding: 1em 1em 2.5em 1em;text-decoration: none;}
.honor_loading a:hover {text-decoration: none;color: #2cc185;background-color: #e7ecea;transition: 0.3s;}
.honor_more{z-index: 2;}

.button--loading{width:60px; line-height: 50px; margin:0 auto; background: #fff; color: #e37a40;}
.button--loading i { font-size:24px; font-weight: bold; font-style:normal;
    -webkit-animation: fadeInOut 0.3s ease-in infinite alternate forwards;
    animation: fadeInOut 0.3s ease-in infinite alternate forwards;}
.button--loading i:nth-child(2) {-webkit-animation-delay: 0.1s;animation-delay: 0.1s;}
.button--loading i:nth-child(3) {-webkit-animation-delay: 0.2s;animation-delay: 0.2s;}

@-webkit-keyframes fadeInOut {
    from {opacity: 0;}
    to {opacity: 1;}
}

@keyframes fadeInOut {
    from {opacity: 0;}
    to {opacity: 1;}
}

然后先引入js

<script src="/templates/js/jquery-1.11.2.min.js"></script>
  <script type="text/javascript" src="/templates/js/jquery.masonry.min.js"></script>

再是实现效果的部分

  <script type="text/javascript">
    $(document).ready(function(){
      //这段是瀑布流插件的色值
      var $container = $('.box-container');//获取总容器
      $container.imagesLoaded(function(){
        $container.masonry({
          itemSelector: '.box',//获取每张图片的容器
          columnWidth: 1//每两列之间的间隙为5像素
        });
      });

    //隐藏15张以后的图
     $(".new-box").hide();
     //图片容器高度设置
     $(".about_honor").css({
        "height":"1500px"
     });
     //查看全部按钮定位
     $(".honor_loading").css({
        "position":"absolute",
        "bottom":"59px",
        "left":"50%",
        "margin-left":"-30px"
     });
    
      //点击查看全部
     $(".honor_loading").click(function() {
          //显示15张以后的图
          $(".new-box").slideToggle(1000);
          //图片容器高度复原
          $(".about_honor").css({
            "height":""
         });
          //查看全部按钮隐藏
         $(".honor_loading").hide();
     });

    });
  </script>

不太会代码封装,写的比较散啦~

 

posted @ 2020-02-27 14:50  陈莺莺呀  阅读(697)  评论(0编辑  收藏  举报