纯CSS实现轮播图效果,你不知道的CSS3黑科技
前言
轮播图已经是一个很常见的东西,尤其是在各大App的首页顶部栏,经常会轮番显示不同的图片。
一提到轮播图如何实现时,很多人的第一反应就是使用Javascript的定时器,当然这种方法是可以实现的。不过就是有些繁琐,今天这篇文章我们来看看如何不用Javascript,而使用纯CSS代码去实现轮播图吧。
这篇文章的所有代码我都放在了群文件了,感兴趣的同学可以去下载看看。
CSS
实现效果
首先我们来看看只使用CSS实现的轮播图效果。
实现效果图
具体分析
看到上述的实现效果后,我们来具体分析下页面的构成。
页面在布局上首先要有5张图片,图片固定宽度。
每张图片对应一个标题,标题通过ul>li实现,事先算好宽度,跟随图片一起滚动。
下边有个1,2,3,4,5表示图片顺序的索引,鼠标放上去后会显示对应的图片。
HTML页面
接下来我们通过代码层面去看看整个效果是如何实现的。
首先来看看HTML页面的实现,代码中都有每个区域的描述。
HTML页面
CSS部分
实现这个效果主要是通过CSS代码的,其代码量比较大,我们分开来看。
外层容器
对于最外层容器我们设置绝对定位,方便图片标题子元素的定位。
外层容器
图片标题
对于图片的标题我们也采用绝对定位,并且让标题横向一行展示,方便在动画的时候直接横向滚动。
得到的代码如下所示。
图片标题
图片与图片容器
接下来是设置图片容器属性以及图片的基本大小。
图片容器也采用绝对定位,宽度可以动态设置,根据图片数量计算。每张图片设置宽度与高度,得到的代码如下。
图片与图片容器
图片动画效果
然后设置图片的动画效果,对于任意的图片都有进入和静止两个状态,中间的效果可以任意定制。
在这里,中间效果设置成5%的间隔,其他时间在进行位置的切换,因为图片是处于水平分布,通过设置margin-left的值为负数进行偏移即可。
图片动画效果
数字索引的基本属性
对于下面的数字图标也是通过基本的CSS属性进行设置的,包括宽高,行高,透明度等等。
在鼠标移动到对应的数字上后,数字会显示不同的颜色。而且在鼠标停留在数字上后,动画效果会暂停。
数字索引基本属性
数字索引的偏移量
因为数字是水平方向展示的,因此要设定每个数字的水平偏移量。
数字水平偏移量
鼠标停在数字上的动画效果
然后就是处理鼠标停留在数字上的动画效果,因为每张图片对应特定的数字,需要计算出每次的动画开始位置和结束位置。
鼠标停在数字上的动画效果
动画效果赋予指定的数字
最后一步就是将定义的动画效果赋予指定的数字上,每个数字都有特定的id。得到的代码如下。
动画效果赋予指定的数字
至此所有步骤完成了,就可以得到文章开始的动画效果了。
结束语
这篇文章完全通过CSS实现了一个轮播图的效果,相比于使用JS来说减少页面阻塞程度,效果更好。
看完后你有过这样的思考不?![]()
为什么这样能实现?
能不能像js那样循环播放?从第一个图可以跳到最后一个图后面
你是否掌握了这样的思路?
web前端/H5/javascript学习群:250777811
欢迎关注此公众号→【web前端EDU】跟大佬一起学前端!欢迎大家留言讨论一起转发
纯CSS实现轮播图效果,你不知道的CSS3黑科技的更多相关文章
- 拓展-教你手把手用纯CSS写轮播图
先看成品图[示例网址:][1] [1]: https://huruji.github.io/css-imitate-js/slider/index.html一.随便说几句####css3动画效果的强大 ...
- 纯 CSS 实现滑动轮播图效果
只使用css实现轮播图简单的操作 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- 纯css实现轮播图
轮播图的实现原理其实是比较简单的 举个例子 <div class="main"> <div class="div-main"></ ...
- 用html +js+css 实现页面轮播图效果
html 页面 <html lang="en"> <head> <meta charset="UTF-8"> <met ...
- 纯CSS焦点轮播效果-功能可扩展
个人博客: http://mcchen.club 纯CSS3实现模拟焦点轮播效果,支持JQ等扩展各项功能.废话少说,直接贴代码. <!DOCTYPE html> <html> ...
- HTML+CSS+Javascript实现轮播图效果
HTML+CSS+Javascript实现轮播图效果 注意:根据自己图片大小来更改轮播图大小. <!doctype html> <html> <head> < ...
- js 实现淘宝无缝轮播图效果,可更改配置参数 带完整版解析代码[slider.js]
前言: 本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽. 本篇文章为您分析一下原生JS写淘宝无缝轮播图效果 需求分析: ...
- js实现轮播图效果(附源码)--原生js的应用
1.js实现轮播图效果 <!DOCTYPE html><html lang="en"><head> <meta charset=" ...
- JavaScript实现轮播图效果
我又来了,同志们.老想你们了 捕获小可爱一枚. 下面进入正题:用JavaScript原生代码写轮播图效果. 具体效果就不多说了,网站上面的轮播效果我们都知晓.下面是展示代码 html代码: <d ...
随机推荐
- 1020 Tree Traversals (25 分)(二叉树的遍历)
给出一个棵二叉树的后序遍历和中序遍历,求二叉树的层序遍历 #include<bits/stdc++.h> using namespace std; ; int in[N]; int pos ...
- vue 三目运算
:class="followed ? 'btn-success':'btn-secondary'"
- 【BestCoder 1st Anniversary】
AB题都是签到题.... C 题意: 有一串数列,An=3*n*(n-1)+1 然后要从A数列中选取尽量少个数(可重复),使得Sum(An)=m 题解: 贪心地想,能拿大就拿大很明显就是错的...[哪 ...
- 《R语言实战》读书笔记--第三章 图形初阶(一)
3.1使用图形 可以使用pdf等函数将图形直接保存在文件中.在运用attach和detach函数的使用中经常出现错误,比如命名重复的问题,所以,应该尽量避免使用这两个函数. plot是一般的画图函数, ...
- 《c程序设计语言》-3.2 字符串转换
#include <stdio.h> #define Num 1000 int main() { int i = 0,j,k,count2 = 0; char s[Num] = {'\0' ...
- 3.1 Java以及Lucene的安装与配置
Lucene是Java开发的一套用于全文检索和搜索的开源程序库,它面向对象多层封装,提供了一个低耦合.与平台无关的.可进行二次开发的全文检索引擎架构,是这几年最受欢迎的信息检索程序库[1].对Luce ...
- Jsoup 标签选择器 选择img标签中src的值
package com.enation.newtest; import java.io.BufferedReader; import java.io.File; import java.io.File ...
- shell脚本——项目2
案例名称:发送告警邮件 背景: 外部邮箱的服务器(163等) 安装mailx(yum) 配置邮箱信息 vim /etc/mail.rc #配置自己的邮箱信息 set from=18906534060@ ...
- php 字符串重要函数
1.chop() 从字符串右端移除字符 chop(string,charlist) $str="hello world~"; echo chop($str,"ld~&qu ...
- js获取url参数,操作url参数
function getParam(key) { var tmp = location.search; tmp = decodeURIComponent(tmp); var index = tmp.i ...