技术经验解读:个人练习:使用HTML+CSS3制作图片轮播功能(不使用JavaScript)

简介: 技术经验解读:个人练习:使用HTML+CSS3制作图片轮播功能(不使用JavaScript)

先上效果图,不要在意用来当素材的图片:


在搜索相关资料的时候,查到有两种实现方式:一是使用JavaScript,二是使用CSS3中的Animation(动画),这里使用的是CSS3中的Animation实现的图片轮播功能。


首先我们要理解这个图片轮播的结构,我一早上都因为没有理解结构在那里浪费时间,中午睡了一觉起来思路就通了,就。。。做出来了┑( ̄Д  ̄)┍


其实就和老式电影放映机差不多原理,要显示的内容就是胶片上的一张张照片,并排排列:


轮播起来就像播放老式电影一样,胶片移动,显示区域会显示想要显示的那张照片:


我理解的轮播的原理就到这里为止了,接下来是实战部分。


注:因为会出现一层套一层的创建区域,代码部分如果有在某个区域内创建第二个区域的话,新创建的区域的代码部分会加粗显示。


先创建一个最外层的作为轮播区域的容器,id=homepage:


HTML:


1 [/span>body

2


3 [/span>div id="homepage"

4

5


6

之后我们的轮播区域都创建在这个id=homepage的中了。这里稍微设置一下它的样式,这个不一定要跟我一样,我这样设置只是我自己看的舒服:


CSS:


1 / 去除div区域与浏览器之间的边界 /


2 body{


3 margin:0px;


4 padding:0px;


5 }


6


7 / 最外层的div区域,里面有一个轮播区域 /


8 #homepage //代码效果参考:http://www.jhylw.com.cn/483823293.html

{

9 Width</span>:100%;


10 Height</span>:500px;


11 background-color:#E8E8FF;


12 }


就一片灰我就不截效果了。


在这个区域内再创建一个区域,class=carousel。这个相当于老式电影放映机的镜头(显示区域):


HTML:


1


2 [/span>div id="homepage"

3


4 [/span>div class="carousel"

5

6


7

8


设置CSS样式让它居中在页面中显示:


CSS:


1 / 轮播区域 /


2 .carousel {


3 / 设置显示区域的宽度和高度 /


4 Width</span>:600px;


5 Height</span>:300px;


6 / 隐藏溢出的内容


7 overflow:hidden; /


8


9 / 居中显示这个div区域 /


10 position:relative;


11 top:50%;


12 left:50%;


13 transform:translate(-50%,-50%);


14


15 background-color:black; / 完成轮播时删除 /


16 }


镜头(显示区域)的大小和胶片上的照片(轮播的内容)的大小是一致的。这里的overflow先注释,先不用,等会看到胶片(轮播内容的集合)的效果后再启用。此时页面是这样的:


接下来我们在镜头(显示区域)中创建胶片(显示内容的集合),class=carousel-set。


注意:这个并不是直接放内容的,它跟一个空白胶片一样,轮播的内容就是照片,要拍摄后才有内容(也即是说我们还要在“胶片”中创建区域)。


HTML:


1


2 [/span>div id="homepage"

3


4 [/span>div class="carousel"

5


6 [/span>div class="carousel-set"

7

8


9

10


11

12


然后设置一下CSS的样式,假设我们要显示四张照片,那我们就给它预留五张照片的位置(宽度),第五张和第一张相同,要给人一种无缝循环的感觉:


CSS:


1 / 轮播内容的集合 /


2 .carousel-set {


3 Width</span>:3000px; / 设置宽度为轮播内容宽度的总和 /


4 Height</span>:300px; / 轮播内容的高度 /


5


6 background-color:blue; / 完成轮播时删除 /


7 }


此时的效果如下:


因为宽度太长了,甚至超出了浏览器的范围。这个不用担心,我们之前在镜头(显示区域)的样式中有设置了overflow,只是暂时注释掉了而已,后面胶片(显示内容的集合)效果出来后我们再启用overflow。


胶片(显示内容的集合)准备好了,接下来就是胶片上的内容,也就是照片(显示内容)啦。


在胶片(显示内容的集合)中,创建我们的照片(显示内容)的。可能会有人问(不,不会有人问的的):为啥是一个不直接上呢?你想想,我们用,那我们可不止能显示照片,我们还能显示文字,或者放个超链接等等,可以扩展嘛。我们准备显示四张照片,那我们就创建五张照片的位置(区域),第五张和第一张相同,要给人一种无缝循环的感觉:


HTML:


1


2 [/span>div id="homepage"

3


4 [/span>div class="carousel"

5


6 [/span>div class="carousel-set"

7


8 [/span>div class="carousel-content"

9 [/span>img src="image/1.png" alt="非著名调查员:苍穹之章" />


10

11 [/span>div class="carousel-content"

12 [/span>img src="image/2.png" alt="非著名调查员:苍穹之章" />


13

14 [/span>div class="carousel-content"

15 [/span>img src="image/3.png" alt="非著名调查员:苍穹之章" />


16

17 [/span>div class="carousel-content"

18 [/span>img src="image/4.png" alt="非著名调查员:苍穹之章" />


19

20 [/span>div class="carousel-content"

21 [/span>img src="image/1.png" alt="非著名调查员:苍穹之章" />


22

23


24

25


26

27


28

29


这里顺便将要轮播的图片加上去了,因为纯色。。。不太好分辨内容间的间隔(虽然的素材黑边本来就不好分别,不要在意这些细节)然后设置一下CSS样式,让胶片(轮播内容的集合)成型:


CSS:


1 / 轮播的内容 /


2 .carousel-content {


3 Width</span>:600px;


4 Height</span>:300px;


5 float:left; / 设置左浮动,让轮播内容排成一行 /


6 }


7


8 / 轮播的内容中的标签 /


9 .carousel-content>img{


10 Width</span>:100%;


11 Height</span>:100%;


12 }


此时的运行效果如下:


是不是就有种胶片(内容的集合)的感觉啦,接下来我们尝试让这个胶片(内容的集合)移动。接下来就到这边文章的主角——CSS3中的Animation出场了!


Animation这里就不做过多介绍,毕竟这个笔记是介绍实现轮播功能,不是介绍Animation的。接下来步骤不理解的话建议去看一下Animation的一些资料。


我们先创建CSS3的@keyframes规则,这个规则和关键帧很像,比如一个动画,在播放到50%的时候是一个关键帧,播放到100%的时候是一个关键帧,关键帧之间有补帧,让动画看起来更加流畅。


CSS:


1 / keyframes规则 /


2 @keyframes playMovie {


3 0% {margin-left:0px;}


4 10% {margin-left:0px;}


5 20% {margin-left:-600px;}


6 40% {margin-left:-600px;}


7 50% {margin-left:-1200px;}


8 70% {margin-left:-1200px;}


9 80% {margin-left:-1800px;}


10 90% {margin-left:-1800px;}


11 100% {margin-left:-2400px;}


12 }


这里采用的是修改胶片(显示内容的集合)的左侧外边距的方式来移动胶片(显示内容的集合)。接下来我们在胶片的CSS样式表中应用这个动画规则:


CSS:


1 / 轮播内容的集合 /


2 .c

相关文章
|
11天前
|
移动开发 前端开发 JavaScript
[HTML、CSS]细节与使用经验
本文总结了前端开发中的一些重要细节和技巧,包括CSS选择器、定位、层级、全局属性、滚轮控制、轮播等。作者以纯文字形式记录,便于读者使用<kbd>Ctrl + F</kbd>快速查找相关内容。文章还提供了示例代码,帮助读者更好地理解和应用这些知识点。
34 1
[HTML、CSS]细节与使用经验
|
12天前
|
移动开发 前端开发 JavaScript
[HTML、CSS]知识点
本文涵盖前端知识点扩展、HTML标签(如video、input、canvas)、datalist和details标签的使用方法,以及CSS布局技巧(如margin、overflow: hidden和动态height)。文章旨在分享作者的学习经验和实用技巧。
27 1
[HTML、CSS]知识点
|
7天前
|
移动开发 JavaScript 前端开发
html table+css实现可编辑表格的示例代码
html table+css实现可编辑表格的示例代码
|
13天前
|
前端开发 JavaScript 数据处理
CSS 变量的作用域和 JavaScript 变量的作用域有什么不同?
【10月更文挑战第28天】CSS变量和JavaScript变量虽然都有各自的作用域概念,但由于它们所属的语言和应用场景不同,其作用域的定义、范围、覆盖规则以及与其他语言特性的交互方式等方面都存在明显的差异。理解这些差异有助于更好地在Web开发中分别运用它们来实现预期的页面效果和功能逻辑。
|
3天前
|
缓存 前端开发 JavaScript
优化CSS和JavaScript加载
Next.js和Nuxt.js在优化CSS和JavaScript加载方面提供了多种策略和工具。Next.js通过代码拆分、图片优化和特定的CSS/JavaScript优化措施提升性能;Nuxt.js则通过代码分割、懒加载、预渲染静态页面、Webpack配置和服务端缓存来实现优化。两者均能有效提高应用性能。
|
3天前
|
前端开发 JavaScript
用HTML CSS JS打造企业级官网 —— 源码直接可用
必看!用HTML+CSS+JS打造企业级官网-源码直接可用,文章代码仅用于学习,禁止用于商业
30 1
|
8天前
|
前端开发 JavaScript 安全
HTML+CSS+JS密码灯登录表单
通过结合使用HTML、CSS和JavaScript,我们创建了一个带有密码强度指示器的登录表单。这不仅提高了用户体验,还帮助用户创建更安全的密码。希望本文的详细介绍和代码示例能帮助您在实际项目中实现类似功能,提升网站的安全性和用户友好性。
19 3
|
11天前
|
JavaScript
JS鼠标框选并删除HTML源码
这是一个js鼠标框选效果,可实现鼠标右击出现框选效果的功能。右击鼠标可拖拽框选元素,向下拖拽可实现删除效果,简单实用,欢迎下载
25 4
|
11天前
|
JavaScript
js实现简洁实用的网页计算器功能源码
这是一款使用js实现简洁实用的网页计算器功能源码。可实现比较基本的加减乘除四则运算功能,界面简洁实用,是一款比较基本的js运算功能源码。该源码可兼容目前最新的各类主流浏览器。
20 2

热门文章

最新文章