整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

Flicking,一款神奇的 JavaScript

Flicking,一款神奇的 JavaScript 开源轮播图库?

,大家好,欢迎来到猿镇,我是镇长,lee。

  • Github Star: 2.7k[1]
  • 官网[2]

Flicking 是什么?

Flicking.js 是一个用于创建触摸友好的轮播控件的 JavaScript库,它支持多种配置和交互,适用于构建响应式的图像或内容滑动界面。Flicking.js 的核心功能包括手势控制、自动播放、无限循环等,并且可以通过API进行高度自定义。

效果展示

嵌套 Flicking

可变尺寸 Flicking

网格 Flicking

垂直 Flicking

快速开始

在项目中使用 Flicking 首先需要安装,我们可以通过包管理 npmyarnCDN 等方式安装。

npm install @egjs/flicking
#
yarn add @egjs/flicking

Flicking 提供配合前端框架使用的安装包,例如:VueReactAngularPreact 等。

# React
npm install @egjs/react-flicking
# Vue2
npm install @egjs/vue-flicking
# Vue3
npm install @egjs/vue3-flicking
# Angular 
npm install @egjs/ngx-flicking
# Preact
npm install @egjs/preact-flicking
# Svelte
npm install @egjs/svelte-flicking

在项目中使用 Flicking,首先需要向页面中添加基本 HTML 布局。

<!-- Viewport element -->
<div id="carousel" class="flicking-viewport">
  <!-- Camera element -->
  <div class="flicking-camera">
    <!-- Panels, class names are your choice -->
    <div class="panel">1</div>
    <div class="panel">2</div>
    <div class="panel">3</div>
    <div class="panel">4</div>
  </div>
</div>

然后在 JavaScript 中初始化 Flicking 实例对象。

const flicking=new Flicking("#carousel", {
  align: "center", // 视口中面板对齐位置。
  circular: true, // 是否启用循环(连续循环)模式
  bound: true, // 是否启用边界 
  renderOnlyVisible: true // 是否仅渲染可见面板
})

核心 API

Flicking.js 提供了一系列的配置选项,允许用户根据自己的需求进行自定义。主要的配置选项:

  • align: 视口中面板对齐位置。
  • circular: 是否无限循环滚动,默认为 false 。
  • bound: 是否限制滚动边界,默认为 false 。
  • adaptive: 是否响应式布局,即根据父容器的尺寸来自动调整轮播元素的尺寸,默认为 false
  • autoResize: 当尺寸发生变化时,是否自动重新计算位置和尺寸,默认为 false 。
  • moveType: 滚动动画类型,包括 snap、freeScroll、snapFreeScroll,默认为 snap 。
  • duration: 动画过渡时间,默认为 500 。
  • ease: 动画过渡函数,默认为 "cubic-bezier(0.25, 0.1, 0.25, 1.0)" 。
  • deceleration: 动画减速度,默认为 0.0075 。

此外,Flicking.js 还提供了回调函数,如 beforeMovemovedwillChangeEventchangedEventmoveStartmoveEnd,允许用户在特定事件发生时执行自定义逻辑 。对于 React 用户,Flicking.js 还提供了一些 React 特有的配置选项,如 viewportTag、cameraTag、cameraClass、renderOnSameKey 等。

更多内容参考官方文档[3]

同类对比

Flicking.js 是一个专注于滑动性能和交互特性的轮播组件库,它支持手势滑动、全屏滑动和响应式布局。Swiper 是一个现代化的纯 JavaScript 滑动库,以其高性能和丰富的API而闻名。

Flicking.jsSwiper 相比有哪些优点?

  1. 轻量级:相对于 SwiperFlicking.js 可能更加轻量,加载和运行速度更快。
  2. 易于集成:支持多种前端框架,如 ReactVue 等,易于在现代前端项目中集成。
  3. 丰富的配置选项:提供多种配置选项,如对齐方式、循环播放、边界限制等。
  4. 支持TypeScript:完全使用 TypeScript 编写,提供准确的类型定义。
  5. 支持SSR:设计上支持服务器端渲染,适用于 Next.jsNuxt.js 等 SSR 框架。

选择 SwiperFlicking.js 时应根据实际情况做出选择,如果需要一个功能全面、社区支持广泛的轮播图插件,Swiper 可能是更好的选择。如果项目需要一个轻量级、易于集成且支持现代前端框架的解决方案,Flicking.js 可能更加合适。

总结

Flicking 以其出色的性能和灵活性,为开发者提供了一个强大的工具,轻松实现滚动动画和交互效果。无论是创建无缝的无限滚动列表,还是打造动态网格布局,Flicking 都能够提供必要的支持。它的易用性和可扩展性,使其成为提升用户交互体验的Web项目的理想选择。希望通过本次分享能为你的组件库带来新的选择。

祝好!

引用链接

[1] Github Star: 2.7k: https://github.com/naver/egjs-flicking
[2] 官网:
https://naver.github.io/egjs-flicking/
[3] 官方文档:
https://naver.github.io/egjs-flicking/Options#ui--layout

Swiper3d是基于原生js和css实现的网页旋转木马轮播图插件,具有流畅的过渡效果,适用于pc和移动端。ie >=10以及 其他主流浏览器都支持。

  • pc左右箭头控制
  • 移动端左右滑动




  • Gitee

    https://gitee.com/visitor009/swiper3d

    代码示例

    <!-- css -->
    <link rel="stylesheet" href="../css/3dSwiper.css">
    
    <!-- html -->
    <div class="swiper-container">
    	<ul class="swiper-wrap">
     <li><img src=""></li> 
     <li><img src=""></li>
     <li><img src=""></li> 
    	</ul>
    	<ul class="swiper-dots"></ul>
    	<ul class="swiper-navigator">
    		<li class="swiper-btn-prev"><</li>
    		<li class="swiper-btn-next">></li>
    	</ul>
    </div>
    
    <!-- js -->
    <script src="../js/3dSwiper.js"></script>
    <script>
    		new Swiper(".swiper-container",{
    			pagination: ".swiper-dots",
    			navigator: {
    				prev: ".swiper-btn-prev",
    				next: ".swiper-btn-next"
    			}
    		});
    </script>

    注意事项

  • 图片数量要 3+
  • 图片顺序从中间开始,往右排序
  • 图片尺寸会比原来的缩小0.6倍,原来是180px,页面上会变成 180 * 0.6=108px
  • 总结

    开源的插件非常多,有很多插件都很实用,本文介绍的是这样一个轮播图插件,也是偶然在码云上发现的,希望对你有所帮助!

    20个,可都是咱们村最好的,年龄都不超过25,一个比一个长的好看。你加人家微信先聊,总有一个你喜欢的。老大不小的人了,别太挑,遇到合适的,就去Github搬过来用。

    提示:因头条无法插入外链,上图所有项目地址,可在公众号后台回复关键字 “轮播图插件” 获取MD版本。

    Swiper

    使用硬件加速过渡的移动设备触控滑块框架。

    slick

    你所需要的最后一个轮播插件。

    slidesJs

    响应式的 jQuery(1.7.1+)幻灯片插件,具有触摸、 CSS3 过渡等特性。

    FlexSlider

    一款令人惊叹的、全响应式的幻灯片 jQuery 插件。

    unslider

    最简单的幻灯片 jQuery 插件。

    colorbox

    轻量、可自定义的灯箱 jQuery 插件。

    fancyBox

    提供了良好优雅的方式,为页面上的图片、html 内容和多媒体添加缩放功能的工具。

    sly

    基于项导航的、支持单向滚动的 JavaScript 库。

    vegas

    向页面添加漂亮的全屏背景的 jQuery 插件,甚至允许幻灯片。

    Sequence

    用于创建响应式的幻灯片、演示、旗帜广告和以步骤为基础的应用的 CSS 动画框架。

    baguetteBox.js

    易于使用的、用纯 JavaScript 实现的遮罩层脚本。

    reveal.js

    用 HTML 创建漂亮演示控件的框架。

    PhotoSwipe

    适用于移动设备和桌面电脑的、模块化和不无依赖框架的 JavaScript 画廊控件。

    jcSlider

    用 CSS 动画实现的响应式幻灯片 jQuery 插件。

    basic-jquery-slider

    易于使用、指定主题和定制化。

    unslider

    这是最简单的幻灯片 jQuery 插件。

    viewerjs

    原生 js 实现的图片查看器。

    jQuery.adaptive-slider

    带有自适应颜色标题和导航的幻灯片 jQuery 插件。

    slidr

    可添加一些幻灯片效果。

    Flickity

    可触摸的、响应式的和可轻弹的画廊。