经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » jQuery » 查看文章
自定义基于jquery竖向瀑布流插件
来源:cnblogs  作者:前端MRzhu  时间:2019/3/6 9:13:34  对本文有异议

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

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

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

github

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

jquery-waterfall

waterfall with jquery prototype function

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

插件特点:

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

插件依赖

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

使用方法

  1. 在jquery.js后引入
  2. 自定义瀑布流容器,设置初始高度,需要相对定位
  3. 自定义瀑布流元素,定义宽度与默认样式,高度根据图片自适应(默认class="item")
  4. 容器调用插件方法
  1. // 接受参数
  2. /*
  3. ** item: '.item', 瀑布流元素类名
  4. ** spaceBetween: 10, 元素间距
  5. ** resize: true, 是否根据窗口自适应
  6. ** checkNav: '', 这边是当有tab切换,tab元素父容器
  7. ** ajaxData: null, 滚动加载数据自定义函数,处理数据方法等,自定义方便使用
  8. ** tipObj: { 动态加载数据底部提示框
  9. tipDom: '#no-data',
  10. text0: '已经到底啦~',
  11. text1: '↓ 下拉加载更多',
  12. },
  13. */
  14. // ajaxData: fn(success) ,这里回调函数接受一个函数参数,数据获取成功需要主动调用一下
  15. // 如果有数据 success(str, 1), 没有数据success('', 0)
  16. // str 是你这里处理过返回瀑布流元素字符串
  17. // 举例
  18. // 瀑布流元素
  19. let template = `
  20. <li class="item" data-id="{ id }">
  21. <a href="{ url }" title="{ title }">
  22. <img src="{ thumb }" title="{ title }">
  23. <div class="mask">
  24. <div class="img-operate">
  25. <span class="collect"><i class="icon-collect"></i></span>
  26. <span class="download-other fr">源文件</span>
  27. <span class="download-jpg fr">原图</span>
  28. </div>
  29. <div class="img-title common_ovh">{ title }</div>
  30. </div>
  31. </a>
  32. </li>`;
  33. let curPage = 2, filterData = { 一些数据 };
  34. // 后台获取数据接口方法
  35. function getListAjax(callback) {
  36. let data = filterData;
  37. data.page = curPage;
  38. $.ajax({
  39. url: '/api/get_photo_list',
  40. type: 'POST',
  41. data: data,
  42. })
  43. .done(function(res) {
  44. let str = "";
  45. if(res.code == 200) {
  46. $.each(res.data, function(index, el) {
  47. str += template
  48. .replace("{ thumb }", el.thumb)
  49. .replace("{ id }", el.id)
  50. .replace("{ url }", el.url)
  51. .replace(/{ title }/g, el.title)
  52. });
  53. curPage++;
  54. }
  55. callback(res, str)
  56. })
  57. .fail(function(error) {
  58. console.log(error);
  59. })
  60. };
  61. 容器.toWaterfall({
  62. ajaxData: function(success) {
  63. getListAjax(function(res, str) {
  64. if(res.code == 200) {
  65. $bigSmall.append($(str));
  66. success(str, res.next);
  67. }else {
  68. success('', 0);
  69. }
  70. })
  71. }
  72. })

效果图

效果图1

效果图1

原文链接:http://www.cnblogs.com/mrzll/p/10475664.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号