01.过渡.html 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. *{
  10. margin: 0;
  11. padding: 0;
  12. }
  13. .box1{
  14. width: 800px;
  15. height: 800px;
  16. background-color: silver;
  17. overflow: hidden;
  18. margin-left: 0;
  19. }
  20. .box1 div{
  21. width: 100px;
  22. height: 100px;
  23. margin-bottom: 100px;
  24. }
  25. .box2{
  26. background-color: #bfa;
  27. /* margin-left: 700px; */
  28. /* margin-left: auto; */
  29. /* 当margin-left的值为auto时,则没有过渡效果(因为auto的值不确定) */
  30. /* transition: all 2s; */
  31. /*
  32. 过渡(transition)
  33. -通过过渡可以指定一个属性发生变化时的切换方式
  34. -通过过渡可以创建一些非常好的效果,提升用户的体验
  35. */
  36. /*
  37. transition-property: 指定要执行过渡的属性
  38. 多个属性间使用逗号“,”隔开
  39. 如果所有属性都需要过渡,则使用all关键字
  40. 大部分属性都支持过渡(只要值是可以计算的,就支持过渡,比如大小、角度、颜色等)
  41. 注意:
  42. 过渡是必须是从一个有效数值向另外一个有效数值进行过渡
  43. */
  44. /* transition-property: width,height; */
  45. /* transition-property: all; */
  46. /*
  47. transition-duration: 指定过渡效果的持续时间
  48. 时间单位:s 和 ms 1s=1000ms
  49. 可以分别指定时间,用逗号“,”隔开
  50. */
  51. /* transition-duration: 2s; */
  52. /* transition-duration: 500ms; */
  53. /* transition-duration: 0.5s; */
  54. /* transition-duration: 0.5s,1s; */
  55. /*
  56. transition-timing-function: 过渡的时序函数
  57. 指定过渡执行的方式
  58. 可选值:
  59. ease:默认值,慢速开始,先加速,再减速
  60. linear:匀速运动
  61. ease-in:加速运动
  62. ease-out:减速运动
  63. ease-in-out:先加速,后减速
  64. cubic-bezier() (贝塞尔曲线)来指定时序函数
  65. https://cubic-bezier.com
  66. steps():分步执行过渡效果
  67. 可以设置一个第二个值:
  68. end 在时间结束时执行过渡(默认值)
  69. start 在时间开始时执行过渡
  70. */
  71. /* transition-timing-function: ease; */
  72. /* transition-timing-function: linear; */
  73. /* transition-timing-function: ease-in; */
  74. /* transition-timing-function: ease-out; */
  75. /* transition-timing-function: ease-in-out; */
  76. /* transition-timing-function: cubic-bezier(0,0,1,1); */
  77. /* 相当于linear */
  78. /* transition-timing-function: cubic-bezier(.25,.1,.25,1); */
  79. /* 相当于ease */
  80. /* transition-timing-function: cubic-bezier(.24,.95,.82,-.88); */
  81. /* transition-timing-function: steps(2,end); */
  82. /* end:表示每步时间计时结束后才执行 */
  83. /* transition-timing-function: steps(2,start); */
  84. /* start:表示每步时间开始计时的时候就开始执行 */
  85. /*
  86. transition-delay: 过渡效果的延迟,等待一段时间后再执行过渡
  87. */
  88. /* transition-delay: 2s; */
  89. /*
  90. transition 可以同时设置过渡相关的所有属性,只有一个要求,如果要写延迟,
  91. 则两个时间中第一个是持续时间,第二个是延迟
  92. */
  93. transition: 2s margin-left 1s cubic-bezier(.24,.95,.82,-.88);
  94. }
  95. .box3{
  96. background-color: orange;
  97. transition-property: all;
  98. transition-duration: 2s;
  99. }
  100. .box1:hover div{
  101. /* width: 200px;
  102. height: 200px; */
  103. /* background-color: orange;
  104. margin-left: 0; */
  105. margin-left: 700px;
  106. }
  107. </style>
  108. </head>
  109. <body>
  110. <div class="box1">
  111. <div class="box2"></div>
  112. <div class="box3"></div>
  113. </div>
  114. </body>
  115. </html>