先来看一下实现的效果:


实现原理:

HTML中使用ul>li存放图片

CSS使用CSS3的animation来完成动画


  1. <!-- HTML -->
  2. <section class="slider-container">
  3. <ul class="slider">
  4. <li class="slider-item slider-item1">item1</li>
  5. <li class="slider-item slider-item2">item2</li>
  6. <li class="slider-item slider-item3">item3</li>
  7. <li class="slider-item slider-item4">item4</li>
  8. <li class="slider-item slider-item5">item5</li>
  9. </ul>
  10. </section>
  1. /* CSS */
  2. /* CSS变量 */
  3. :root{
  4. --red:red;
  5. --pink:pink;
  6. --blue:blue;
  7. --hotpink:hotpink;
  8. --yellow:yellow;
  9. --count:2s;
  10. --count1:calc(1*var(--count));
  11. --count2:calc(2*var(--count));
  12. --count3:calc(3*var(--count));
  13. --count4:calc(4*var(--count));
  14. --count5:calc(5*var(--count));
  15. }
  16. /* 父容器 */
  17. .slider-container {
  18. width: 500px;
  19. height: 300px;
  20. overflow: hidden;
  21. margin: auto;
  22. }
  23. /* ul元素(做动画的元素) */
  24. .slider{
  25. width: 2500px;
  26. height: 300px;
  27. float: left;
  28. animation: move6 10s var(--count1) linear infinite;
  29. -webkit-animation: move6 10s var(--count1) linear infinite;
  30. }
  31. /* 当鼠标放在ul上停止动画进行 */
  32. .slider:hover{
  33. animation-play-state: paused;
  34. }
  35. .slider-item{
  36. width: 500px;
  37. height: 100%;
  38. line-height: 300px;
  39. float: left;
  40. text-align: center;
  41. font-size: 30px;
  42. color: #fff;
  43. }
  44. .slider-item1{
  45. background: var(--red);
  46. }
  47. .slider-item2{
  48. background: var(--pink);
  49. }
  50. .slider-item3{
  51. background: var(--blue);
  52. }
  53. .slider-item4{
  54. background: var(--hotpink);
  55. }
  56. .slider-item5{
  57. background: var(--yellow);
  58. }
  59. /*定义动画*/
  60. @keyframes move6 {
  61. from {
  62. transform: translateX(0)
  63. }
  64. to {
  65. transform: translateX(-2000px)
  66. }
  67. }

以上CSS部分使用了一些CSS原生变量和计算属性:

  1. :root{}指在花括号内设置全局css变量
  2. 变量以'--'开头
  3. 使用变量的时候需要在var()中使用
  1. 计算属性cacle()可以进行计算
  2. 任何长度值都可以计算
  3. 内的运算符前后都需有一个空格' '

纯CSS实现自动轮播,CSS变量的定义与使用,计算属性的使用的更多相关文章

  1. CSS+jQuery实现轮播

    CSS+jQuery实现轮播 CSS jQuery 前端  实现功能: 自动轮播: 鼠标放在上面停止轮播: 鼠标放在上面显示左右切换的按钮: 鼠标放在小圆圈上显示对应的图片: 轮播效果图 style. ...

  2. Jquery+css实现图片无缝滚动轮播

    Today,在XX学院的教学视频中,偶尔看到了Jquery+css实现图片无缝滚动轮播视频教程,虽然以前已写过类似的,但是我感觉他学的比较精简.为了方便以后做项目时直接拷贝,特地写出来,顺便和大家分享 ...

  3. css3 - 纯css实现一个轮播图

    这是我上一次的面试题.一晃两个月过去了. 从前都是拿原理骗人,把怎么实现的思路说出来. 我今天又被人问到了,才想起来真正码出来.码出来效果说明一切: 以上gif,只用到了5张图片,一个html+css ...

  4. 2017年10月21日 CSS常用样式&鼠标样式 以及 jQuery鼠标事件& jQuery图片轮播& jQuery图片自动轮播代码

    css代码 背景与前景 background-color:#0000; //背景色,样式表优先级高 background-image:url(路径); //设置背景图片 background-atta ...

  5. 纯js轮播图练习-2,js+css旋转木马层叠轮播

    基于css3的新属性,加上js的操作,让现在js轮播图花样越来越多. 而现在出现的旋转木马层叠轮播的轮播图样式,却是得到了很多人都喜爱和投入使用. 尤其是在各大软件中,频繁的出现在大家的眼里,在web ...

  6. 纯CSS 多图片轮播

    今天做东西的时候,遇到一个问题关于图片轮播的问题,以前也接触过(百度 人家的demo改改..),再次遇到这个问题的时候,根据以前的印象找到了demo正信心满满的准备改一下嵌进去,发现 jquery.m ...

  7. jquery里面的attr和css来设置轮播图竟然效果不一致

    /*封装$*/ // window.$=HTMLElement.prototype.$=function(selector){ // var elems=(this==window?document: ...

  8. css预编译语言 sass scss(变量$var, css嵌套规则,@import规则,@extend,@mixin)

    什么是sass Sass 是对 CSS 的扩展,让 CSS 语言更强大.优雅. 它允许你使用变量.嵌套规则. mixins.导入等众多功能, 并且完全兼容 CSS 语法. Sass 有助于保持大型样式 ...

  9. 前端开发日常——CSS动画无限轮播

    近来没有什么值得写的东西,空闲的时候帮前端的同学做了些大屏上的展示模块,就放在这里写写吧,手把手"需求->设计-> 实现",受众偏新手向. 为了直观便于理解, 直接把结 ...

随机推荐

  1. 技术分享预告丨k3s在边缘计算中的应用实践

    技术分享是在[Rancher官方微信技术交流群]里以图文直播+QA实时互动的方式,邀请国内已落地经验的公司或团队负责人分享生产落地的最佳实践.记得添加微信小助手(微信号:rancher2)入群,实时参 ...

  2. MongoDB(二):在Windows环境安装MongoDB

    1. 在Windows环境安装 1.1 MongoDB下载 要在Windows上安装MongoDB,首先打开MongoDB官网:https://www.mongodb.com/download-cen ...

  3. 深度好文:PHP写时拷贝与垃圾回收机制(转)

    原文地址:http://www.php100.com/9/20/87255.html 写入拷贝(Copy-on-write,简称COW)是一种计算机程序设计领域的优化策略.其核心思想是,如果有多个调用 ...

  4. Electron npm install 常见错误(Windows)

    问题一:node_gyp使用版本不对 if not defined npm_config_node_gyp (node "C:\Users\Administrator\AppData\Roa ...

  5. Android五大布局详解——TableLayout(表格布局)

    TableLayout 前面所学的LinearLayout和RelativeLayout两大布局已经完全适用于各种开发条件下,其他的布局仅供参考学习,毕竟知识就是力量,以后的开发过程中万一遇到也能游刃 ...

  6. 1、netty入门说明

    netty中的例子,基本模式都是:server -> Initializer -> Handler . 在server中去启动线程,打开端口,设置initializer,和一些启动的参数配 ...

  7. Vue-cli脚手架 安装 并创建项目--命令

    检查是否有 node - v 安装Vue-cli npm install -g vue-cli 安装好后,执行 vue list可以看到很多实用的模板,我这里实用的webpack 初始化模板 vue ...

  8. [PHP] socket客户端时的超时问题

    连接socket分为连接超时和读取超时 $sock=stream_socket_client("www.google.com:80", $errno,$errstr,2);    ...

  9. FreeRTOS操作系统教程发布,支持F103,F407和F429,配套145个例子,1200页教程

    前言说明:1. 首先感谢大家对我们安富莱电子的支持. 2. FreeRTOS最大的优势就是开源免费,商业使用的话不需要用户公开源代码,也不存在任何版权问题,是当前小型嵌入式操作系统   市场使用率最高 ...

  10. LeetCode 771: 宝石与石头 Jewels and Stones

    题目: 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. You're given strings ...