Masonry与AmazeUI结合实现瀑布流

做一个图片列表展示,由于照片数量太多,决定用瀑布流来实现

由于之前没有接触过瀑布流,不知从何下手

百度一下大家都在用Masonry

官网 https://masonry.desandro.com/

这是某网站提供的一个demo  http://www.jq22.com/yanshi10136

看了一下它的代码,由于本人是小白,感觉实现起来很复杂,决定找别的解决方案

网站框架用的是妹子UI,有没有结合妹子实现的瀑布流呢。

这里是AmazeUI某插件官方提供的一个demo  http://amazeui.github.io/masonry/docs/panel.html

它的代码很简单,也容易理解

比葫芦画瓢,自己将它改造了一下,用到了项目中

<html class="no-js">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport"
        content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  <meta name="renderer" content="webkit">
  <meta http-equiv="Cache-Control" content="no-siteapp"/>
  <link rel="stylesheet" href="http://cdn.amazeui.org/amazeui/2.7.0/css/amazeui.min.css">
  <script src="http://cdn.amazeui.org/jquery/2.1.4/jquery.min.js"></script>
  <script src="http://cdn.amazeui.org/amazeui/2.7.0/js/amazeui.min.js"></script>
  <link rel="stylesheet" href="./demo.css"/>
  <style>
  .am-panel-bd img
  {
      width:100%;
      height:130px;
  }
  </style>
</head>
<body class="am-plugin">
<section class="amp-main">
  <div class="am-container amp-content">
    <h1><a name="masonry-jie-he-panel-shi-yong" class="anchor" href="#masonry-jie-he-panel-shi-yong"><span class="header-link"></span></a>Masonry 结合 Panel 使用</h1><hr>
<div id="js-container">
</div>
<div id="load-more"><button class="am-btn am-btn-primary">载入更多</button></div>
<script type="text/x-handlebars-template" id="tpl-list">
  {{#each Table}}
  <div class="msry-item">
    <section class="am-panel am-panel-default">
      <div class="am-panel-bd">
        <div><a href = ‘/ShowPhoto.aspx?photoid={{PhotoID}}‘ target=‘_blank‘><img src= ‘{{PhotoFileLocation}}Thumbnail/{{PhotoID}}.jpg‘/></a></div>
        <div>
         {{#if CName }}
            {{CName}}({{LName}})
            {{else}}
            {{FileName}}
         {{/if}}
        </div>
      </div>
    </section>
  </div>
  {{/each}}
</script>

<script src="./masonry.pkgd.min.js"></script>
<script src="./bundle.js"></script>
    <nav class="amp-pager">
    </nav>
  </div>
</section>
</body>
</html>

代码使用了Handlebars.js模板引擎

bumdle.js中的一部分调用代码

    (function (global) {
        ‘use strict‘;

        /* global: Masonry */

        var $ = (typeof window !== "undefined" ? window[‘jQuery‘] : typeof global !== "undefined" ? global[‘jQuery‘] : null);
        var Hanlebars = require(‘handlebars‘);

        $(function () {
            var pagenumber = 1;
            var $c = $(‘#js-container‘);
            var tpl = $(‘#tpl-list‘).html();
            var compiler = Hanlebars.compile(tpl);

            var getURL = function () {
                return ‘../handler/geositehandler.ashx?action=getphotolistbynode&pagenumber=‘ + pagenumber;
            };
            var getList = function (url) {
                $.getJSON(url).then(function (data) {
                     console.log(data);
                    var $html = $(compiler(data));
                    //console.log(compiler(data));
                    $c.append($html).masonry(‘appended‘, $html).masonry(‘layout‘);
                });
            };

            $c.masonry({
                itemSelector: ‘.msry-item‘
            });

            getList(getURL());

            $(‘#load-more‘).on(‘click‘, function () {
                pagenumber++;
                getList(getURL());
            });
        });

    }).call(this, typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})

原文地址:https://www.cnblogs.com/yaotome/p/9496540.html

时间: 2024-08-30 12:30:34

Masonry与AmazeUI结合实现瀑布流的相关文章

玩转Masonry JS库来实现瀑布流Web效果

工作项目中需要制作个Mobile上的Web App的展示,方便快捷访问和评价反馈.在展示页面能看到应用展示图,点击进入Web应用.我不是前端开发者,对HTML, CSS, JS这三剑客仅仅是略知一二.于是先规划了个简单的设计,感觉瀑布流的图片展示方式比较美观,同时布局的高度也一定灵活性.就按照Pinterest Android/IOS和花瓣Mobile Web App的目标开始实现. 第一天的成果是完成了基本的展示和链接.在iPhone模拟器上效果如下 : HTML页面代码snippet: 1

bootstrap+masonry.js写瀑布流

最近在用bootstrap写一个网站,其中有个图文展示的页面要用到瀑布流的效果.因为项目要求,项目要以bootstrap为基准,不准私自添加内联样式.内部样式,所以,自己写瀑布流就不行了,所以,根据要求,百度查找相关资料,看到masonry.js.个人认为这是一个非常好用的瀑布流插件.下面说一下我在引用的过程中遇到的问题,一开始我用bootstrap栅格系统布局,代码如下 <div class="row masonry"> <div class="col-x

masonry结合json 制作无限滚动的瀑布流

做前端这行的 能直接贴代码就直接贴代码了,不用多说什么别的 效果需要引入jquery和jquery.masonry.min.js这两个JS JS代码如下: $(document).ready(function(){ var $container = $('.space_main_con1 .con'); var animated; var i=1; //判断是否需要 masonry.js这个里面提供动画 如果是IE浏览器并且版本低于9.0 则添加动画 否则就用 css3的动画(css3的动画代码

jQuery瀑布流无限拖三大利器:masonry+imagesloaded+infinitescroll

瀑布流已经是几乎过时的技术了,不过对于很多想要快速实现它的朋友而言,却绝非易事,因为即使我们已经有很多现成的代码,却发现在自己的开发环境中无法快速得到自己想要的结果.就像我们现在要介绍的三大利器(masonry+imagesloaded+infinitescroll)即使它们是如此有效,却在马上要使用的时候让我们拿着如烫手山芋班很难真正达到我们想要的效果. 下面,我们从其原理来讲解它们的使用,以帮助你更好的发挥它的功效.但为了快速实现,我们不讲解它们的全部内容. 1. 合理的HTML布局是问题的

Masonry 瀑布流插件使用

网址:http://masonry.desandro.com/ 用于手机网页 效果: HTML: <section id="con_2" class="mt-5"> <!-- 用来缓冲图片高度 --> <div class="c2-hide clearfix"><ul class="c2h-list"></ul></div> <ul class=&q

瀑布流插件|jquery.masonry|使用demo

Maonsry+Infinite-Scroll实现滚动式分页,网上有很多,这里只说: 瀑布流插件的一个基本使用,附上基本功能的demo <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jquery.masonry的跑通demo</title> <script type=

图片瀑布流

前言 FineUI控件库发展至今已经有 5 个年头,目前论坛注册的QQ会员 5000 多人,捐赠用户 500 多人(捐赠用户转化率达到10%以上,在国内开源领域相信这是一个梦幻数字!也足以证明FineUI旺盛的生命力!).在这 5 年七年,FineUI总共发布了 100 多个版本!也积攒了大量的典型案例. 然而一直以来,FineUI的典型案例都是在论坛上以帖子的形式进行展示,没有一个集中展示的地方.今天我们就使用前段时间比较流行的瀑布流来解决FineUI典型案例的展示问题.最终的显示效果如下图所

iOS开发-UICollectionView实现瀑布流

关于瀑布流的实现网上有很多种解法,自定义控件,TableView+ScrollView,UICollectionView是iOS6发布之后用于展示集合视图,算起来已经发布三年左右了,不过知识点是不变的,集合视图提供了一个更优雅的方式去展示图片或者文字信息.UICollectionView与UITableView相似,UICollectionViewController与UITableViewController都负责视图,存储需要的数据,并且能处理数据源与委托协议. 简单瀑布流 首先来看一个简单

jquery实现无限滚动瀑布流实现原理

现在类似于pinterest这类的表现效果很火,其实我比较中意的是他的布局效果,而不是那种瀑布流. 虽然我不是特别喜欢这种瀑布流的表现样式,但是还是写了几篇关于无限滚动瀑布流效果的文章,Infinite scroll+Masonry=无限滚动瀑布流,infinite-scroll-jquery滚动条(下拉)加载数据插件之类的文章.可能是我表达描述不是很详细清楚,所以好多朋友看了不是很清楚,并发信给我求解释.所以有了今天这篇文章. 其实早在:十几款jquery无限滚动插件这 篇文章中我就提到过这种