CSS3模拟IOS滑动开关效果

在放大镜下,你可以看到每一片雪花都是一幅幅精美的图案:有的是晶莹的薄片,有的像白亮的银针,有的像一把张开的小扇,有的像夜空的星星……

前言

H5站点需要IOS滑动按钮的效果,想了想似乎CSS3能搞起,就折腾出来了...挺简单的..请看注释

效果

代码

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPEhtml>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>CSS3模拟IOS开关</title>
  6. <styletype="text/css"media="screen">
  7. /*==========================================================================
  8. 设置根元素字体大小
  9. ==========================================================================*/
  10. html{
  11. font-size:100px;
  12. }
  13. /*==========================================================================
  14. 设置模拟元素的包裹层,装饰...毫无卵用
  15. ==========================================================================*/
  16. .ios-checkbox{
  17. height:4rem;
  18. width:4rem;
  19. position:absolute;
  20. left:50%;
  21. top:50%;
  22. -webkit-transform:translate(-50%,-50%);
  23. transform:translate(-50%,-50%);
  24. border:.05remdashed#3DB7A9;
  25. display:-webkit-box;
  26. display:-webkit-flex;
  27. display:-ms-flexbox;
  28. display:flex;
  29. -webkit-box-orient:horizontal;
  30. -webkit-box-direction:normal;
  31. -webkit-flex-direction:column;
  32. -ms-flex-direction:column;
  33. flex-direction:column;
  34. -webkit-flex-wrap:nowrap;
  35. -ms-flex-wrap:nowrap;
  36. flex-wrap:nowrap;
  37. -webkit-justify-content:space-around;
  38. -ms-flex-pack:distribute;
  39. justify-content:space-around;
  40. -webkit-box-align:center;
  41. -webkit-align-items:center;
  42. -ms-flex-align:center;
  43. align-items:center;
  44. }
  45. /*==========================================================================
  46. label标签模拟按钮
  47. ==========================================================================*/
  48. .emulate-ios-button{
  49. display:block;
  50. width:2rem;
  51. height:1rem;
  52. background:#ccc;
  53. border-radius:5rem;
  54. cursor:pointer;
  55. position:relative;
  56. -webkit-transition:all.3sease;
  57. transition:all.3sease;
  58. }
  59. /*==========================================================================
  60. 设置伪类,来实现模拟滑块滑动,过渡用了transition来实现,
  61. translateZ来强制启用硬件渲染
  62. ==========================================================================*/
  63. .emulate-ios-button:after{
  64. content:'';
  65. display:block;
  66. width:.9rem;
  67. height:.9rem;
  68. border-radius:100%;
  69. background:#fff;
  70. box-shadow:01px1pxrgba(0,0,0,.1);
  71. position:absolute;
  72. left:.05rem;
  73. top:.05rem;
  74. -webkit-transform:translateZ(0);
  75. transform:translateZ(0);
  76. -webkit-transition:all.3sease;
  77. transition:all.3sease;
  78. }
  79. .emulate-ios-button:active:after{
  80. width:1.1rem;
  81. }
  82. /*==========================================================================
  83. 设置raw-checkbox,视觉直观比较
  84. ==========================================================================*/
  85. .raw-checkbox{
  86. height:2rem;
  87. width:2rem;
  88. }
  89. .raw-checkbox:checked+label{
  90. background:#34bf49;
  91. }
  92. /*这里是伪元素偏移,初始是0.9+0.05,所以这里1.05rem*/
  93. .raw-checkbox:checked+label:after{
  94. left:1.05rem;
  95. }
  96. .raw-checkbox:checked+label:active:after{
  97. left:.5rem;
  98. }
  99. .raw-checkbox:disabled+label{
  100. background:#d5d5d5;
  101. pointer-events:none;
  102. }
  103. .raw-checkbox:disabled+label:after{
  104. background:#bcbdbc;
  105. }
  106. </style>
  107. </head>
  108. <body>
  109. <divclass="ios-checkbox">
  110. <inputtype="checkbox"id="ios-checkbox"name="emulate-ios-button"class="raw-checkbox">
  111. <labelfor="ios-checkbox"class="emulate-ios-button"></label>
  112. </div>
  113. </body>
  114. </html>

总结

为了更直观的比较,raw checkbox我就没有隐藏了。

以上就是CSS3模拟IOS滑动开关效果。我们不是“居安思危”,而是“居危思进”。更多关于CSS3模拟IOS滑动开关效果请关注haodaima.com其它相关文章!

您可能有感兴趣的文章
15行CSS代码让苹果设备崩溃,最新的iOS 12也无法幸免