自定义基于jquery竖向瀑布流插件
公司新项目做了一个关于图片的板块,网上找了一些瀑布流插件都不是很适合自己,于是就自己造轮子写一个,并封装成插件github
于是就想分享一下,主要是为了更好的学习与记忆。
如果大家进来了,希望能给我github点个免费star,你轻轻的来,不要悄悄的走嘛。感谢大佬- -
下面介绍一下(也可以去github看)
jquery-waterfall
- 一款简单jq插件,配载es6语法的竖向瀑布流
插件特点:
- 数据灵活,可以后台请求数据载入页面也可以直接在html中加入元素,一般放第一页
- 同个页面可以放置多个,使用tab切换无刷新
- 页面滚动至底部前自动请求加载数据
- 数据底部动态生成加载提示或已加载结束
- 可配置是否适应resize,通用pc到手机响应式
- 自定义瀑布流元素之间间距,内容根据样式宽度自适应放入数量
- es6语法promise函数,保证图片加载后布局
插件依赖
- jQuery 2.1.4
- 插件环境es6语法,浏览器中需要babel转义
使用方法
- 在jquery.js后引入
- 自定义瀑布流容器,设置初始高度,需要相对定位
- 自定义瀑布流元素,定义宽度与默认样式,高度根据图片自适应(默认class="item")
- 容器调用插件方法
// 接受参数
/*
** 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竖向瀑布流插件的更多相关文章
- jquery.masonry瀑布流插件的4个使用步骤
1.分别加载jquery插件与jquery.masonry插件两个文件 下载jquery插件:http://jquery.com也可以引用google的cdn外部jquery核心库JS文件下载jque ...
- 基于jQuery封装一个瀑布流插件
/*封装一个瀑布流插件*/ (function($){ $.fn.WaterFall = function(){ /*这是你初始化 调用这个方法的时候的 那个jquery选着到的dom对象 this* ...
- 一款很实用的jQuery鼠标悬浮有动画效果的响应式瀑布流插件
一款很实用的jQuery鼠标悬浮有动画效果的响应式瀑布流插件 在线预览 下载地址 实例代码 <!doctype html> <html lang="zh"> ...
- 利用jQuery来扩展一个瀑布流插件
简单了解jQuery.fn.extend() jQuery.fn.extend()函数用于为jQuery扩展一个或多个实例属性和方法(主要用于扩展方法). (截图来自jQuery文档) 为了更清晰 ...
- 8款实用的Jquery瀑布流插件
1.网友Null分享Jquery响应式瀑布流布局插件 首先非常感谢网友Null的无私分享,此作品是一款响应式瀑布流布局Jquery插件,网友Null增加了一个屏幕自适应和响应式,响应式就是支持智能手机 ...
- jQuery插件之-瀑布流插件
jquery.wookmark.js 一个实现瀑布流自适应宽度布局的jQuery插件—jquery.wookmark.js , wookmark使用非常简单到只需要一句代码就能实现,除此之外,当页面宽 ...
- jQuery动态网格瀑布流插件Masonry
Masonry是一款非常强大的jQuery动态网格布局插件,可以帮助开发人员快速开发瀑布流界面效果.和CSS中float的效果不太一样的地方在于,float先水平排列,然后再垂直排列,使用Masonr ...
- 瀑布流插件|jquery.masonry|使用demo
Maonsry+Infinite-Scroll实现滚动式分页,网上有很多,这里只说: 瀑布流插件的一个基本使用,附上基本功能的demo <html> <head> <me ...
- jQuery瀑布流插件masonry
项目要做荣誉证书的排版,宽度是统一的,但是高度不一致 采用瀑布流的效果来实现 默认先实现前15张,点击按钮再加载全部剩下的数据 效果图 首先是html部分,写好样式 <!-- 荣誉资质 --&g ...
随机推荐
- Internetworking
1 Introduction 所谓的InternetWorking就是将很多网络连接起来,那么在这种连接的网络下我们该如何传送封包呢? 2 IP and Routers 1 IP Datagram H ...
- 可在广域网部署运行的即时通讯系统 -- GGTalk总览(附源码下载)
(最新版本:V6.2,2019.01.03 .Xamarin移动端版本已经推出,包括 Android 和 iOS) GGTalk开源即时通讯系统(简称GG)是QQ的高仿版,同时支持局域网和广域网, ...
- Android开发 - 更"聪明"的申请权限方式
在Android6.0以后,很多权限需要动态申请,只有在用户点同意后,我们才能使用对应API,因此,正确申请权限就显得很重要. 常用方式 通常我们使用这种方式来判断权限状态: private stat ...
- linux配置防火墙和重启防火墙
1.在linux系统里面找到并打开编辑配置防火墙的文件,执行命令: vi /etc/sysconfig/iptables. 2.在上面打开的文件里面加入一下语句: -A INPUT -m state ...
- Flask中的模板语言jinja2
jinja2介绍 jinja2是Flask作者开发的一个模板系统,起初是仿django模板的一个模板引擎,为Flask提供模板支持,由于其灵活,快速和安全等优点被广泛使用. jinja2的优点 jin ...
- javaweb目录结构简介
以上图说明: bbs目录代表一个web应用 bbs目录下的html,jsp文件可以直接被浏览器访问 WEB-INF目录下的资源是不能直接被浏览器访问的 web.xml文件是web程序的主要配置文件 所 ...
- nrf52832 SDK 15.3.0 Flash 操作
debug中遇到的问题: 1,写入数据,读出来不对 2,看之前被人写的代码发现,读flash直接用的标准C库函数:memcpy,但是,写用的专门的flash写接口.所以,我这里两个疑问: A,写fla ...
- 【sping揭秘】14、@before @AfterThrowing
@before 基础模式,我们先直接看一下就可以了,比较简单,网上一堆... 不是我装逼哈,我学了那么久spring,aop的皮毛也就是网上的那些blog内容,稍微高级点的我也不会,这里跳过基础部分 ...
- interface21 - web - Log4jConfigListener(Log4j加载流程)
前言 最近打算花点时间好好看看spring的源码,然而现在Spring的源码经过迭代的版本太多了,比较庞大,看起来比较累,所以准备从最初的版本(interface21)开始入手,仅用于学习,理解其设计 ...
- AWS DevOps – 配合Jenkins和CodeDeploy实现代码自动化部署
AWS DevOps – 配合Jenkins和CodeDeploy实现代码自动化部署 Amazon ElastiCache 连接至 Redis 节点 通过 AWS Command Line Inter ...