公司新项目做了一个关于图片的板块,网上找了一些瀑布流插件都不是很适合自己,于是就自己造轮子写一个,并封装成插件github

于是就想分享一下,主要是为了更好的学习与记忆。

如果大家进来了,希望能给我github点个免费star,你轻轻的来,不要悄悄的走嘛。感谢大佬- -

下面介绍一下(也可以去github看)

jquery-waterfall

  • 一款简单jq插件,配载es6语法的竖向瀑布流

插件特点:

  • 数据灵活,可以后台请求数据载入页面也可以直接在html中加入元素,一般放第一页
  • 同个页面可以放置多个,使用tab切换无刷新
  • 页面滚动至底部前自动请求加载数据
  • 数据底部动态生成加载提示或已加载结束
  • 可配置是否适应resize,通用pc到手机响应式
  • 自定义瀑布流元素之间间距,内容根据样式宽度自适应放入数量
  • es6语法promise函数,保证图片加载后布局

插件依赖

  • jQuery 2.1.4
  • 插件环境es6语法,浏览器中需要babel转义

使用方法

  1. 在jquery.js后引入
  2. 自定义瀑布流容器,设置初始高度,需要相对定位
  3. 自定义瀑布流元素,定义宽度与默认样式,高度根据图片自适应(默认class="item")
  4. 容器调用插件方法

// 接受参数
/*
** item: '.item', 瀑布流元素类名
** spaceBetween: 10, 元素间距
** resize: true, 是否根据窗口自适应
** checkNav: '', 这边是当有tab切换,tab元素父容器
** ajaxData: null, 滚动加载数据自定义函数,处理数据方法等,自定义方便使用
** tipObj: { 动态加载数据底部提示框
tipDom: '#no-data',
text0: '已经到底啦~',
text1: '↓ 下拉加载更多',
}, */ // ajaxData: fn(success) ,这里回调函数接受一个函数参数,数据获取成功需要主动调用一下
// 如果有数据 success(str, 1), 没有数据success('', 0)
// str 是你这里处理过返回瀑布流元素字符串 // 举例 // 瀑布流元素
let template = `
<li class="item" data-id="{ id }">
<a href="{ url }" title="{ title }">
<img src="{ thumb }" title="{ title }">
<div class="mask">
<div class="img-operate">
<span class="collect"><i class="icon-collect"></i></span>
<span class="download-other fr">源文件</span>
<span class="download-jpg fr">原图</span>
</div>
<div class="img-title common_ovh">{ title }</div>
</div>
</a>
</li>`;
let curPage = 2, filterData = { 一些数据 }; // 后台获取数据接口方法
function getListAjax(callback) {
let data = filterData;
data.page = curPage; $.ajax({
url: '/api/get_photo_list',
type: 'POST',
data: data,
})
.done(function(res) {
let str = "";
if(res.code == 200) {
$.each(res.data, function(index, el) {
str += template
.replace("{ thumb }", el.thumb)
.replace("{ id }", el.id)
.replace("{ url }", el.url)
.replace(/{ title }/g, el.title)
}); curPage++;
}
callback(res, str)
})
.fail(function(error) {
console.log(error);
})
}; 容器.toWaterfall({
ajaxData: function(success) {
getListAjax(function(res, str) {
if(res.code == 200) {
$bigSmall.append($(str));
success(str, res.next);
}else {
success('', 0);
}
})
}
})

效果图

项目地址在www.macdown.com 素材分支里

自定义基于jquery竖向瀑布流插件的更多相关文章

  1. jquery.masonry瀑布流插件的4个使用步骤

    1.分别加载jquery插件与jquery.masonry插件两个文件 下载jquery插件:http://jquery.com也可以引用google的cdn外部jquery核心库JS文件下载jque ...

  2. 基于jQuery封装一个瀑布流插件

    /*封装一个瀑布流插件*/ (function($){ $.fn.WaterFall = function(){ /*这是你初始化 调用这个方法的时候的 那个jquery选着到的dom对象 this* ...

  3. 一款很实用的jQuery鼠标悬浮有动画效果的响应式瀑布流插件

    一款很实用的jQuery鼠标悬浮有动画效果的响应式瀑布流插件 在线预览 下载地址 实例代码 <!doctype html> <html lang="zh"> ...

  4. 利用jQuery来扩展一个瀑布流插件

      简单了解jQuery.fn.extend() jQuery.fn.extend()函数用于为jQuery扩展一个或多个实例属性和方法(主要用于扩展方法). (截图来自jQuery文档) 为了更清晰 ...

  5. 8款实用的Jquery瀑布流插件

    1.网友Null分享Jquery响应式瀑布流布局插件 首先非常感谢网友Null的无私分享,此作品是一款响应式瀑布流布局Jquery插件,网友Null增加了一个屏幕自适应和响应式,响应式就是支持智能手机 ...

  6. jQuery插件之-瀑布流插件

    jquery.wookmark.js 一个实现瀑布流自适应宽度布局的jQuery插件—jquery.wookmark.js , wookmark使用非常简单到只需要一句代码就能实现,除此之外,当页面宽 ...

  7. jQuery动态网格瀑布流插件Masonry

    Masonry是一款非常强大的jQuery动态网格布局插件,可以帮助开发人员快速开发瀑布流界面效果.和CSS中float的效果不太一样的地方在于,float先水平排列,然后再垂直排列,使用Masonr ...

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

    Maonsry+Infinite-Scroll实现滚动式分页,网上有很多,这里只说: 瀑布流插件的一个基本使用,附上基本功能的demo <html> <head> <me ...

  9. jQuery瀑布流插件masonry

    项目要做荣誉证书的排版,宽度是统一的,但是高度不一致 采用瀑布流的效果来实现 默认先实现前15张,点击按钮再加载全部剩下的数据 效果图 首先是html部分,写好样式 <!-- 荣誉资质 --&g ...

随机推荐

  1. 你应该这么理解TCP的三次握手和四次挥手

    前言: TCP协议是计算机的基础,他本身是一个非常非常复杂的协议. 本文只是蜻蜓点水,将从网络基础以及TCP的相关概念介绍开始,之后再将三次握手,四次挥手这些内容来阐述. 最后介绍一些常见问题,并给出 ...

  2. 发现一个好玩的东西 Web Scraper

    是一个 Chrome 的扩展程序,机智的小爬虫

  3. Java匹马行天下——开篇

    个人感言: 匹马行天下是我高中时候看过一部叫<九鼎记>的小说中的其中一个大章节标题,在整个这一章中,讲的是是主人公滕青山历经艰险,又心如磐石,一心修行,最后巅峰归来的故事.现在回想,依旧心 ...

  4. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 —9.块存储服务(cinder)部署配置

    块存储服务部署相关块存储服务(cinder)为实例提供块存储.存储的分配和消耗是由块存储驱动器,或者多后端配置的驱动器决定的.还有很多驱动程序可用:NAS/SAN,NFS,ISCSI,Ceph等.典型 ...

  5. Linux - 修改内核启动顺序及删除无用内核

    现象: CentOS7开机启动界面显示多个内核选项 原因: 正常情况下,有两个启动项,一个是"正常启动",另一个是"救援模式启动"(rescue). 如果启动项 ...

  6. druid的关键参数+数据库连接池运行原理

      minEvictableIdleTimeMillis :连接保持空闲而不被驱逐的最长存活时间.(默认30分钟) Destory线程中如果检测到当前连接的最后活跃时间和当前时间的差值大于minEvi ...

  7. 测试工具之RobotFramework界面基本功能使用

    安装好RobotFramework后,直接在运行或者命令行中执行ride.py即可启动RF 启动完成后的界面如下: 界面很简洁,然后我们开始点击file并创建project: 接下来右键project ...

  8. linux日常运维常用命令

    ---查看端口占用 netstat -ap | grep 8000 ---重启nginx sudo /usr/sbin/nginx -c /usr/local/nginx/conf/nginx.con ...

  9. 浅析mpvue的事件代理系统

    前言 说来惭愧,用 mpvue 大半年,小程序快一年了,居然还试图用 event.stopPropagation 方法阻止事件冒泡,也是有点蠢.痛定思痛,写篇博文来认真捋一捋小程序的事件系统和 mpv ...

  10. TCP/IP 笔记 - 传输控制协议

    与UDP不同,TCP提供面向连接的.可靠的.基于字节流的传输层协议,且提供差错纠正. TCP传输的概念 对与分组丢失和比特差错的处理方法,最直接的方法是重发分组,直到它被正确接收. 这需要一种方法来判 ...