实现一个移动端焦点轮播图

简介: 实现一个移动端焦点轮播图

HTML结构

创建一个轮播图的容器,并在其中放置轮播图片。

<div id="carousel">  
    <div class="carousel-item active">  
        <img src="image1.jpg" alt="Image 1">  
    </div>  
    <div class="carousel-item">  
        <img src="image2.jpg" alt="Image 2">  
    </div>  
    <!-- 更多图片... -->  
</div>  
  
<button id="prevBtn">上一张</button>  
<button id="nextBtn">下一张</button>
  1. CSS样式:为轮播图和按钮添加样式。
#carousel {  
    position: relative;  
    overflow: hidden;  
    width: 100%;  
    height: 0;  
    padding-bottom: 56.25%; /* 16:9 Aspect Ratio */  
}  
  
.carousel-item {  
    position: absolute;  
    top: 0;  
    left: 100%;  
    width: 100%;  
    height: 100%;  
    transition: left 0.5s ease-in-out;  
}  
  
.carousel-item img {  
    width: 100%;  
    height: 100%;  
    object-fit: cover;  
}  
  
.carousel-item.active {  
    left: 0;  
}  
  
#prevBtn, #nextBtn {  
    position: absolute;  
    top: 50%;  
    transform: translateY(-50%);  
    background-color: rgba(0, 0, 0, 0.5);  
    color: white;  
    border: none;  
    padding: 10px;  
    cursor: pointer;  
}  
  
#prevBtn {  
    left: 10px;  
}  
  
#nextBtn {  
    right: 10px;  
}

JavaScript逻辑

使用JavaScript来控制轮播图的切换

 

// 模拟接口返回的图片数量  
const imageCount = 5;  
  
// 获取DOM元素  
const carousel = document.getElementById('carousel');  
const prevBtn = document.getElementById('prevBtn');  
const nextBtn = document.getElementById('nextBtn');  
  
// 创建轮播图项  
for (let i = 0; i < imageCount; i++) {  
    const item = document.createElement('div');  
    item.classList.add('carousel-item');  
    const img = document.createElement('img');  
    img.src = `image${i + 1}.jpg`;  
    img.alt = `Image ${i + 1}`;  
    item.appendChild(img);  
    carousel.appendChild(item);  
}  
  
// 设置初始激活状态  
carousel.querySelector('.carousel-item').classList.add('active');  
  
// 上一张/下一张图片  
let currentIndex = 0;  
prevBtn.addEventListener('click', () => {  
    currentIndex--;  
    if (currentIndex < 0) currentIndex = imageCount - 1;  
    updateCarousel();  
});  
  
nextBtn.addEventListener('click', () => {  
    currentIndex++;  
    if (currentIndex >= imageCount) currentIndex = 0;  
    updateCarousel();  
});  
  
// 更新轮播图  
function updateCarousel() {  
    const items = carousel.querySelectorAll('.carousel-item');  
    items.forEach(item => item.classList.remove('active'));  
    items[currentIndex].classList.add('active');  
}

 

相关文章
|
5月前
|
小程序
【微信小程序-原生开发】实用教程18 - 九宫格、底部悬停按钮、页内悬浮按钮、拨打电话、一键复制
【微信小程序-原生开发】实用教程18 - 九宫格、底部悬停按钮、页内悬浮按钮、拨打电话、一键复制
70 0
|
5月前
|
小程序 API
【微信小程序-原生开发】实用教程07 - Grid 宫格导航,详情页,侧边导航(含自定义页面顶部导航文字)
【微信小程序-原生开发】实用教程07 - Grid 宫格导航,详情页,侧边导航(含自定义页面顶部导航文字)
124 0
|
前端开发
移动端盒子拖拽
移动端盒子拖拽
61 0
|
小程序
【微信小程序】滚动 轮播图 文本
🍒小程序的宿主环境 - 组件 1.scroll-view 组件的基本使用 2.swiper 和 swiper-item 组件的基本使用 3.text 组件的基本使用 4.rich-text 组件的基本使用
|
容器
ivx页面(3)轮播图的动态数据绑定实现以及轮播图点击跳转页面
ivx页面(3)轮播图的动态数据绑定实现以及轮播图点击跳转页面
244 0
uniapp使用组件显示轮播图
uniapp使用组件显示轮播图
80 0
|
JavaScript Serverless 容器
ue仿携程轮播图效果(滑动轮播,下方高度自适应)
这篇文章主要介绍了vue仿携程轮播图效果(滑动轮播,下方高度自适应),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
|
架构师 开发者
导航控件|学习笔记
快速学习导航控件。
103 0
导航控件|学习笔记
|
前端开发 开发者
轮播图-移动端|学习笔记
快速学习 轮播图-移动端
107 0
轮播图-移动端|学习笔记
京东流式布局底边栏案例
京东流式布局底边栏案例
108 0
京东流式布局底边栏案例