찾다
웹 프론트엔드CSS 튜토리얼반응형 이미지 자동 캐러셀 효과를 구현하기 위해 CSS를 사용하는 방법에 대한 튜토리얼

반응형 이미지 자동 캐러셀 효과를 구현하기 위해 CSS를 사용하는 방법에 대한 튜토리얼

모바일 장치의 인기로 인해 웹 디자인에서는 좋은 사용자 경험을 달성하기 위해 장치 해상도, 다양한 단말기의 화면 크기와 같은 요소를 고려해야 합니다. 웹 사이트의 반응형 디자인을 구현할 때 이미지 캐러셀 효과를 사용하여 제한된 시각적 창에 여러 이미지의 내용을 표시해야 하는 경우가 종종 있으며 동시에 웹 사이트의 시각적 효과도 향상시킬 수 있습니다. 이 문서에서는 CSS를 사용하여 반응형 이미지 자동 캐러셀 효과를 구현하는 방법을 소개하고 코드 예제와 분석을 제공합니다.

구현 아이디어

CSS flex 레이아웃을 통해 반응형 이미지 캐러셀을 구현할 수 있습니다. 고정 컨테이너에서 Flex 하위 컨테이너의 각 이미지를 포함하도록 Flex 컨테이너를 설정합니다. 그런 다음 플렉스 하위 컨테이너의 배열과 하위 요소의 너비를 설정하여 그림의 타일 배열이 이루어집니다. 그러나 컨테이너의 너비는 화면 크기에 따라 다르기 때문에 미디어 쿼리를 사용하여 컨테이너 및 하위 요소의 너비를 동적으로 변경하여 다양한 화면 해상도에 맞게 조정해야 합니다. 그런 다음 CSS3의 애니메이션 효과를 설정하여 자동 캐러셀 효과를 구현하고, js를 통해 슬라이딩 효과를 구현합니다.

구현 단계

  1. HTML 부분

먼저 아래와 같이 HTML 부분에 여러 이미지가 포함된 컨테이너를 만들어야 합니다.

<div class="carousel-container">
  <div class="carousel-items">
    <img src="/static/imghwm/default1.png"  data-src="image1.jpg"  class="lazy" alt="">
    <img src="/static/imghwm/default1.png"  data-src="image2.jpg"  class="lazy" alt="">
    <img src="/static/imghwm/default1.png"  data-src="image3.jpg"  class="lazy" alt="">
    <img src="/static/imghwm/default1.png"  data-src="image4.jpg"  class="lazy" alt="">
    <img src="/static/imghwm/default1.png"  data-src="image5.jpg"  class="lazy" alt="">
  </div>
  <div class="carousel-prev"></div>
  <div class="carousel-next"></div>
</div>

그 중 .carousel-container는 컨테이너 스타일 이름인 .carousel입니다. -items는 이미지에 포함된 하위 컨테이너의 스타일 이름이고, .carousel-prev 및 .carousel-next는 왼쪽 및 오른쪽 화살표의 스타일 이름이며 CSS 섹션에서 스타일을 설정합니다.

  1. CSS 부분

다음으로 컨테이너, 하위 컨테이너, 화살표 스타일을 포함하여 CSS 부분에서 스타일을 설정해야 합니다. 구체적인 코드는 다음과 같습니다.

.carousel-container {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: auto;
}

.carousel-items {
  display: flex;
  flex-wrap: nowrap;
  width: 500%; /* 将子容器宽度扩大5倍 */
}

.carousel-items img {
  width: 20%;
  margin-right: 1rem;
  flex: 1;
}

.carousel-prev,
.carousel-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 50px;
  height: 50px;
  background-color: rgba(0,0,0,0.5);
  color: #fff;
  text-align: center;
  line-height: 50px;
  cursor: pointer;
}

.carousel-prev {
  left: 0;
}

.carousel-next {
  right: 0;
}

스타일 정의에서 하위 컨테이너와 화살표의 절대 위치를 달성하기 위해 컨테이너의 상대 위치를 설정했습니다. Overflow:hidden을 사용하면 컨테이너의 하위 컨테이너에서 넘쳐나는 부분을 숨길 수 있습니다. 하위 컨테이너는 플렉스 레이아웃을 채택하고 nowrap 속성은 하위 컨테이너 요소가 래핑되는 것을 방지합니다. 그리고 하위 컨테이너의 너비를 500%로 설정합니다. 하위 컨테이너의 그림 너비를 20%로 설정하면 각 행에 5장의 그림을 표시할 수 있으며, 그림 사이의 오른쪽 여백을 1rem으로 설정하여 표시 효과를 더욱 아름답게 만들 수 있습니다. 왼쪽 및 오른쪽 화살표는 절대 위치 지정 및 음수 여백 상단을 통해 수직으로 중앙에 배치됩니다.

  1. 반응형 속성을 설정하는 미디어 쿼리

다양한 화면 크기에서 컨테이너와 하위 요소의 너비는 다양한 화면 해상도에 맞게 동적으로 변경되어야 합니다. 아래와 같이 미디어 쿼리를 통해 반응형 속성을 설정하고 다양한 화면 크기에서 컨테이너와 하위 컨테이너의 너비를 변경할 수 있습니다.

/* 根据不同屏幕尺寸改变样式 */
@media (max-width: 768px) {
  .carousel-items img {
    width: 50%;
  }
  .carousel-container {
    height: 250px;
  }
}

@media (max-width: 480px) {
  .carousel-items img {
    width: 100%;
    margin-right: 0;
  }
  .carousel-container {
    height: 180px;
  }
}

위 예에서는 창 크기에 따라 carousel-items img 및 carousel을 설정했습니다. -컨테이너 스타일을 변경합니다. 작은 화면에서는 각 이미지의 너비를 50%로 설정하고, 이미지 사이에 오른쪽 여백을 설정하지 않고, 작은 화면에서는 .crosso 컨테이너의 높이를 250px로 설정하고, 이미지를 100%로 설정합니다. .crosso 컨테이너에서 180px로 설정됩니다.

  1. CSS3 애니메이션

CSS3 애니메이션을 사용하면 자동 이미지 캐러셀 효과를 얻을 수 있습니다. 코드 예제는 다음과 같습니다.

@keyframes carousel-animation {
  0% {
      transform: translateX(0);
  }
  100% {
      transform: translateX(-100%);
  }
}

.carousel-items {
  /* 动画设置 */
  animation: carousel-animation 10s infinite linear;
}

.carousel-items:hover {
  /* 鼠标悬停时终止动画 */
  animation-play-state: paused;
}

위 예제에서는 이미지 하위 컨테이너를 10초마다 한 번씩 스크롤하도록 설정하고 애니메이션은 carousel-animation 에 의해 완성되고, 선형은 애니메이션이 선형이라는 것을 의미하고, 무한은 애니메이션이 무한히 반복된다는 것을 의미합니다.

  1. 슬라이딩 효과를 구현하는 JavaScript

마지막으로 JavaScript를 사용하여 왼쪽 및 오른쪽 화살표를 클릭할 때 이미지 슬라이딩 효과를 구현합니다. 코드 예제는 다음과 같습니다.

// 获取左右箭头元素
var prev = document.querySelector(".carousel-prev");
var next = document.querySelector(".carousel-next");

// 图片滚动函数
function carouselScroll(direction) {
  var container = document.querySelector(".carousel-items");
  var minScrollLeft = 0;
  var maxScrollLeft = container.scrollWidth - container.clientWidth;
  var increment = 20 * direction;

  container.scrollLeft += increment;

  if (container.scrollLeft < minScrollLeft) {
    container.scrollLeft = maxScrollLeft;
  } else if (container.scrollLeft > maxScrollLeft) {
    container.scrollLeft = minScrollLeft;
  }
};

// 给左右箭头绑定事件
prev.addEventListener("click", function() {
  carouselScroll(-1);
});

next.addEventListener("click", function() {
  carouselScroll(1);
});

위 예제에서 요소를 얻습니다. querySelector 및 바인드 클릭 이벤트를 통해 왼쪽 및 오른쪽 화살표. 클릭할 때마다 그림 슬라이딩 효과를 얻으려면 carouselScroll 기능을 사용하십시오. 컨테이너.scrollWidth는 하위 컨테이너의 유효 너비를 나타내고, 컨테이너.clientWidth는 표시되는 너비를 나타냅니다. 컨테이너 가장자리로 스크롤할 때 스크롤 위치는 반대 위치로 설정되어 순환 스크롤 효과를 얻습니다.

요약

이 기사에서는 CSS3의 플렉스 레이아웃과 애니메이션 효과는 물론 JavaScript를 사용하여 왼쪽 및 오른쪽 화살표의 클릭 이벤트를 구현하고 반응형 이미지 자동 캐러셀 효과를 성공적으로 구현했습니다. 또한 미디어 쿼리와 호버 효과를 추가하여 더욱 풍부한 반응형 디자인을 구현했습니다. 코드 예제는 어느 정도 일반성을 갖고 있으며 초보자를 위한 참고 자료로도 유용합니다.

위 내용은 반응형 이미지 자동 캐러셀 효과를 구현하기 위해 CSS를 사용하는 방법에 대한 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
드래그 ' 및 Droppin ' 반응에서드래그 ' 및 Droppin ' 반응에서Apr 17, 2025 am 11:52 AM

React Ecosystem은 모두 드래그 앤 드롭의 상호 작용에 중점을 둔 많은 라이브러리를 제공합니다. 우리는 React-dnd, React-beautiful-dnd를 가지고 있습니다.

빠른 소프트웨어빠른 소프트웨어Apr 17, 2025 am 11:49 AM

최근 빠른 소프트웨어에 대해 놀랍도록 상호 연결된 것들이있었습니다.

배경 클립이있는 중첩 된 그라디언트배경 클립이있는 중첩 된 그라디언트Apr 17, 2025 am 11:47 AM

나는 자주 배경 클립을 사용한다고 말할 수 없습니다. I ' D WART IT IT는 일상적인 CSS 작업에서 거의 사용되지 않았습니다. 그러나 나는 Stefan Judis의 게시물에서 그것을 상기시켰다.

React 후크와 함께 requestAnimationFrame 사용React 후크와 함께 requestAnimationFrame 사용Apr 17, 2025 am 11:46 AM

requestAnimationFrame을 사용하여 애니메이션은 쉬워야하지만 React의 문서를 철저히 읽지 않으면 몇 가지 문제가 발생할 수 있습니다.

페이지 상단으로 스크롤해야합니까?페이지 상단으로 스크롤해야합니까?Apr 17, 2025 am 11:45 AM

아마도이를 사용자에게 제공하는 가장 쉬운 방법은 요소의 ID를 대상으로하는 링크 일 것입니다. 그래서 ...처럼 ...

최고 (GraphQL) API는 귀하가 작성한 것입니다최고 (GraphQL) API는 귀하가 작성한 것입니다Apr 17, 2025 am 11:36 AM

들어보세요, 나는 GraphQL 전문가가 아니지만 함께 일하는 것을 좋아합니다. 프론트 엔드 개발자로서 데이터를 노출시키는 방법은 꽤 멋지다. 메뉴와 같습니다

주간 플랫폼 뉴스 : 텍스트 간격 북마크, 최상위 차단, 새로운 앰프 로딩 표시기주간 플랫폼 뉴스 : 텍스트 간격 북마크, 최상위 차단, 새로운 앰프 로딩 표시기Apr 17, 2025 am 11:26 AM

이번 주에 타이포그래피를 검사하기위한 편리한 북마크 인 Roundup, JavaScript 모듈과 Facebook의 Facebook 등을 어떻게 가져 오는지 땜질하기 위해 대기하는 편리한 북마크 인 Roundup과 Facebook의

테두리 반경을 보존하는 동안 상자를 확장하는 다양한 방법테두리 반경을 보존하는 동안 상자를 확장하는 다양한 방법Apr 17, 2025 am 11:19 AM

나는 최근 코데 펜에서 흥미로운 변화를 발견했다.

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 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구