轻量级实现swiper造轮子思路

背景

Swiper 在打包时,发现代码体积比较大,考虑到离线缓存机制在1M以内情况下,选择了造轮子。
源码

实现思路

1、利用flex设置滑动块的布局
2、利用transform:translateX 移动滑块、transition设置滑动效果
3、利用touch事件触发交互

flex设置滑动块的布局

设想可以自动计算滑块宽度、也可以自己设置显示几个滑块;

updateSlideStyles() {
		this.wrapper!.style.display = 'flex';
		if (this.options.slidesPerView === 'auto') {
			this.slides.forEach(slide => {
				slide.style.flex = '0 0 auto';
				slide.style.marginRight = `${this.options.spaceBetween}px`;
			});
		} else {
			const spaceBetween = (this.options.spaceBetween / this.container?.clientWidth * 100)
			const slideWidth = (100 - spaceBetween * (this.options.slidesPerView - 1)) / this.options.slidesPerView;
			this.slides.forEach(slide => {
				slide.style.flex = `0 0 ${slideWidth}%`;
				slide.style.marginRight = `${this.options.spaceBetween}px`;
			});
		}
	}

计算移动偏移

当滑动到第二项时,translateX等于 第一项宽度 + spaceBetween设置的距离。同等第三项时,translateX 等于前面2项宽度 + 2个 spaceBetween设置的距离。

	getOffset(index: number) {
		return this.slides.slice(0, index).reduce((total, slide) => {
			return total + slide.offsetWid

相关推荐

  1. 轻量级实现swiper轮子思路

    2024-07-21 17:54:02       17 阅读
  2. 前端轮子神器 —— Hooks

    2024-07-21 17:54:02       30 阅读
  3. swiper/vue 获取 swiper实例方法

    2024-07-21 17:54:02       57 阅读
  4. swiper和video实现抖音刷视频功能

    2024-07-21 17:54:02       58 阅读
  5. Swiper轮播图后端接口实现

    2024-07-21 17:54:02       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 17:54:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 17:54:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 17:54:02       45 阅读
  4. Python语言-面向对象

    2024-07-21 17:54:02       55 阅读

热门阅读

  1. 用 AI 来学习雅思英语写作

    2024-07-21 17:54:02       13 阅读
  2. 数据库-表的约束

    2024-07-21 17:54:02       16 阅读
  3. Python基本语法

    2024-07-21 17:54:02       18 阅读
  4. GPU算力租用平台推荐

    2024-07-21 17:54:02       20 阅读
  5. 文本溢出显示省略号

    2024-07-21 17:54:02       16 阅读
  6. 简单回顾C++常用的数据类型

    2024-07-21 17:54:02       18 阅读
  7. https和http有哪些区别?

    2024-07-21 17:54:02       18 阅读
  8. stable diffusion Sampler 的选择

    2024-07-21 17:54:02       18 阅读
  9. 读书记 | 《李光耀观天下》

    2024-07-21 17:54:02       16 阅读