…">
当前位置:首页 > CSS

css 制作焦点图

2026-01-28 15:58:51CSS

使用纯CSS制作焦点图

通过CSS的动画和过渡效果可以实现简单的焦点图轮播,无需JavaScript。以下是一个基础实现方案:

HTML结构:

<div class="slider">
  <div class="slides">
    <div class="slide">Slide 1</div>
    <div class="slide">Slide 2</div>
    <div class="slide">Slide 3</div>
  </div>
</div>

CSS样式:

.slider {
  width: 100%;
  overflow: hidden;
  position: relative;
}

.slides {
  display: flex;
  width: 300%; /* 根据幻灯片数量调整 */
  animation: slide 10s infinite;
}

.slide {
  width: 33.33%; /* 100% / 幻灯片数量 */
  height: 300px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  color: white;
}

.slide:nth-child(1) { background: #ff5252; }
.slide:nth-child(2) { background: #4caf50; }
.slide:nth-child(3) { background: #2196f3; }

@keyframes slide {
  0% { transform: translateX(0); }
  33% { transform: translateX(-33.33%); }
  66% { transform: translateX(-66.66%); }
  100% { transform: translateX(0); }
}

添加导航指示器

为焦点图添加可视化的导航点指示当前幻灯片位置:

HTML新增:

<div class="dots">
  <span class="dot"></span>
  <span class="dot"></span>
  <span class="dot"></span>
</div>

CSS新增:

.dots {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
}

.dot {
  width: 12px;
  height: 12px;
  margin: 0 5px;
  border-radius: 50%;
  background: rgba(255,255,255,0.5);
  animation: dotAnimation 10s infinite;
}

.dot:nth-child(1) { animation-delay: 0s; }
.dot:nth-child(2) { animation-delay: -6.66s; }
.dot:nth-child(3) { animation-delay: -3.33s; }

@keyframes dotAnimation {
  0%, 33.33% { background: white; }
  33.34%, 100% { background: rgba(255,255,255,0.5); }
}

响应式设计调整

确保焦点图在不同屏幕尺寸下正常显示:

@media (max-width: 768px) {
  .slide {
    height: 200px;
    font-size: 1.5rem;
  }

  .dots {
    bottom: 10px;
  }

  .dot {
    width: 8px;
    height: 8px;
  }
}

悬停暂停功能

添加鼠标悬停时暂停轮播的交互效果:

.slider:hover .slides {
  animation-play-state: paused;
}

.slider:hover .dot {
  animation-play-state: paused;
}

过渡效果优化

使用更平滑的过渡效果替代默认的线性动画:

.slides {
  animation: slide 10s infinite ease-in-out;
}

@keyframes slide {
  0%, 25% { transform: translateX(0); }
  33%, 58% { transform: translateX(-33.33%); }
  66%, 91% { transform: translateX(-66.66%); }
  100% { transform: translateX(0); }
}

自动高度调整

根据内容动态调整焦点图高度:

css 制作焦点图

.slider {
  height: auto;
}

.slide {
  height: auto;
  min-height: 300px;
  padding: 2rem;
}

这种方法创建的焦点图完全依赖CSS动画,适合简单展示需求。如需更复杂的交互(如手动切换、触摸滑动等),建议结合JavaScript实现。

标签: 焦点css
分享给朋友:

相关文章

css div 制作导航菜单

css div 制作导航菜单

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

css制作表单

css制作表单

使用CSS制作表单的基本方法 创建一个美观且功能完善的表单需要结合HTML结构和CSS样式。以下是关键步骤和示例代码: HTML基础结构 <form class="my-form">…

css制作固定模板

css制作固定模板

使用CSS创建固定模板的方法 固定模板通常指页面布局中某些元素(如导航栏、页脚)位置固定,不随滚动条移动。以下是几种实现方式: 固定定位(Fixed Positioning) 通过position:…

制作css开关

制作css开关

使用纯CSS创建开关 HTML结构需要包含一个隐藏的复选框和一个关联的标签元素: <label class="switch"> <input type="checkbox"&g…

css制作

css制作

CSS 基础语法 CSS(层叠样式表)用于描述HTML元素的样式。一个基本的CSS规则由选择器和声明块组成。选择器指定要样式化的HTML元素,声明块包含一个或多个属性-值对,用花括号 {} 包裹。…

css制作导航

css制作导航

CSS 制作导航的方法 基础水平导航栏 使用无序列表(<ul>)和浮动(float)或 Flexbox 布局实现水平导航: <nav> <ul class="ho…