美文网首页
jQuery Wookmark 瀑布流

jQuery Wookmark 瀑布流

作者: Stonesy | 来源:发表于2020-03-09 11:48 被阅读0次

下载地址:http://code.ciaoca.com/jquery/wookmark/

<style type="text/css">
  #pbl {
    width: 1200px;
    margin: 0 auto;
    position: relative;
  }

  #tiles li {
    width: 380px;
    display: none;
    list-style: none;
  }

  #tiles li img {
    width: 100%;
  }

  #tiles li p {
    position: absolute;
    bottom: 0px;
    display: block;
    width: 94%;
    padding: 10px 3%;
    font-size: 14px;
    color: white;
    background: url('../images/img/span_bg.png');
    opacity: 0;
    transition: all ease-in-out .5s;
  }

  #tiles li:hover p {
    opacity: 1;
  }
</style>

<div id="pbl" role="pbl">

  <ul id="tiles">
    <!-- These is where we place content loaded from the Wookmark API -->
  </ul>

  <div id="loader">
    <div id="loaderCircle">
                  <img src="../images/loading.gif" style="margin-left: 50%;transform: translateX(-50%);" />
    </div>
  </div>

</div>
<script src="../js/jquery.wookmark.js" type="text/javascript" charset="utf-8"></script>
<script src="../js/jquery.imagesloaded.js" type="text/javascript" charset="utf-8"></script>
<script>
  var appid = '{appid}',
    timestamp = '{timestamp}',
    signature = '{signature}';
  var page = 1;
</script>
<script type="text/javascript">
  (function ($) {

    var handler = null,
      page = 1,
      isLoading = false
    //准备布局选项。
    var options = {
      autoResize: false, // 这将在调整浏览器窗口大小时自动更新布局。
      container: $('#tiles'), //可选,用于一些额外的CSS样式
      offset: 20, //可选,网格项之间的距离
      itemWidth: 380 // 可选,网格项的宽度
    };

    /**
     * 当滚动到底部时,添加更多的平铺。
     */
    function onScroll(event) {
      // 只有在我们还没等数据的时候才检查。
      if (!isLoading) {
        //检查是否在broser窗口下边缘的100像素范围内。
        var closeToBottom = ($(window).scrollTop() + $(window).height() > $(document).height() - 100);
        if (closeToBottom) {
          loadData();
        }
      }
    };

    /**
     *刷新布局。
     */
    function applyLayout() {
      options.container.imagesLoaded(function () {
        // 加载图像后创建新的布局处理程序。
        handler = $('#tiles li');
        handler.wookmark(options);
      });
    };

    /**
     * 从API加载数据。
     */
    function loadData() {
      var apiURL = '/api.php/list/{sort:scode}/page/' + page + '/num/5';
      isLoading = true;
      $('#loaderCircle').show();
      console.log(apiURL);
      $.ajax({
        type: "post",
        url: apiURL,
        data: {
          appid: '{pboot:appid}',
          timestamp: '{pboot:timestamp}',
          signature: '{pboot:signature}'
        },
        success: onLoadData
      });
    };

    /**
     * 从API接收数据,为图像创建HTML并更新布局
     */
    function onLoadData(data) {
      data = $.parseJSON(data);
      console.log(data.data);
      isLoading = false;
      $('#loaderCircle').hide();

      //为将来的调用增加页索引。
      page++;
      //为图像创建HTML。
      var html = '';
      var length = data.data.length,
        image;
      for (var i = 0; i < length; i++) {
        image = data.data[i];
        html += '<li>';

        // 图像标签(在Wookmark中预览宽度为200px,因此我们根据它计算高度)。
        //                      html += '<img src="' + image.ico + '" width="380" height="' + Math.round(image.height / image.width * 380) + '">';
        html += '<img src="' + image.ico + '" width="380" height="auto">';

        // Image title.
        html += '<p>' + image.title + '</p>';

        html += '</li>';
      }

      if (data.code == 1) {
        // 将图像HTML添加到页面。
        $('#tiles').append(html);
        //应用布局。
        applyLayout();
      } else {
        isLoading = true;
        alert(data.data);

      }

    };

    // 捕获滚动事件。
    $(document).bind('scroll', onScroll);

    //从API加载第一个数据。
    loadData();
  })(jQuery);
</script>

相关文章

  • jQuery Wookmark 瀑布流

    下载地址:http://code.ciaoca.com/jquery/wookmark/

  • 瀑布流

    瀑布流jQuery瀑布流插件 Masonry:http://www.jq22.com/jquery-info362...

  • jquery 瀑布流

    瀑布流布局的特点: 【1】展示的图片元素都是等宽不等高,图片的位置用position:absolute定位来摆放。...

  • jQuery 瀑布流

    瀑布流的实现原理 要想实现瀑布流首先需要确定需要排列的内容,宽度需要一致; 设定父容器相对定位,需排列子元素绝对定...

  • jQuery瀑布流

    问题 瀑布流布局的原理是什么 1.计算找出高度最低的一列元素2.将新元素定位放至该列下3.该列高度+=新元素高度4...

  • jQuery瀑布流插件masonry使用教程

    瀑布流特别适合多图片布局加载,效果很理想。 masonry是基于jquery的瀑布流插件,简单实用,本文就以滑动无...

  • 瀑布流布局浅析

    最近做手机端项目使用到瀑布流布局,所以在这边总结下实现瀑布流布局的几种方法。 1、使用插件(Wookmark.js...

  • Jquery 瀑布流(滚动加载)

    源码下载地址 实现思路 通过容器宽度 和每列的宽度 可以计算出列数。 数组来保存每一列的高度,当页面加载新的盒子时...

  • jquery瀑布流的原理

    什么是瀑布流,说话不形象,直接看图说话 ![S55M%73LKAKO@]OZ7D@MH.png](http://u...

  • jQuery 瀑布流+木桶布局

    题目1: 实现一个瀑布流布局效果 演示 题目2:实现木桶布局效果 演示 题目3:实现一个新闻瀑布流新闻网站 jso...

网友评论

      本文标题:jQuery Wookmark 瀑布流

      本文链接:https://www.haomeiwen.com/subject/zcwudhtx.html