首页 > 中企资讯

一个超详细vue无限滚动vue-infinite-scroll插件的配置及使用详解

一个超详细vue无限滚动vue-infinite-scroll插件的配置及使用详解

开发中总会遇到这种下拉加载的设计方案,Vue实现下拉加载最佳方案自然是使用vue-infinite-scroll来实现。接下来我们一起看下它的配置及使用方式。

首先我们先了解下他的配置参数:

v-infinite-scroll="loadMore"表示回调函数是loadMore infinite-scroll-disabled="busy"表示由变量busy决定是否执行loadMore,false则执行loadMore,true则不执行,注意,busy表示繁忙,繁忙的时候是不执行的。 infinite-scroll-distance="10"这里10决定了页面滚动到离页尾多少像素的时候触发回调函数,10是像素值。一般情况下会在页尾做一个几十像素高的“正在加载中...”,这样的话,可以把这个div的高度设为infinite-scroll-distance的值即可。infinite-scroll-immediate-check 默认值为true,该指令表示,应该在绑定后立即检查busy的值和是否滚动到底。假如你的初始内容高度不够,不足以填满可滚动的容器的话,你应设为true,这样会立即执行一次loadMore,会帮你填充一些初始内容。 infinite-scroll-listen-for-event 当事件在Vue实例中发出时,无限滚动将再次检查。 infinite-scroll-throttle-delay 检查busy的值的时间间隔,默认值是200,因为vue-infinite-scroll的基础原理是,vue-infinite-scroll会循环检查busy的值,以及是否滚动到底,只有当:busy为false且滚动到底,回调函数才会执行安装vue-infinite-scroll

npm install vue-infinite-scroll --save在Vue项目中引入 vue-infinite-scroll

你可以选择全局引入:

import infiniteScroll from 'vue-infinite-scroll'Vue.use(infiniteScroll)或者在单个组件中使用:

import infiniteScroll from 'vue-infinite-scroll'export default { directives: { infiniteScroll }}在实际开发组件中的调用

js部分:

为了便于测试可以使用官网案例进行演示:

<div v-infinite-scroll="loadMore" infinite-scroll-throttle-delay="500" infinite-scroll-disabled="busy" infinite-scroll-distance="10"> <div v-for="item in data" :key="item.index">{{item.name}}</div></div>data () { return { count: 0, data: [], busy: false } },methods: { loadMore: function() { this.busy = true setTimeout(() => { for (var i = 0, j = 10; i < j; i++) { this.data.push({name: this.count++ }) } console.log(this.data) this.busy = false }, 1000) } }注意:

如果要用数据对容器进行填充,那么必须设置容器高度 也可以是屏幕高度,不然无法触发loadMore事件在进行异步请求之前,需要调用this.busy= true, 数据请求完成后 再设置 this.busy = false(放在axios请求的外面,避免不断重复加载的现象)

展开
佳能即将发布7500万像素EOSR,单反相机5DIV或成绝唱

近日,佳能7500万像素EOSR无反相机再次被知情人爆料,据介绍新版EOSR将搭载全新传感器,充分发挥优秀的RF镜头优势将高像素高画质推至高峰,并且已经有部分摄影师拿到工程样机进行测试。

据早前媒体报道本次新款EOSR还具备双卡槽设计、新增背部机身摇杆、新增传感器防抖与镜头防抖技术,共同组成“全光学IS”系统,从而提供更好的画面防抖效果,由于本次佳能采用全新的CMOS传感器设计,大家诟病的宽容度问题希望可以得到解决。虽然这台相机目前看性能应该非常优秀,但机身价格预计也是非常华丽,另外支持这台相机背后的设备也会变相升级,又是一笔不小的费用。

从另外一个角度去看佳能整体业务确实偏向于微单更多,目前佳能全部精力投入在RF镜头的开发,新版EOSR技术攻坚。

专业单反业务目前仅仅依靠2016年发布的5DIV在勉强支撑,随着2020年的到来佳能最后一款专业级单反1DX markIII发布,将为单反时代画上句号!

展开
一个高性能js动画库velocity.js简介

一、为什么是velocity不是jquery

时下,如何快速制作js动效,许多人可能会首先想到使用jquery。jquery的就是如此流行。使用jquery制作的各种动效在网络上也非常丰富。jquery的优点不言而喻,简单易用,高效开发。但要知道jquery动画性能并不是最优的。因为jquery想要实现的目标太多,动画性能上就不可避免做出妥协。因此要制作高性能js动画,可能不得不放弃jquery,转而使用原生js制作动画。那有没有一种js高性能动效库,既像jquery一样简单易用,动画又高性能?这就是velocity.js动画库了。

二、velocity的优点

1、Velocity 是一个简单易用、高性能、功能丰富的轻量级JS动画库。它能和 jQuery 完美协作,并和$.animate()有相同的 API,但它不依赖 jQuery,可单独使用。 Velocity 不仅包含了 $.animate() 的全部功能, 还拥有:颜色动画、转换动画(transforms)、循环、 缓动、SVG 动画、和 滚动动画 等特色功能。2.也有几十种类似animate.css的预定义动画api3.支持自定义动效,拼装队列动效等等4.动画回调 比如 Begin & Complete & Progress 回调函数

三、velocity的使用

1、velocity的引入

可以使用script标签引入

<script src="../lib/velocity.min.js"></script>

也可以通过npm安装

npm install velocity-animate

2、Velocity语法

Velocity使用和jquery相同的语法。换句话说,如果你熟悉jquery的animate()函数,那么你只需把animate()语法套用在velocity()就行。

Jquery:

$(选择器).animate();

Velocity:

$(选择器).velocity();

Velocity参数用法

$element.velocity({

width: "500px", // 动画属性 宽度到 "500px" 的动画

property2: value2 // 属性示例

}, {

/* Velocity 动画配置项的默认值 */

duration: 400, // 动画执行时间

easing: "swing", // 缓动效果

queue: "", // 队列

begin: undefined, // 动画开始时的回调函数

progress: undefined, // 动画执行中的回调函数(该函数会随着动画执行被不断触发)

complete: undefined, // 动画结束时的回调函数

display: undefined, // 动画结束时设置元素的 css display 属性

visibility: undefined, // 动画结束时设置元素的 css visibility 属性

loop: false, // 循环

delay: false, // 延迟

mobileHA: true // 移动端硬件加速(默认开启)

});

简单点就是:

$element.velocity(

{css参数列表},

{动画配置项}

)

其他写法:

$element.velocity({css参数列表 }, dalay延迟,easing缓动效果, function回调函数);

示例:

$element.velocity({ width: "50px" }, 1000);

$element.velocity({ width: "50px" }, 1000, "swing");

$element.velocity({ width: "50px" }, "swing");

$element.velocity({ width: "50px" }, 1000, function() {});

这里特别讲解一个非常有趣的用法,就是动画效果原路返回。如果我们做了一个比较炫酷或者比较复杂的动画效果,然后需要制作动画原路返回的效果,只需如此:

$element.velocity("reverse");

Velocity作者做出的说明是,velocity会自动记录下动画执行的路径、时间以及效果等,然后会按动画原效果返回。也就是说,不管你动画效果设计得再复杂,如果要动画原路返回,只需一句代码,是不是很酷?继续关注源码时代,更多技术文。

展开

声明:本文来源于网络,如有侵权请联系客服删除

TOP