经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » HTML/CSS » CSS3 » 查看文章
CSS3 实现时间轴动画_css3_CSS
来源:jb51  时间:2020/11/23 11:51:15  对本文有异议

实现效果

html

  1. <h2>CSS3 Timeline</h2>
  2. <p>Please set the $vertical variable to false to see the horizontal version.</p>
  3. <ul id='timeline'>
  4. <li class='work'>
  5. <input class='radio' id='work5' name='works' type='radio' checked>
  6. <div class="relative">
  7. <label for='work5'>Lorem ipsum dolor sit amet</label>
  8. <span class='date'>12 May 2013</span>
  9. <span class='circle'></span>
  10. </div>
  11. <div class='content'>
  12. <p>
  13. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Odio ea necessitatibus quo velit natus cupiditate qui alias possimus ab praesentium nostrum quidem obcaecati nesciunt! Molestiae officiis voluptate excepturi rem veritatis eum aliquam qui laborum non ipsam ullam tempore reprehenderit illum eligendi cumque mollitia temporibus! Natus dicta qui est optio rerum.
  14. </p>
  15. </div>
  16. </li>
  17. <li class='work'>
  18. <input class='radio' id='work4' name='works' type='radio'>
  19. <div class="relative">
  20. <label for='work4'>Lorem ipsum dolor sit amet</label>
  21. <span class='date'>11 May 2013</span>
  22. <span class='circle'></span>
  23. </div>
  24. <div class='content'>
  25. <p>
  26. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Odio ea necessitatibus quo velit natus cupiditate qui alias possimus ab praesentium nostrum quidem obcaecati nesciunt! Molestiae officiis voluptate excepturi rem veritatis eum aliquam qui laborum non ipsam ullam tempore reprehenderit illum eligendi cumque mollitia temporibus! Natus dicta qui est optio rerum.
  27. </p>
  28. </div>
  29. </li>
  30. <li class='work'>
  31. <input class='radio' id='work3' name='works' type='radio'>
  32. <div class="relative">
  33. <label for='work3'>Lorem ipsum dolor sit amet</label>
  34. <span class='date'>10 May 2013</span>
  35. <span class='circle'></span>
  36. </div>
  37. <div class='content'>
  38. <p>
  39. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Odio ea necessitatibus quo velit natus cupiditate qui alias possimus ab praesentium nostrum quidem obcaecati nesciunt! Molestiae officiis voluptate excepturi rem veritatis eum aliquam qui laborum non ipsam ullam tempore reprehenderit illum eligendi cumque mollitia temporibus! Natus dicta qui est optio rerum.
  40. </p>
  41. </div>
  42. </li>
  43. <li class='work'>
  44. <input class='radio' id='work2' name='works' type='radio'>
  45. <div class="relative">
  46. <label for='work2'>Lorem ipsum dolor sit amet</label>
  47. <span class='date'>09 May 2013</span>
  48. <span class='circle'></span>
  49. </div>
  50. <div class='content'>
  51. <p>
  52. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Odio ea necessitatibus quo velit natus cupiditate qui alias possimus ab praesentium nostrum quidem obcaecati nesciunt! Molestiae officiis voluptate excepturi rem veritatis eum aliquam qui laborum non ipsam ullam tempore reprehenderit illum eligendi cumque mollitia temporibus! Natus dicta qui est optio rerum.
  53. </p>
  54. </div>
  55. </li>
  56. <li class='work'>
  57. <input class='radio' id='work1' name='works' type='radio'>
  58. <div class="relative">
  59. <label for='work1'>Lorem ipsum dolor sit amet</label>
  60. <span class='date'>08 May 2013</span>
  61. <span class='circle'></span>
  62. </div>
  63. <div class='content'>
  64. <p>
  65. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Odio ea necessitatibus quo velit natus cupiditate qui alias possimus ab praesentium nostrum quidem obcaecati nesciunt! Molestiae officiis voluptate excepturi rem veritatis eum aliquam qui laborum non ipsam ullam tempore reprehenderit illum eligendi cumque mollitia temporibus! Natus dicta qui est optio rerum.
  66. </p>
  67. </div>
  68. </li>
  69. </ul>

css

  1. @import compass
  2.  
  3. /* -------------------------------------
  4. * For horizontal version, set the
  5. * $vertical variable to false
  6. * ------------------------------------- */
  7. $vertical: true
  8.  
  9. /* -------------------------------------
  10. * General Style
  11. * ------------------------------------- */
  12.  
  13. // Colours
  14. $bg: #48b379
  15. $white: #eee9dc
  16. $red: #f98262
  17.  
  18. @import url(https://fonts.googleapis.com/css?family=Noto+Sans)
  19.  
  20. body
  21. @if $vertical
  22. max-width: 1200px
  23. margin: 0 auto
  24. @else
  25. margin: 0
  26. padding: 0 5%
  27. font-size: 100%
  28. font-family: 'Noto Sans', sans-serif
  29. color: $white
  30. background: $bg
  31.  
  32. h2
  33. margin: 3em 0 0 0
  34. font-size: 1.5em
  35. letter-spacing: 2px
  36. text-transform: uppercase
  37.  
  38. /* -------------------------------------
  39. * timeline
  40. * ------------------------------------- */
  41.  
  42. #timeline
  43. list-style: none
  44. @if $vertical
  45. margin: 50px 0 30px 120px
  46. padding-left: 30px
  47. border-left: 8px solid $white
  48. @else
  49. margin: 120px 0 0
  50. padding: 0
  51. border-top: 8px solid $white
  52. display: table
  53. border-spacing: 30px 0
  54. li
  55. @if $vertical
  56. margin: 40px 0
  57. position: relative
  58. @else
  59. display: table-cell
  60. // for Firefox
  61. .relative
  62. position: relative
  63. p
  64. margin: 0 0 15px
  65.  
  66. .date
  67. @if $vertical
  68. margin-top: -10px
  69. top: 50%
  70. left: -158px
  71. @else
  72. text-align: center
  73. top: -55px
  74. left: 0
  75. right: 0
  76. font-size: 0.95em
  77. line-height: 20px
  78. position: absolute
  79. .circle
  80. @if $vertical
  81. margin-top: -10px
  82. top: 50%
  83. left: -44px
  84. @else
  85. margin: 0 auto
  86. top: -14px
  87. left: 0
  88. right: 0
  89. width: 10px
  90. height: 10px
  91. background: $bg
  92. border: 5px solid $white
  93. border-radius: 50%
  94. display: block
  95. position: absolute
  96.  
  97. .content
  98. @if $vertical
  99. max-height: 20px
  100. padding: 50px 20px 0
  101. border-color: transparent
  102. @else
  103. width: 200px
  104. max-height: 0
  105. margin-top: 40px
  106. vertical-align: top
  107. padding: 50px 15px 15px
  108. transition: width 0.4s linear, max-height 0.4s linear
  109. border-width: 2px
  110. border-style: solid
  111. border-radius: 0.5em
  112. position: relative
  113. &:before, &:after
  114. content: ""
  115. width: 0
  116. height: 0
  117. border: solid transparent
  118. position: absolute
  119. pointer-events: none
  120. @if $vertical
  121. right: 100%
  122. @else
  123. bottom: 100%
  124. &:before
  125. @if $vertical
  126. border-right-color: inherit
  127. border-width: 20px
  128. top: 50%
  129. margin-top: -20px
  130. @else
  131. border-bottom-color: inherit
  132. border-width: 15px
  133. left: 50%
  134. margin-left: -15px
  135. &:after
  136. @if $vertical
  137. border-right-color: $bg
  138. border-width: 17px
  139. top: 50%
  140. margin-top: -17px
  141. @else
  142. border-bottom-color: $bg
  143. border-width: 12px
  144. left: 50%
  145. margin-left: -12px
  146. p
  147. max-height: 0
  148. color: transparent
  149. text-align: justify
  150. word-break: break-word
  151. hyphens: auto
  152. overflow: hidden
  153.  
  154. label
  155. font-size: 1.3em
  156. position: absolute
  157. z-index: 100
  158. cursor: pointer
  159. @if $vertical
  160. top: 20px
  161. transition: transform 0.2s linear
  162. @else
  163. width: 200px
  164. white-space: nowrap
  165. text-overflow: ellipsis
  166. overflow: hidden
  167. display: block
  168. top: 60px
  169. left: 15px
  170.  
  171. .radio
  172. display: none
  173. .radio:checked
  174. & + .relative
  175. label
  176. cursor: auto
  177. @if $vertical
  178. transform: translateX(42px)
  179. @else
  180. width: 400px
  181. transition: width 0.3s linear 0.2s
  182. .circle
  183. background: $red
  184. & ~ .content
  185. max-height: 180px
  186. border-color: $white
  187. @if $vertical
  188. margin-right: 20px
  189. transform: translateX(20px)
  190. transition: max-height 0.4s linear, border-color 0.5s linear, transform 0.2s linear
  191. @else
  192. width: 400px
  193. p
  194. max-height: 200px
  195. color: $white
  196. transition: color 0.3s linear 0.3s
  197.  
  198. /* -------------------------------------
  199. * mobile phones (vertical version only)
  200. * ------------------------------------- */
  201. @if $vertical
  202. @media screen and (max-width: 767px)
  203. #timeline
  204. margin-left: 0
  205. padding-left: 0
  206. border-left: none
  207. li
  208. margin: 50px 0
  209. label
  210. width: 85%
  211. font-size: 1.1em
  212. white-space: nowrap
  213. text-overflow: ellipsis
  214. overflow: hidden
  215. display: block
  216. transform: translateX(18px)
  217. .content
  218. padding-top: 45px
  219. border-color: $white
  220. &:before, &:after
  221. border: solid transparent
  222. bottom: 100%
  223. &:before
  224. border-bottom-color: inherit
  225. border-width: 17px
  226. top: -16px
  227. left: 50px
  228. margin-left: -17px
  229. &:after
  230. border-bottom-color: $bg
  231. border-width: 20px
  232. top: -20px
  233. left: 50px
  234. margin-left: -20px
  235. p
  236. font-size: 0.9em
  237. line-height: 1.4
  238. .circle, .date
  239. display: none

以上就是CSS3 实现时间轴动画的详细内容,更多关于CSS3 时间轴的资料请关注w3xue其它相关文章!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号