前端开发社区前端开发社区
  • 首页
  • VUE.js
  • React.js
  • HTML
  • CSS
  • JavaScript
  • PHP
  • jquery
  • Java
  • MySQL
  • uniapp
前端开发社区
当前位置:首页 > CSS

css轮播制作教程

2026-03-12 15:29:30CSS

基础轮播结构

使用HTML创建轮播容器和图片列表,CSS设置基本样式和布局:

<div class="carousel">
  <div class="carousel-inner">
    <img src="image1.jpg" class="active">
    <img src="image2.jpg">
    <img src="image3.jpg">
  </div>
</div>
.carousel {
  width: 600px;
  height: 400px;
  overflow: hidden;
  position: relative;
}
.carousel-inner {
  display: flex;
  transition: transform 0.5s ease;
}
.carousel-inner img {
  width: 100%;
  flex-shrink: 0;
}

自动轮播动画

通过CSS动画实现自动轮播效果:

@keyframes slide {
  0%, 25% { transform: translateX(0); }
  30%, 55% { transform: translateX(-100%); }
  60%, 85% { transform: translateX(-200%); }
  90%, 100% { transform: translateX(0); }
}
.carousel-inner {
  animation: slide 10s infinite;
}

导航按钮控制

添加左右导航按钮并设置悬停样式:

.carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.5);
  color: white;
  border: none;
  padding: 10px;
  cursor: pointer;
  z-index: 10;
}
.prev { left: 10px; }
.next { right: 10px; }
.carousel-btn:hover {
  background: rgba(0,0,0,0.8);
}

指示器样式

创建底部轮播指示点:

.carousel-indicators {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
}
.indicator {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(255,255,255,0.5);
  margin: 0 5px;
  cursor: pointer;
}
.indicator.active {
  background: white;
}

响应式设计

使用媒体查询适配不同屏幕尺寸:

@media (max-width: 768px) {
  .carousel {
    width: 100%;
    height: 300px;
  }
  .carousel-btn {
    padding: 8px;
    font-size: 14px;
  }
}

完整JavaScript控制

添加交互控制功能:

css轮播制作教程

document.addEventListener('DOMContentLoaded', function() {
  const inner = document.querySelector('.carousel-inner');
  const items = document.querySelectorAll('.carousel-inner img');
  const prevBtn = document.querySelector('.prev');
  const nextBtn = document.querySelector('.next');
  const indicators = document.querySelectorAll('.indicator');

  let currentIndex = 0;

  function updateCarousel() {
    inner.style.transform = `translateX(-${currentIndex * 100}%)`;
    indicators.forEach((ind, i) => {
      ind.classList.toggle('active', i === currentIndex);
    });
  }

  nextBtn.addEventListener('click', () => {
    currentIndex = (currentIndex + 1) % items.length;
    updateCarousel();
  });

  prevBtn.addEventListener('click', () => {
    currentIndex = (currentIndex - 1 + items.length) % items.length;
    updateCarousel();
  });

  indicators.forEach((ind, i) => {
    ind.addEventListener('click', () => {
      currentIndex = i;
      updateCarousel();
    });
  });
});

标签: 制作教程css
分享给朋友:

相关文章

css div 制作导航菜单

css div 制作导航菜单

基本导航菜单结构 使用HTML创建一个简单的导航菜单结构,通常使用<ul>和li>列表实现。每个菜单项用<a>标签包裹以实现链接功能。 <div class="n…

css如何制作三角形

css如何制作三角形

使用 border 属性制作三角形 通过设置元素的 border 属性,利用边框的透明特性可以创建三角形。将一个元素的宽度和高度设为 0,然后通过设置不同方向的边框宽度和颜色来实现。 .triang…

css制作钢琴块

css制作钢琴块

使用CSS制作钢琴块 钢琴块可以通过HTML和CSS的配合实现,主要利用flexbox布局和伪元素来模拟钢琴的黑白键排列。 HTML结构 <div class="piano"> &l…

css制作扇形图

css制作扇形图

使用CSS制作扇形图 方法一:使用clip-path和transform 通过CSS的clip-path和transform属性可以快速实现扇形效果。定义一个圆形元素,然后裁剪出扇形部分。 .fan…

css制作卷边效果

css制作卷边效果

使用伪元素和渐变实现卷边效果 通过CSS伪元素和线性渐变可以模拟纸张卷边的视觉效果。这种方法不需要额外元素,仅通过::before或::after伪元素实现。 .element { positi…

css如何制作响应网页

css如何制作响应网页

响应式网页设计基础 使用CSS制作响应式网页的核心是通过媒体查询(Media Queries)和弹性布局(Flexbox/Grid)实现。媒体查询允许根据设备特性(如屏幕宽度)应用不同的样式规则。…

最新文章
  • java子类如何调用父类的方法

    2026-04-09 08:54:50

  • java如何定义一个类

    2026-04-09 08:51:25

  • java 如何四舍五入

    2026-04-09 08:49:47

  • java如何四舍五入

    2026-04-09 08:48:15

  • java如何输出数组中的数组

    2026-04-09 08:45:31

标签列表
  • vue (13931)
  • 原理 (626)
  • 分页 (603)
  • 跳转 (582)
  • 页面 (1094)
  • 路由 (650)
  • 列表 (473)
  • 功能 (1256)
  • 文件 (456)
  • 项目 (532)
  • 菜单 (444)
  • 组件 (1026)
  • 表格 (673)
  • 数据 (497)
  • 图片 (790)
  • js (4916)
  • 如何实现 (1693)
  • 效果 (625)
  • react (3311)
  • jquery (2238)
  • css (2728)
  • php (4572)
  • java (3021)
  • uniapp (1363)
  • elementui (828)

陕ICP备2023000799号  网站地图

Powered By Z-BlogPHP. Theme by TOYEAN.