【转】超酷的 mip-infinitescroll 无限滚动(无限下拉)

写在前面

无限滚动技术(又叫做无限下拉技术)被广泛应用于新闻类,图片预览类网站。对用户来讲,使用无限滚动的页面有源源不断的信息可以预览,增加用户在页面的停留时长。技术上原理也很简单,在页面加载时加载一部分内容,当用户浏览到底部时想后端请求更多内容,显示在页面上。因此,继 mip-list 列表组件之后,为提升用户体验,开发了 mip-infinitescroll 无限滚动组件。

简介

mip-infinitescroll 是无限滚动(别名:无限下拉)组件,就像它的名字一样,它会监听指定 DOM 节点(固定为 document.body)的滚动事件,当页面滚动到底部的时候,会通过接口去异步请求数据 list,然后根据用户指定的模板渲染成 html, append 到指定的容器中。

mip-infinitescroll 初始化的时候会先请求一次数据,然后渲染到页面上,此时,如果数据没有铺满屏幕,则会继续请求数据直到铺满屏幕。

mip-infinitescroll 没有做任何样式限制,开发者可以根据需求对组件在页面中的样式自行完善,也就是说,你想让它长啥样,它就长啥样。

示例

如下是 mip-infinitescroll 的一个效果展示,可以看到在滑动页面的过程中,页面底部的提示信息是 loading,当全部数据加载完毕,页面底部的提示信息展现为 over!

属性及子节点

要想在页面中添加一个 mip-infinitescroll 组件,有一些属性和其子节点是必须要有的,还可以覆盖 mip-infinitescroll 一些配置参数达到更完美的效果。

  • data-src 属性(必选项)

    是异步请求数据的接口,需要支持 https;接口 callback 需要设置为 ‘callback’;异步接口返回的数据需要满足如下格式:

    {"statsu": 0,"data": {"items":[]}
    }
    • status 0 表示请求成功

    • items: [] 是需要渲染的数据

  • .mip-infinitescroll-results 子节点(必选项)

    是结果容器,每次异步请求数据之后,都会将对应的 html append 到这个容器中。例如给 div 加上 mip-infinitescroll-results class,那么这个 div 就是结果容器,每次请求的数据渲染后的 html 都会 append 到这个 div 中。

  • .mip-infinitescroll-loading 子节点(必选项)

    提示信息容器,在异步请求时、请求失败以及请求成功三种状态会有三种对应的提示信息。如果不设置则看不到提示信息。例如给 div 加上 mip-infinitescroll-loading class,那么这个 div 就是提示信息的容器。

  • template 属性(非必选项)

    与模板 id 对应,用来标识所采用的模板,默认取组件子节点中的 template 模板。

  • script[type="application/json"] 子节点(非必选项)

    <script type="application/json">{"rn": 15,                  // results number 想要显示的结果总数"prn": 3,                  // page result number 每页数量"pn": 1,                   // page number 页码"pnName": "pn",            // 表示页码的变量名"bufferHeightPx": 40,      // 缓冲高度 , 距离底部一定高度时提前请求数据"loadingHtml": "loading",  // loading 状态提示信息"loadFailHtml": "failed",  // 请求失败 状态提示信息"loadOverHtml": "over!"    // 请求成功 状态提示信息}
    </script>

MIP 官网文档 mip-infinitescroll 无限滚动 中对组件各个参数的说明、使用以及默认值等进行了详细的说明。

使用

首先,构造一个符合 MIP 规范的页面;然后,添加 mip-infinitescroll 组件脚本及 html 标签;一个简单的 demo 就完成了。

<!DOCTYPE html>
<html mip><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"><link rel="stylesheet" type="text/css" href="https://c.mipcdn.com/static/v1/mip.css"><!--canonical 中的链接填写对应的非 mip 页地址--><link rel="canonical" href="https://www.mipengine.org/test_xxx.html"><title>Hello MIP</title><style mip-custom></style></head><body>Hello MIP!<mip-infinitescroll data-src="https://your/ajax/api" template="myTemplate"><script type="application/json">{"rn": 15,"prn": 3,"pn": 1,"pnName": "pn","bufferHeightPx": 40,"loadingHtml": "loading","loadFailHtml": "failed","loadOverHtml": "over!"}</script><template type="mip-mustache" id="myTemplate"><li><mip-img
                        layout="responsive"width="600"height="120"src="{{img}}"></mip-img><p>{{number}}张图 </p></li></template><div class="mip-infinitescroll-results"></div><div class="mip-infinitescroll-loading"></div></mip-infinitescroll><script src="https://c.mipcdn.com/static/v1/mip.js"></script><script src="http://c.mipcdn.com/static/v1/mip-infinitescroll/mip-infinitescroll.js"></script><script src="http://c.mipcdn.com/static/v1/mip-mustache/mip-mustache.js"></script></body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535864.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB(二):MongoDB的安装

这里以OSX系统为例&#xff0c;window和linux可以参考https://www.runoob.com/mongodb/mongodb-linux-install.html 1、我们使用 curl 命令来下载安装&#xff1a; # 进入 /usr/local cd /usr/local# 下载 sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_…

Postman接口测试(超详细整理)

常用的接口测试工具主要有以下几种 Postman&#xff1a;简单方便的接口调试工具&#xff0c;便于分享和协作。具有接口调试&#xff0c;接口集管理&#xff0c;环境配置&#xff0c;参数化&#xff0c;断言&#xff0c;批量执行&#xff0c;录制接口&#xff0c;Mock Server, …

【转】AB实验设计思路及实验落地

这篇文章会讨论&#xff1a; 1. 在什么情况下需要做 AB 实验 2. 从产品/交互角度&#xff0c;如何设计一个实验 3. 前端工程师如何打点 4. 如何统计数据&#xff0c;并保证数据准确可信 5. 如何分析实验数据&#xff0c;有哪些数据需要重点关注 6. 附&#xff1a;如何搭建…

【转】mip-semi-fixed 走走又停停

写在前面 MIP 中悬浮元素的特殊情况 其实组件上线已经有一段时间了&#xff0c;最开始看到这个需求是站长提交了一个这中功能的组件过来&#xff0c;不过看过代码立刻就想到了 MIP 页面的特殊性&#xff1a;从结果页打开的 MIP 页面&#xff0c;是嵌套在一个 iframe 之中的。…

【转】百度站长平台MIP引入工具使用心得

MIP引入主动推送流程 对于 MIP 站点改造好了&#xff0c;我们如何提交数据&#xff0c;并且 MIP 提交后&#xff0c;我们能得到哪些数据的反馈&#xff0c;在这里简单的写一篇文章&#xff0c;说一下。 改造 MIP&#xff0c;我们一般是添加了一个二级域名站点进行改造&#x…

Hadoop之HDFS应用

1、通过http://127.0.0.1:8088/即可查看集群所有节点状态&#xff1a; 2、访问http://localhost:9870/即可查看文件管理页面&#xff08;在3.0.0中在之前的版本中文件管理的端口是50070&#xff0c;替换为了9870端口&#xff09;&#xff1a; ————进入文件系统 ————…

MIP ACCESS细节剖析

什么是 MIP ACCESS MIP ACCESS 由百度 MIP 团队开发的一种页面访问权限控制机制&#xff0c;能够允许网页发布者在页面元素中定义内容标记&#xff0c;并结合用户访问情况进行综合评价&#xff0c;从而展现或隐藏页面中内容&#xff0c;直至用户登录、订阅或付费后才能够查看隐…

Linux环境下Flume的安装

1、在官网http://flume.apache.org/download.html下载flume的压缩包 2、解压到指定位置并重命名 tar -zxvf apache-flume-1.9.0-bin.tar.gz3、配置环境并生效 #vi ~/.bashrc export FLUME_HOME/usr/local/APP/flume export PATH$PATH:$FLUME_HOME/bin #使变量设置生效 #sour…

MIPCache 域名升级

一、MIPCache URL 是什么 举个例子&#xff0c;MIP 官网的 URL 为&#xff1a; https://www.mipengine.org 对应的 MIPCache 的 URL 为&#xff1a; https://mipcache.bdstatic.com/c/s/www.mipengine.org 所谓 MIPCache URL 是经过 MIP-Cache CDN 缓存后的 MIP 页面地址&…

Flume监听端口,输出端口数据案例

1、在flume目录下新建/myconf目录,并在目录下新建socket-console.conf 文件&#xff01; mkdir myconf cd myconf touch socket-console.conf2、编辑文件vim socket-console.conf&#xff0c;添加以下内容&#xff1a; # 定义这个agent中各组件的名字 a1.sources r1 a1.sink…

MIP 移动网页加速器视频教程全新发布

MIP (Mobile Instant Pages - 移动网页加速器) 是百度推出的开源项目&#xff0c;用于移动端页面加速。MIP 技术通过优化浏览器资源加载&#xff0c;前端代码执行及 CDN 缓存加速来加速页面&#xff0c;打造秒开的页面浏览体验。目前&#xff0c;有 5000 多家站点的 MIP 页已经…

MIP 技术进展月报:储存功能全新上线,MIP-Cache域名升级,校验更严谨

集 * 瞬时触达用户、高转化率、炫酷闪电标、优质展现形式 * 等诸多特性为一体的 MIP 页面吸引了众多站点进行改造。为了更好地服务于广大站长&#xff0c;更快地倾听站长们的声音&#xff0c;MIP 技术团队特推出《MIP 技术进展月报》&#xff0c;欢迎大家对 MIP 技术提建议&…

WebP 在减少图片体积和流量上的效果如何?MIP技术实践分享

作者 | Jackson 编辑 | 尾尾 不论是 PC 还是移动端&#xff0c;图片一直占据着页面流量的大头&#xff0c;在图片的大小和质量之间如何权衡&#xff0c;成为了长期困扰开发者们的问题。而 WebP 技术的出现&#xff0c;为解决该问题提供了好的方案。本文将为大家详细介绍 WebP …

MIP技术进展月报第2期: 数据绑定,异步脚本加速

一、 功能更新 1. mip-bind 上线&#xff0c;实现复杂交互 MIP bind 双向绑定机制和组件上线&#xff0c;提供双向绑定的特性&#xff1b;能够允许页面实现数据驱动功能&#xff0c;开发者可以在任意场景修改数据&#xff0c;并驱动页面元素变动。 MIP 小姐姐画外音&#xf…

Hadoop的安装与配置——搭建完全分布式集群

一、搭建集群 1、准备服务器&#xff08;这里以我的3台Centos7为例&#xff09; 1个主节点&#xff1a;Carlota1(192.168.33.21)&#xff0c;2个子节点&#xff1a;Carlota2(192.168.33.22)&#xff0c;Carlota3(192.168.33.23) 2、配置主节点名 在主节点命令行输入&#x…

HTTP 视频怎么在 MIP 页面中使用?

在 MIP 中&#xff0c;一些资源的使用需要支持 HTTPS&#xff0c;视频就是其中一种。但目前大部分站点的视频资源都还是 HTTP 的资源&#xff0c;无法在百度 MIP 搜索结果中直接使用&#xff0c; mip-video 视频组件针对 HTTP 的视频资源采用跳到一个 HTTP 的播放页面进行播放&…

MIP 技术月报(4月):支持熊掌号登录;优化页面悬浮元素

之前由MIP团队维护的《移动 Web 加速技术月报》从本期开始&#xff0c;正式升级为《MIP 技术月报》&#xff0c;与以往不同的是&#xff0c;《MIP 技术月报》将会与大家分享包含移动加速技术以外的其他移动应用开发的技术&#xff0c;从移动用户体验、开发体验出发来分享 MIP 的…

2017 到 2018,PWA 技术到底经历了什么

高磊 OpenWeb开发者 1周前 在 GMTC 2018 全球大前端会议举办期间&#xff0c;高磊担任主题演讲嘉宾&#xff0c;并担任 PWA 专场出品人。作为有近 10 年 Web 前端技术开发、管理经验的开发者&#xff0c;高磊一直关注着 PWA 技术的发展。 2017年 6月10日&#xff0c;GMTC 201…

CentrOS7静默安装oracle11g

最近要做一个用ogg实现oracle到kafka的增量数据实时同步&#xff0c;但是Oracle就让我装了好久&#xff0c;这里来记录一下安装oracle过程。 1.建立swap分区 创建充当swap分区的文件&#xff0c;文件大小就是要增加的swap大小&#xff0c;of是文件位置&#xff0c;bs为单位&a…

MIP 网站中熊掌号登录

标题内容类型通用支持布局responsive,fixed-height,fill,container,fixed所需脚本https://c.mipcdn.com/static/v1/mip-mustache/mip-mustache.js https://c.mipcdn.com/static/v1/mip-login-xzh/mip-login-xzh.js 注意&#xff1a;使用该组件必须在引用本组件链接前引用 <…