按钮图标

纯CSS3滑动开关按钮特效 - vhttps://www.7uup.com/s/x36pp11

阿里云


这是一款使用纯 CSS3 制作的滑动开关按钮特效。该滑动按钮使用伪元素来制作外观,配合渐变和动画过渡效果,制作出 4 种安卓样式的滑动开关按钮。

HTML 结构

该滑动按钮的基本 HTML 结构使用一个<label>元素来包裹一个<input>元素和 2 个<span>元素。span.text-switch 是按钮上的文字和背景,span.toggle-btn 是滑动的按钮。

也想出现在这里?联系我们
创客主机
  1. <label class="switch-btn">
  2.     <input class="checked-switch" type="checkbox" />
  3.     <span class="text-switch" data-yes="yes" data-no="no"></span> 
  4.     <span class="toggle-btn"></span> 
  5. </label>

CSS 样式

整个滑动按钮设置固定的宽度和高度,并设置一定的圆角,采用相对定位方式:

  1. .switch-btn {
  2.   position: relative; 
  3.   display: block; 
  4.   vertical-align: top; 
  5.   width: 80px; 
  6.   height: 30px; 
  7.   border-radius: 18px; 
  8.   cursor: pointer;
  9. }

input 元素使用绝对定位,它位于父元素的左上角位置,并将它的透明度设置为 0,使其不可见。

  1. .checked-switch {
  2.   position: absolute; 
  3.   top: 0; 
  4.   left: 0; 
  5.   opacity: 0;
  6. }

.text-switch 是按钮上的背景和文字。它和父元素具有相同的高度和圆角。带第一个 DEMO 中,开始时为它设置红色的背景和深红色的边框,以及白色的文字,并将文字转换为大写形式。

  1. .text-switch {
  2.   background-color: #ed5b49; 
  3.   border: 1px solid #d2402e; 
  4.   border-radius: inherit; 
  5.   color: #fff; 
  6.   display: block; 
  7.   font-size: 15px; 
  8.   height: inherit; 
  9.   position: relative; 
  10.   text-transform: uppercase;
  11. }

滑动按钮上的 ON/OFF 文本使用.text-switch 的:before 和:after 伪元素来制作。

  1. .text-switch:before, 
  2. .text-switch:after {
  3.   position: absolute; 
  4.   top: 50%; 
  5.   margin-top: -.5em; 
  6.   line-height: 1; 
  7.   -webkit-transition: inherit; 
  8.   -moz-transition: inherit; 
  9.   -o-transition: inherit; 
  10.   transition: inherit;
  11. }
  12. .text-switch:before {
  13.   content: attr(data-no); 
  14.   right: 11px;
  15. }
  16. .text-switch:after {
  17.   content: attr(data-yes); 
  18.   left: 11px; 
  19.   color: #FFFFFF; 
  20.   opacity: 0;
  21. }

为了在用户点击滑动按钮时产生效果,这里使用了 checkbox hack 技术。在.checked-switch 被选中的时候,修改.text-switch 的背景色和边框颜色。并将.text-switch 元素的:before 伪元素的透明度修改为 0,将其隐藏。同时将:after 伪元素的透明度设置为 1,显示不同的文本。

  1. .checked-switch:checked ~ .text-switch {
  2.   background-color: #00af2c; 
  3.   border: 1px solid #068506;
  4. }
  5. .checked-switch:checked ~ .text-switch:before {
  6.   opacity: 0;
  7. }
  8. .checked-switch:checked ~ .text-switch:after {
  9.   opacity: 1;
  10. }

滑动的圆形按钮的制作方法基本相同:

  1. .toggle-btn {
  2.   background: linear-gradient(#eee, #fafafa); 
  3.   border-radius: 100%; 
  4.   height: 28px; 
  5.   left: 1px; 
  6.   position: absolute; 
  7.   top: 1px; 
  8.   width: 28px;
  9. }
  10. .toggle-btn::before {
  11.   color: #aaaaaa; content: "|||"; 
  12.   display: inline-block; 
  13.   font-size: 12px; 
  14.   letter-spacing: -2px; 
  15.   padding: 4px 0; 
  16.   vertical-align: middle;
  17. }
  18. .checked-switch:checked ~ .toggle-btn {
  19.   left: 51px;
  20. }
  21.  .text-switch, .toggle-btn {
  22.   transition: All 0.3s ease; 
  23.   -webkit-transition: All 0.3s ease; 
  24.   -moz-transition: All 0.3s ease;
  25.   -o-transition: All 0.3s ease;
  26. }

纯 CSS3 滑动开关按钮特效

已有 531 人购买
  • v https://www.7uup.com/s/x36pp11
  • pe8l
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!