浅谈Emergence.js 检测元素可见性的 js 插件

 更新时间:2017年11月18日 10:12:27   投稿:zx  
这篇文章主要介绍了浅谈Emergence.js 检测元素可见性的 js 插件,详细的介绍了Emergence.js安装和使用方法,具有一定的参加性,有兴趣的可以了解一下

Emergence.js 是一个轻量级,高性能的 JS 插件,用于检测和操作浏览器中的元素。

这个插件被设计为允许根据浏览器中的可见性对元素进行操作。它使开发人员可以自由使用自己的 CSS 或JS 来查看动画还是状态的改变。它利用 HTML5 数据属性而不是类来简化开发。Emergence.js 是同类型中最轻,最兼容的插件之一。

emergence.js 的特点

  1. 无需依赖其他组件
  2. 支持IE8 +和所有现代浏览器
  3. 压缩后只有1kb

安装

Emergence.js 的安装非常的简单。npm的安装方法如下:

npm install emergence.js

另外我们也可以直接下载它,在html文件中引入Emergence.js即可。

<script src="path/to/emergence.min.js"></script>
<script>
 emergence.init();
</script>

如何使用

添加 data-emergence="hidden" 到您想要观看的任何元素:

< div class = “ element ” data-emergence = “ hidden ” > </ div >

当元素在视口内变得可见时,属性将变为 data-emergence="visible" 。现在,您可以利用CSS来动画元素:

.element [ data-emergence = hidden ] {
 / *隐藏状态* /
}
.element [ data-emergence = visible ] {
 / *可见状态* / 
}

自定义选项

Emergence.js有许多选项可以自定义。下面是默认值:

emergence.init({
 container: window,
 reset: true,
 handheld: true,
 throttle: 250,
 elemCushion: 0.15,
 offsetTop: 0,
 offsetRight: 0,
 offsetBottom: 0,
 offsetLeft: 0,
 callback: function(element, state) {
 if (state === 'visible') {
  console.log('Element is visible.');
 } else if (state === 'reset') {
  console.log('Element is hidden with reset.');
 } else if (state === 'noreset') {
  console.log('Element is hidden with NO reset.');
 }
 }
});

选项说明

container:容器,默认情况下,元素的可见性将由窗口的视口尺寸和X / Y滚动位置(设置为window)确定。但是,可以将其更改为自定义容器。例如:

var customContainer = document.querySelector('.wrapper');
// www.xttblog.com
emergence.init({
 container: customContainer
});

Throttle:是一种防止与滚动和调整事件大小相关的性能问题的方法。油门将创建一个小的超时,并在事件过程中每隔一定的毫秒量稳定地检查元素的可见性。默认是250。

reset:确定数据属性状态是否在显示后重置。false如果您希望元素即使在离开视口后仍保持其显示状态,请将其重置为。默认是true。

handheld:Emergence将为大多数手持设备型号(如手机和平板电脑)进行检查。设置false为时,插件将不会在这些设备上运行。默认是true。

elemCushion:元素坐标将决定在视口内需要多少元素才算“可见”。0.5的值将等于50%的元素需要可见。默认是0.15。

offsetTop, offsetRight, offsetBottom, offsetLeft:在视口的任何边上提供偏移量(以像素为单位)。如果您有一个固定的组件(例如标题),那么这非常有用,您可以为标题的高度偏移相同的值。100应用于的值offsetTop将意味着元素只有在距离视口顶部大于100像素时才会被视为可见。所有的默认值是0。

callback:用于提供回调来确定元素何时可见,隐藏和重置。可能的状态是visible,reset和noreset。

另外Emergence.js还提供了两个高级方法emergence.engage();和emergence.disengage();他们的作用刚好相反。

Emergence.js依赖于以下浏览器API:querySelectorAll 

为了支持IE8,请确保标准模式。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • node.js的事件机制

    node.js的事件机制

    本文主要介绍了node.js的事件机制,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 原生js实现滑块区间组件

    原生js实现滑块区间组件

    这篇文章主要为大家详细介绍了js实现滑块区间组件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • uni-app如何实现增量更新功能

    uni-app如何实现增量更新功能

    这篇文章主要介绍了uni-app如何实现增量更新功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Typescript高级类型Record,Partial,Readonly详解

    Typescript高级类型Record,Partial,Readonly详解

    这篇文章主要介绍了Typescript高级类型Record,Partial,Readonly等介绍,keyof将一个类型的属性名全部提取出来当做联合类型,本文通过实例代码给大家详细讲解需要的朋友可以参考下
    2022-11-11
  • layui 表格的属性的显示转换方法

    layui 表格的属性的显示转换方法

    今天小编就为大家分享一篇layui 表格的属性的显示转换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • mongoose之bulkWrite操作使用实例

    mongoose之bulkWrite操作使用实例

    这篇文章主要为大家介绍了mongoose之bulkWrite操作使用实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • uniapp中scroll-view实现自动滚动到最底部的方法

    uniapp中scroll-view实现自动滚动到最底部的方法

    这篇文章主要给大家介绍了关于uniapp中scroll-view实现自动滚动到最底部的相关资料,在uniapp日常开发的过程中经常会有局部滚动的需求,而scroll-view组件正好可以满足这一需求,需要的朋友可以参考下
    2023-10-10
  • 浅谈nodeName,nodeValue,nodeType,typeof 的区别

    浅谈nodeName,nodeValue,nodeType,typeof 的区别

    本文主要简单介绍了nodeName,nodeValue,nodeType,typeof 的区别,算是知识点的一个小总结,希望对小伙伴们有所帮助
    2015-01-01
  • JavaScript中的await/async的作用和用法

    JavaScript中的await/async的作用和用法

    await/async 是 ES7 最重要特性之一,它是目前为止 JS 最佳的异步解决方案了。这篇文章主要介绍了JavaScript中的await/async的作用和用法的相关资料
    2016-10-10
  • JavaScript数组去重实现方法小结

    JavaScript数组去重实现方法小结

    这篇文章主要介绍了JavaScript数组去重实现方法,结合实例形式总结分析了JavaScript数组去重ES3、ES5及ES6常见实现方法与操作注意事项,需要的朋友可以参考下
    2020-01-01

最新评论