纯css制作轮播图(自动)最最最最详细的教程

2024-03-24 08:40

本文主要是介绍纯css制作轮播图(自动)最最最最详细的教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

太太太太太太适合新手啦!

因为太详细了····老代码人应该会觉得啰嗦吧····

思路:

  1. 先设置一个让图片显示在屏幕里的固定盒子
  2. 其次插入图片 使其横向排列
  3. 将超出固定盒子的图片隐藏住
  4. 在设置动画
  5. 利用span标签制作小圆点
  6. 多设置一个span标签做移动在小圆点之间的小圆点
  7. 给移动的小圆点设入与图片相同的动画
  8. 即可完成

第一步:敲入html

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>css轮播图</title><link rel="stylesheet" type="text/css" href="css/lbt.css"/></head><body><!--大盒子box--><div class="box"><!--imgsum盒子里嵌套小li装图片--><div class="imgsum"><ul><li><img src="img/1.webp"/></li><li><img src="img/2.webp"/></li><li><img src="img/3.webp"/></li><li><img src="img/4.webp"/></li><li><img src="img/5.webp"/></li></ul></div><!--圆点--><div class="yuandian"><span class="dot"></span><span class="dot"></span><span class="dot"></span><span class="dot"></span><span class="dot"></span><span class="dot active"></span>	</div></div></body>
</html>

效果图为:

 第二步:加入css

首先取消浏览器自带的内外边距,在取消小li自带的小圆点

* {margin: 0;padding: 0;list-style: none;
}

(先设置一个让图片显示在屏幕里的固定盒子,是其多余的图片隐藏)<div class="box">

给大盒子添加样式 

.box {width: 800px;height: 500px;overflow: hidden;margin: 100px auto;/*加入相对定位 父级元素*/position: relative;
}

<div class="imgsum">嵌套小li装图片 ,给其加入样式和动画

.imgsum  {width: 4000px;height: 500px;/*平滑过渡*/transition:5s;/*动画:动画名称 一共25s 动画以低速结束 规定动画播放无限次(永远)动画在奇数次(1、3、5...)正向播放,在偶数次(2、4、6...)反向播放。*/ -webkit-animation: img 25s ease-out infinite alternate;
}

(其次插入图片 使其横向排列)

<ul>
                    <li><img src="img/1.webp"/></li>
                    <li><img src="img/2.webp"/></li>
                    <li><img src="img/3.webp"/></li>
                    <li><img src="img/4.webp"/></li>
                </ul>

给图片加入样式

.imgsum ul li img {/*添加左浮动 使图片横向排列*/float: left;width: 800px;height: 500px;
}

此时此刻我们的图片呈现为:

给其加入动画 使用@keyframes

@-webkit-keyframes img{/*因为我设置的图片宽度为800px,所以在动画到25%时需要向左移动一个照片的宽度,在50%的时候需要向左移动两个照片的宽度,在75%的时候需要向左移动三个照片的宽度,等等以此类推注意:向左移动的时候是负值*/0% {margin-left:0px ;}25% {margin-left: -800px;}50% {margin-left:  -1600px;}75% {margin-left: -2400px;}100% {margin-left: -3200px;}
}

到此为止 我们的图片已经可以动起来啦。

下面我们加入小圆点。加入小圆点的方法有很多,我使用了span标签。

           <div class="yuandian"><span class="dot"></span><span class="dot"></span><span class="dot"></span><span class="dot"></span><span class="dot"></span><!--移动的小圆点--><span class="dot active"></span>	</div>

 给装小圆点的盒子<div class="yuandian">加入样式:

.yuandian {/*加入绝对定位 父级元素为.box父相子绝 */position: absolute;bottom: 0;/*修改背景颜色*/background-color: #e0eefc40;/*自动撑成图片尺寸的100%*/left: 0;right: 0;/*设置高度为50px 水平居中 垂直居中*/height: 50px;text-align:center;/*行高等于高度时就显示垂直居中*/line-height: 50px;
}

再给小圆点<span class="dot"></span>加入样式:

.dot {/*使span变成行内块元素,将其横排显示*/display:inline-block;width: 10px;height: 10px;background: #fff;/*这个属性允许设置圆角边框,当设置为50%时可得到一个圆形*/border-radius: 50%;/*每个小圆点直接都相距2px*/margin: 0 2px;
}

给移动的<span class="dot active"></span>    添加样式以及动画,也就是后文说的粉色小球。

.active {/*设置定位为绝对定位*/position: absolute;background-color: pink;top: 21px;left: 356px;/*设置动画,此时粉色小球的动画要与图片保持一致.注:动画名称要改变*/animation:dot1 25s ease-out infinite alternate ;
}
@-webkit-keyframes dot1{/*移动的粉色小圆点需要跟图片动画保持一致 所以动画到百分比的时候要保持一致为什么是左移动356 375px 呢?因为我这次用的动画是用定位做的给移动的active小圆点设了绝对定位。*/0% {left:356px ;}25% {left: 375px;}50% {left:  393px;}75% {left: 412px;}100% {left: 431px;}
}
计算粉色小球的移动距离
如何算 粉色小球移动距离

 

这篇关于纯css制作轮播图(自动)最最最最详细的教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/841052

相关文章

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

PyCharm 接入 DeepSeek最新完整教程

《PyCharm接入DeepSeek最新完整教程》文章介绍了DeepSeek-V3模型的性能提升以及如何在PyCharm中接入和使用DeepSeek进行代码开发,本文通过图文并茂的形式给大家介绍的... 目录DeepSeek-V3效果演示创建API Key在PyCharm中下载Continue插件配置Con

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

Springboot 中使用Sentinel的详细步骤

《Springboot中使用Sentinel的详细步骤》文章介绍了如何在SpringBoot中使用Sentinel进行限流和熔断降级,首先添加依赖,配置Sentinel控制台地址,定义受保护的资源,... 目录步骤 1: 添加 Sentinel 依赖步骤 2: 配置 Sentinel步骤 3: 定义受保护的

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加