【转】超酷的 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,一经查实,立即删除!

相关文章

日常问题——Mac下新建目录报Read-only file system

问题描述&#xff1a; 今天在根目录下&#xff0c;新建目录时出现了Read-only file system提示为只读的错误。电脑最近并没有非正常关机之类可能导致文件损伤的操作&#xff0c;但是最近倒是进行了一次系统更新。 解决方案&#xff08;过程&#xff09;&#xff1a; 从系统更…

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_…

百度推出 MIP Baidu Path链接

在站长将站点 MIP 化时&#xff0c;需要关注 URL 的一共有三个&#xff1a;MIP URL, MIP-Cache URL 以及 MIP Baidu Path。 从 URL 说起 在互联网中&#xff0c;URL 定义页面的地址&#xff0c;每个 URL 对应一个页面。而 MIP URL 则是 MIP 页的原始地址&#xff0c;指向托管…

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

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

mip-link 组件功能升级说明

背景描述 某个页面被多少页面引用&#xff08;在其他页面上有指向这个页面的 a 标签&#xff09;&#xff0c;是搜索引擎判断这个页面价值的其中一个因子。这里的搜索引擎不只是指百度&#xff0c;还包括国内外其他的搜索引擎。 MIP 在最初设计 MIP url 跳转逻辑实现时&#…

日常问题——使用Xshell 连接虚拟机报错 Disconnected from remote host

问题描述&#xff1a; 使用Xshell进行连接虚拟机的操作时出现了Disconnected from remote host的错误&#xff01; 解决方案&#xff08;过程&#xff09;&#xff1a; 1、vim /etc/ssh/sshd_config 2、#UseDNS yes改为UseDNS no 3、重启service sshd restart 问题解决&…

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

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

简单实现MySQL数据实时增量同步到Kafka————Maxwell

任务需求&#xff1a;将MySQL里的数据实时增量同步到Kafka 1、准备工作 1.1、MySQL方面&#xff1a;开启BinLog 1.1.1、修改my.cnf文件 vi /etc/my.cnf [mysqld] server-id 1 binlog_format ROW1.1.2、重启MySQL,然后登陆到MySQL之后&#xff0c;查看是否已经修改过来: …

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

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

Mac使用Homebrew安装Kafka

1、使用brew install命令安装Kafka $ brew install kafka安装过程将依赖安装 zookeeper软件位置 /usr/local/Cellar/zookeeper /usr/local/Cellar/kafka配置文件位置 /usr/local/etc/kafka/zookeeper.properties /usr/local/etc/kafka/server.properties 备注&#xff1a;后…

广州站长沙龙 MIP 问题及答案

1. mip提交几个月时间了&#xff0c;生效量比较少&#xff0c;是什么原因&#xff1f; 答&#xff1a;提交 MIP 页面后&#xff0c;经过收录、校验、和生效三个步骤&#xff0c;才能在结果页看到闪电标。 1&#xff09;提交 URL 后&#xff0c;spider 会去抓取收录&#xff1…

日常问题——初始化Hive仓库报错com.google.common.base.Preconditions.checkArgument

问题描述&#xff1a; 初始化Hive仓库报错Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V 解决方案&#xff08;过程&#xff09;&#xff1a; com.google.commo…

【转】百度站长平台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;直至用户登录、订阅或付费后才能够查看隐…

HDFS常用Shell命令

1、-ls: 显示目录信息 hadoop fs -ls /2、-mkdir&#xff1a;在HDFS上创建目录 hadoop fs -mkdir -p /demo/test3、-moveFromLocal&#xff1a;从本地剪切粘贴到HDFS hadoop fs -moveFromLocal a.txt /demo/test/a.txt4、-appendToFile&#xff1a;追加一个文件到已经存在…

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 页已经…