찾다
웹 프론트엔드JS 튜토리얼Vue는 이미지 캐러셀 효과를 위한 코드 공유를 구현하기 위해 Swiper를 캡슐화합니다.

이 기사에서는 이미지 캐러셀 효과를 달성하기 위해 Swiper를 캡슐화하는 Vue의 코드를 주로 공유합니다. 이미지 캐러셀은 프런트 엔드에서 자주 구현해야 하는 기능입니다. 저는 최근 Vue.js를 배웠고 Swiper를 캡슐화하여 간단한 이미지 캐러셀 구성 요소를 구현했습니다.

1. Swiper

Encapsulation을 구현하기 전에 먼저 Swiper를 소개하겠습니다.

  • Swiper는 휴대폰, 태블릿 및 기타 모바일 단말기를 대상으로 하는 순수 Javascript로 작성된 슬라이딩 특수 효과 플러그인입니다.

  • Swiper는 터치스크린 초점 이미지, 터치스크린 탭 전환, 터치스크린 다중 이미지 전환 등과 같은 일반적인 효과를 얻을 수 있습니다.

  • Swiper는 무료이고 안정적이며 사용하기 쉽고 강력한 오픈 소스입니다. 모바일 터미널 웹사이트를 구축하는 데 중요한 선택입니다.

Swiper는 다양한 응용 시나리오를 가지고 있으며 구현 효과가 매우 좋습니다. 다음 실제 사례는 Swiper의 일반적인 응용 시나리오입니다.

Swiper의 구체적인 사용법 튜토리얼과 자세한 API는 Swiper 중국어 웹사이트
를 참조하세요.

2. Vue 구성요소

Vue 구성요소는 원래 유지 관리성과 재사용성을 향상하기 위해 함께 사용되도록 설계되었습니다. Picture Carousel은 컴포넌트를 사용하여 완성하기에 적합하므로 구체적인 구현을 소개하기 전에 먼저 Vue 컴포넌트와 컴포넌트 통신에 대해 소개하겠습니다.

Vue 구성 요소 중 가장 일반적인 관계는 상위 구성 요소와 하위 구성 요소 간의 관계입니다. 구성 요소 A는 템플릿에서 구성 요소 B를 사용합니다.

서로 통신해야 합니다. 상위 구성 요소는 하위 구성 요소에 데이터를 보내야 할 수 있으며, 하위 구성 요소는 내부에서 일어나는 일을 상위 구성 요소에 알려야 할 수 있습니다. 그러나 잘 정의된 인터페이스를 통해 상위 구성 요소와 하위 구성 요소를 최대한 분리하는 것도 중요합니다. 이를 통해 각 구성 요소의 코드를 상대적으로 격리된 환경에서 작성하고 이해할 수 있으므로 유지 관리성과 재사용성이 향상됩니다.

Vue에서 부모와 자식 구성 요소 간의 관계는 소품이 아래로 전달되고 이벤트가 위로 전달되는 것으로 요약할 수 있습니다. 부모 컴포넌트는 props를 통해 자식 컴포넌트에 데이터를 보내고, 자식 컴포넌트는 이벤트를 통해 부모 컴포넌트에 메시지를 보냅니다.

3. Encapsulation 구현

1. Swiper 소개

먼저 Swiper를 설치해야 합니다.

npm install --save swiper

그럼 참고할 파일이 2개 있습니다.

import Swiper from "swiper";
import "swiper/dist/css/swiper.min.css";

2.HTML code

템플릿에서 캐러셀의 html 레이아웃을 설정하세요.

<template>
 <p>
   </p>
<p>
     <!-- 存放具体的轮播内容 -->
     <slot></slot>
   </p>
   <!-- 分页器 -->
   <p></p>
 
</template>

이름이 지정된 슬롯을 사용하여 분리를 개선하므로 상위 구성 요소를 사용할 때 상황에 따라 다양한 캐러셀 콘텐츠를 설정할 수 있습니다.

또한 이미지 캐러셀의 페이지 표시기인 호출기를 설정해야 합니다. 일반적인 것은 작은 점이나 디지털 표시기입니다.

3. Swiper 초기화

Swiper는 캐러셀 이미지 구현을 위해 캡슐화되어 있고, 이전에 Swiper를 설치했으므로 지금 초기화해야 합니다.

초기화 전 Swiper 사용법에 대한 이해를 바탕으로 먼저 Carousel 컴포넌트에 필요한 속성 정보를 파악한 후 상위 컴포넌트를 통해 캡슐화된 Swiper 컴포넌트에 전달합니다.

이때 소품을 이용하셔야 합니다.

props: {
  swipeid: {
   type: String,
   default: ""
  },
  effect: {
   type: String,
   default: "slide"
  },
  loop: {
   type: Boolean,
   default: false
  },
  direction: {
   type: String,
   default: "horizontal"
  },
  pagination: {
   type: Boolean,
   default: true
  },
  paginationType: {
   type: String,
   default: "bullets"
  },
  autoPlay: {
   type: Number,
   default: 3000
  }
 }

아래에서는 각 속성의 의미를 하나씩 설명합니다.

Attribute Meaning
swiped 캐러셀 컨테이너 클래스 속성의 클래스 이름입니다.
효과 이미지의 전환 효과, 기본값은 "슬라이드"이며 "페이드", "큐브", ​​"커버플로우", "플립"으로 설정할 수도 있습니다. 자세한 내용은 효과를 참조하세요.
loop 루프 모드를 활성화하려면 true로 설정하세요. 루프 모드: 원본 사진 전후에 여러 장의 사진이 복사되고 적절한 시간에 전환되어 Swiper가 반복되는 것처럼 보입니다. 자세한 내용은 루프를 참조하세요.
방향 그림의 슬라이딩 방향은 가로(수평) 또는 세로(세로)로 설정할 수 있습니다.
페이지 매김 페이지 매김 탐색을 사용하세요. 자세한 내용은 페이지 매김을 참조하세요.
paginationType 分页器样式类型,可设置为"bullets", "fraction", "progressbar", "custom",详情见type。
autoPlay 设置为true启动自动切换,并使用默认的切换设置,详情见autoplay。

了解了上面每个属性的含义,下面就可以初始化Swiper,并设置具体的属性。

初始化Swiper时,需要传入两个参数。

  • 轮播容器的类名

  • 代表图片轮播组件详细功能的对象

var that = this;
  this.dom = new Swiper("." + that.swipeid, {
   //循环
   loop: that.loop,
   //分页器
   pagination: { 
    el: ".swiper-pagination",
    bulletClass : 'swiper-pagination-bullet',
      },
   //分页类型
   paginationType: that.paginationType,
   //自动播放
   autoPlay: that.autoPlay,
   //方向
   direction: that.direction,
   //特效
   effect: that.effect,
   //用户操作swiper之后,不禁止autoplay
   disableOnInteraction: false,
   //修改swiper自己或子元素时,自动初始化swiper
   observer: true,
   //修改swiper的父元素时,自动初始化swiper
   observeParents: true
  });
 }

四、自定义轮播效果

经过上面的步骤,轮播器就封装好了。我们可以自定义实现自己想要的轮播器效果。下面以知乎的API为例,实现图片轮播。

1.HTML代码

<m-swipe>
   <p>
    <img  src="/static/imghwm/default1.png" data-src="top.image" class="lazy" alt="Vue는 이미지 캐러셀 효과를 위한 코드 공유를 구현하기 위해 Swiper를 캡슐화합니다." >
    </p>
<h3 id="top-title">{{top.title}}</h3>
   
</m-swipe>

首先要引用注册组件,这里就不详细写出。

其中 m-swipe 就是前面实现的图片轮播组件,而其中的子组件就是通过具名插槽插入的轮播内容。

2.CSS代码

.swiper-container {
  width: 100%;
 }
 .swiper-slide {
  height: 8rem;
  overflow: hidden;
  position: relative;
 }
.swiper-slide {
 p {
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0.4;
  position: absolute;
  background-color: @blue;
 }
 img {
  top: 50%;
  position: relative;
  transform: translate(0, -50%);
 }
 h3 {
  width: 70%;
  color: #fff;
  margin: 0;
  font-size: 0.5rem;
  line-height: 1rem;
  right: 5%;
  bottom: 2.6rem;
  text-align: right;
  position: absolute;
  text-shadow: 1px 1px 10px rgba(0, 0, 0, 0.5);
  &:before {
   content: "";
   width: 3rem;
   bottom: -0.6rem;
   right: 0;
   display: block;
   position: absolute;
   border: 2px solid @yellow;
  }
 }
}
.swiper-pagination-bullet-active {
 background: #fff;
}
.swiper-container-horizontal > .swiper-pagination-bullets {
  bottom: 1rem;
  width: 95%;
  text-align: right;
 }

其中 swiper-pagination-bullet-active 代表分页器中当前指示的小圆点的类名。 .swiper-pagination-bullets 代表分页器的类名,详情见pagination分页器内元素的类名 。

关于网络请求数据展示的代码就不贴了,下面有源码地址。

3.效果

 

这只是一个简单的封装效果,想要实现更多的效果,可以通过Swiper中提供的更多功能来实现。

相关推荐:

图片轮播组件gallery slider使用方法详解

jQuery实现圆点图片轮播实例分享

Bootstrap图片轮播效果实现方法

위 내용은 Vue는 이미지 캐러셀 효과를 위한 코드 공유를 구현하기 위해 Swiper를 캡슐화합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Node.js는 TypeScript가있는 스트림입니다Node.js는 TypeScript가있는 스트림입니다Apr 30, 2025 am 08:22 AM

Node.js는 크림 덕분에 효율적인 I/O에서 탁월합니다. 스트림은 메모리 오버로드를 피하고 큰 파일, 네트워크 작업 및 실시간 애플리케이션을위한 메모리 과부하를 피하기 위해 데이터를 점차적으로 처리합니다. 스트림을 TypeScript의 유형 안전과 결합하면 Powe가 생성됩니다

Python vs. JavaScript : 성능 및 효율성 고려 사항Python vs. JavaScript : 성능 및 효율성 고려 사항Apr 30, 2025 am 12:08 AM

파이썬과 자바 스크립트 간의 성능과 효율성의 차이는 주로 다음과 같이 반영됩니다. 1) 해석 된 언어로서, 파이썬은 느리게 실행되지만 개발 효율이 높고 빠른 프로토 타입 개발에 적합합니다. 2) JavaScript는 브라우저의 단일 스레드로 제한되지만 멀티 스레딩 및 비동기 I/O는 Node.js의 성능을 향상시키는 데 사용될 수 있으며 실제 프로젝트에서는 이점이 있습니다.

JavaScript의 기원 : 구현 언어 탐색JavaScript의 기원 : 구현 언어 탐색Apr 29, 2025 am 12:51 AM

JavaScript는 1995 년에 시작하여 Brandon Ike에 의해 만들어졌으며 언어를 C로 실현했습니다. 1.C Language는 JavaScript의 고성능 및 시스템 수준 프로그래밍 기능을 제공합니다. 2. JavaScript의 메모리 관리 및 성능 최적화는 C 언어에 의존합니다. 3. C 언어의 크로스 플랫폼 기능은 자바 스크립트가 다른 운영 체제에서 효율적으로 실행하는 데 도움이됩니다.

무대 뒤에서 : 어떤 언어의 힘이 자바 스크립트입니까?무대 뒤에서 : 어떤 언어의 힘이 자바 스크립트입니까?Apr 28, 2025 am 12:01 AM

JavaScript는 브라우저 및 Node.js 환경에서 실행되며 JavaScript 엔진을 사용하여 코드를 구문 분석하고 실행합니다. 1) 구문 분석 단계에서 초록 구문 트리 (AST)를 생성합니다. 2) 컴파일 단계에서 AST를 바이트 코드 또는 기계 코드로 변환합니다. 3) 실행 단계에서 컴파일 된 코드를 실행하십시오.

파이썬과 자바 스크립트의 미래 : 트렌드와 예측파이썬과 자바 스크립트의 미래 : 트렌드와 예측Apr 27, 2025 am 12:21 AM

Python 및 JavaScript의 미래 추세에는 다음이 포함됩니다. 1. Python은 과학 컴퓨팅 분야에서의 위치를 ​​통합하고 AI, 2. JavaScript는 웹 기술의 개발을 촉진하고, 3. 교차 플랫폼 개발이 핫한 주제가되고 4. 성능 최적화가 중점을 둘 것입니다. 둘 다 해당 분야에서 응용 프로그램 시나리오를 계속 확장하고 성능이 더 많은 혁신을 일으킬 것입니다.

Python vs. JavaScript : 개발 환경 및 도구Python vs. JavaScript : 개발 환경 및 도구Apr 26, 2025 am 12:09 AM

개발 환경에서 Python과 JavaScript의 선택이 모두 중요합니다. 1) Python의 개발 환경에는 Pycharm, Jupyternotebook 및 Anaconda가 포함되어 있으며 데이터 과학 및 빠른 프로토 타이핑에 적합합니다. 2) JavaScript의 개발 환경에는 Node.js, VScode 및 Webpack이 포함되어 있으며 프론트 엔드 및 백엔드 개발에 적합합니다. 프로젝트 요구에 따라 올바른 도구를 선택하면 개발 효율성과 프로젝트 성공률이 향상 될 수 있습니다.

JavaScript가 C로 작성 되었습니까? 증거를 검토합니다JavaScript가 C로 작성 되었습니까? 증거를 검토합니다Apr 25, 2025 am 12:15 AM

예, JavaScript의 엔진 코어는 C로 작성되었습니다. 1) C 언어는 효율적인 성능과 기본 제어를 제공하며, 이는 JavaScript 엔진 개발에 적합합니다. 2) V8 엔진을 예를 들어, 핵심은 C로 작성되며 C의 효율성 및 객체 지향적 특성을 결합하여 C로 작성됩니다.

JavaScript의 역할 : 웹 대화식 및 역동적 인 웹JavaScript의 역할 : 웹 대화식 및 역동적 인 웹Apr 24, 2025 am 12:12 AM

JavaScript는 웹 페이지의 상호 작용과 역학을 향상시키기 때문에 현대 웹 사이트의 핵심입니다. 1) 페이지를 새로 고치지 않고 콘텐츠를 변경할 수 있습니다. 2) Domapi를 통해 웹 페이지 조작, 3) 애니메이션 및 드래그 앤 드롭과 같은 복잡한 대화식 효과를 지원합니다. 4) 성능 및 모범 사례를 최적화하여 사용자 경험을 향상시킵니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기