1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 马自达css滑动按钮 css3实现的switch滑动开关按钮的效果

马自达css滑动按钮 css3实现的switch滑动开关按钮的效果

时间:2020-01-18 08:35:54

相关推荐

马自达css滑动按钮 css3实现的switch滑动开关按钮的效果

主要是使用了来模拟实现,具体的HTML:

默认未选中

默认选中

默认未选中,简单的背景过渡效果,加mui-switch-animbg类即可

默认选中

默认未选中,过渡效果,加 mui-switch-anim

类即可

默认选中

在实际的使用中后来又增加了两个过渡效果,分别加 mui-switch-animbg和mui-switch-anim 类即可,具体效果查看下面的demo页面。

CSS代码(SCSS导出的,排版有些奇怪):

.mui-switch {

width: 52px;

height: 31px;

position: relative;

border: 1px solid #dfdfdf;

background-color: #fdfdfd;

box-shadow: #dfdfdf 0 0 0 0 inset;

border-radius: 20px;

border-top-left-radius: 20px;

border-top-right-radius: 20px;

border-bottom-left-radius: 20px;

border-bottom-right-radius: 20px;

background-clip: content-box;

display: inline-block;

-webkit-appearance: none;

user-select: none;

outline: none; }

.mui-switch:before {

content: '';

width: 29px;

height: 29px;

position: absolute;

top: 0px;

left: 0;

border-radius: 20px;

border-top-left-radius: 20px;

border-top-right-radius: 20px;

border-bottom-left-radius: 20px;

border-bottom-right-radius: 20px;

background-color: #fff;

box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); }

.mui-switch:checked {

border-color: #64bd63;

box-shadow: #64bd63 0 0 0 16px inset;

background-color: #64bd63; }

.mui-switch:checked:before {

left: 21px; }

.mui-switch.mui-switch-animbg {

transition: background-color ease 0.4s; }

.mui-switch.mui-switch-animbg:before {

transition: left 0.3s; }

.mui-switch.mui-switch-animbg:checked {

box-shadow: #dfdfdf 0 0 0 0 inset;

background-color: #64bd63;

transition: border-color 0.4s, background-color ease 0.4s; }

.mui-switch.mui-switch-animbg:checked:before {

transition: left 0.3s; }

.mui-switch.mui-switch-anim {

transition: border cubic-bezier(0, 0, 0, 1) 0.4s, box-shadow cubic-bezier(0, 0, 0, 1) 0.4s; }

.mui-switch.mui-switch-anim:before {

transition: left 0.3s; }

.mui-switch.mui-switch-anim:checked {

box-shadow: #64bd63 0 0 0 16px inset;

background-color: #64bd63;

transition: border ease 0.4s, box-shadow ease 0.4s, background-color ease 1.2s; }

.mui-switch.mui-switch-anim:checked:before {

transition: left 0.3s; }

/*# sourceMappingURL=mui-switch.css.map */

SCSS代码:

@mixin borderRadius($radius:20px) {

border-radius: $radius;

border-top-left-radius: $radius;

border-top-right-radius: $radius;

border-bottom-left-radius: $radius;

border-bottom-right-radius: $radius;

}

$duration: .4s;

$checkedColor: #64bd63;

.mui-switch {

width: 52px;

height: 31px;

position: relative;

border: 1px solid #dfdfdf;

background-color: #fdfdfd;

box-shadow: #dfdfdf 0 0 0 0 inset;

@include borderRadius();

background-clip: content-box;

display: inline-block;

-webkit-appearance: none;

user-select: none;

outline: none;

&:before {

content: '';

width: 29px;

height: 29px;

position: absolute;

top: 0px;

left: 0;

@include borderRadius();

background-color: #fff;

box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);

}

&:checked {

border-color: $checkedColor;

box-shadow: $checkedColor 0 0 0 16px inset;

background-color: $checkedColor;

&:before {

left: 21px;

}

}

&.mui-switch-animbg {

transition: background-color ease $duration;

&:before {

transition: left 0.3s;

}

&:checked {

box-shadow: #dfdfdf 0 0 0 0 inset;

background-color: $checkedColor;

transition: border-color $duration, background-color ease $duration;

&:before {

transition: left 0.3s;

}

}

}

&.mui-switch-anim {

transition: border cubic-bezier(0, 0, 0, 1) $duration, box-shadow cubic-bezier(0, 0, 0, 1) $duration;

&:before {

transition: left 0.3s;

}

&:checked {

box-shadow: $checkedColor 0 0 0 16px inset;

background-color: $checkedColor;

transition: border ease $duration, box-shadow ease $duration, background-color ease $duration*3;

&:before {

transition: left 0.3s;

}

}

}

}

发现问题欢迎微博上@愚人码头,带上截图,机型,浏览器版本等,感激不尽!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。