数字营销 · Web开发 · 基础设施

Carousel.js:一个轻量、无依赖的独立站轮播解决方案

很多独立站为了实现轮播图,仍然引入体积较大的 jQuery 和相关插件。本文介绍我开发的轻量级轮播库 Carousel.js,它不依赖第三方库,支持异步加载,并可通过 HTML 属性实现自动播放、循环、横向和纵向轮播等功能。

独立站可以说是企业最重要的营销基础设施之一。无论是品牌宣传、产品展示还是直接销售,一个高品质的网站都能够长期发挥价值。

与需要持续快速迭代的互联网产品不同,大多数企业独立站更像一个长期运营的线上营销中心。因此,与其不断增加复杂功能,不如花一些精力提升网站品质和用户体验。

而在影响用户体验的因素中,页面加载速度始终是非常重要的一项

我一直比较强调,在独立站开发中,应该尽量减少不必要的前端类库。很多网站为了实现一个相对简单的功能,却引入了体积较大的 JavaScript 框架或插件,这不仅增加了页面资源体积,还可能影响页面的加载和渲染速度。

网站中最常见的功能:轮播图

从首页 Banner、产品展示,到客户案例、内容推荐,轮播图几乎是独立站中最常见的功能之一。

但直到现在,仍然有不少网站使用 jQuery Slider 这类较早期的插件方案。仅引入一个 jQuery 库就可能增加超过 100KB 的资源,再加上轮播插件本身,相关 JavaScript 资源可能接近 200KB。

网页轮播图

对于一个简单的轮播功能来说,这样的依赖显然并不划算。更重要的是,如果脚本加载方式处理不当,还可能阻塞页面的解析和渲染,进一步影响用户体验。

因此,我开发了一个轻量级轮播库:Carousel.js

它的设计理念源于 Google AMP,不依赖任何第三方库,体积更小,同时支持异步执行,不会阻塞页面其他内容的渲染。对于企业独立站来说,如果只是需要一个灵活、轻量的轮播功能,它是一个不错的选择。

首先,在页面中引入 Carousel.js:

<script async src="https://lib.eclinkey.com/carouseljs/carousel.min.js"></script>

你可以直接通过调用地址引用,也可以下载文件后部署到自己的网站。

这里需要特别注意:建议在 script 标签中添加 async 属性。

这样浏览器在下载 Carousel.js 时,不会阻塞页面其他内容的解析和渲染,有助于减少 JavaScript 对页面加载速度的影响。

Carousel.js 通过 HTML 属性识别轮播中的不同元素,无需额外编写 JavaScript 代码即可实现基本的轮播功能。

1. 轮播容器

使用 carousel-container 属性指定轮播容器。

一个页面中可以存在多个轮播容器,每个容器都可以独立运行。

2. 轮播滚动容器

使用 carousel-scroll 属性指定。

这个元素包含所有需要进行轮播的内容,是 Carousel.js 必须存在的核心元素。

3. 轮播指示器

使用 carousel-indicator 属性指定。

它通常表现为轮播图下方的小圆点,用于表示当前轮播的位置或索引。该元素不是必须的。

4. 上一页和下一页按钮

使用以下属性指定翻页按钮:

  • :上一页按钮carousel-prev-button
  • :下一页按钮carousel-next-button

翻页按钮同样属于可选元素,可以根据实际的页面设计决定是否使用。

为了避免 Carousel.js 尚未加载完成时页面出现明显的元素位移,建议提前添加基础 CSS 样式。

通常需要注意以下几点:

  • position: relative 所在元素设置 carousel-container
  • white-space: nowrap 所在元素设置 carousel-scroll
  • overflow: hidden 同时设置 carousel-scroll
  • inline-flexdisplay: inline-block 的子元素可以使用 carousel-scroll

这样,即使 Carousel.js 尚未加载完成,页面中的轮播内容也能够以相对稳定的方式展示,减少布局变化。

如果使用轮播指示器或翻页按钮,则可以根据网站的整体设计自行定义对应的样式。

完成基础结构和样式设置后,Carousel.js 加载完成即可自动运行。

按元素数量进行轮播

Carousel.js 按元素数量进行轮播,而不是按照固定尺寸计算。

因此,不要求所有轮播元素的尺寸完全一致,可以更灵活地适配不同类型的内容。

默认轮播数量根据可见元素计算

默认情况下,一次轮播的数量等于当前能够完整显示的元素数量。

简单来说:

一屏能够完整看到几个元素,一次就轮播几个元素。

如果需要手动指定每次轮播的数量,可以使用:

carousel-step

属性进行设置。

默认不开启自动轮播

Carousel.js 默认不会自动播放。

如果需要开启自动轮播,可以使用:

carousel-autoplay

属性。

默认不开启无缝轮播

Carousel.js 默认不进行无缝循环轮播。

如果需要循环播放,可以使用:

carousel-loop

属性开启。

支持纵向轮播

除了常见的横向轮播之外,Carousel.js 同样支持纵向滚动。只需要配合相应的 CSS 样式,并指定:

carousel-direction="y"

即可实现纵向轮播效果。

对于企业独立站来说,一个轮播功能本身并不复杂,没有必要为了实现它而引入大型 JavaScript 框架或多个第三方依赖。

Carousel.js 的设计目标,就是提供一个轻量、无依赖,同时又足够灵活的轮播解决方案。通过 HTML 属性和 CSS 进行配置,不需要额外编写 JavaScript,就可以实现横向轮播、纵向轮播、自动播放、循环轮播、翻页按钮和轮播指示器等功能。

如果你正在做企业独立站,正好需要轮播功能,不妨试试看。更多使用方法可以查看 Carousel.js 的 Demo。它可以灵活适配各种独立站的轮播需求。

后续我也会继续分享一些数字营销、独立站建设以及实用工具方面的内容。

评论0

欢迎分享你的看法,也欢迎补充不同的实践经验。