div+css实现可拉伸弹性checkbox开关效果代码

代码语言:html

所属分类:布局界面

代码描述:div+css实现可拉伸弹性checkbox开关效果代码

代码标签: div css 拉伸 弹性 checkbox 开关

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  

  
  
  
<style>
@import url('https://fonts.googleapis.com/css2?family=Varela+Round&display=swap');

:root {
	--sz: 10vmin;
	--on: #FF9800;
	--off: #243747;
	--bg: linear-gradient(135deg, #17212f, #11151e);
	--tr: all 0.5s ease 0s;
	--elastic: linear(0 0%, 0.22 2.1%, 0.86 6.5%, 1.11 8.6%, 1.3 10.7%, 1.35 11.8%, 1.37 12.9%, 1.37 13.7%, 1.36 14.5%, 1.32 16.2%, 1.03 21.8%, 0.94 24%, 0.89 25.9%, 0.88 26.85%, 0.87 27.8%, 0.87 29.25%, 0.88 30.7%, 0.91 32.4%, 0.98 36.4%, 1.01 38.3%, 1.04 40.5%, 1.05 42.7%, 1.05 44.1%, 1.04 45.7%, 1 53.3%, 0.99 55.4%, 0.98 57.5%, 0.99 60.7%, 1 68.1%, 1.01 72.2%, 1 86.7%, 1 100%);
}	

* {
	box-sizing: border-box;
	transition: var(--tr);
	animation-play-state: paused;
}

body {
	margin: 0;
	padding: 0;
	width: 100vw;
	height: 100vh;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bg);
}

body:before, body:after {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	background: 
		repeating-conic-gradient(#0002 0.000095%, #fff0 .0005%, #fff0 .005%, #fff0 .0005%), 
		repeating-conic-gradient(#0002 0.00001%, #fff0 .00009%, #fff0 .00075%, #fff0 .000025%);
	opacity: 0.75;
	filter: blur(0.75px);
}

.toggle  {
	position: relative;
	width: calc(var(--sz) * 4);
	height: calc(var(--sz) * 2);
	display: flex;
	align-items: center;
	justify-content: center;
}

input {
	display: none;
}

label[for=btn] {
	position: absolute;
	width: calc(var(--sz) * 4);
	height: calc(var(--sz) * 2);
	background: linear-gradient(0deg, #121720, #0d1217);
	border-radius: var(--sz);
	box-shadow: 0 0 calc(var(--sz) / 50) calc(var(--sz) / 50) #0006, 0 calc(var(--sz) * -0.05) calc(var(--sz) / 10) calc(var(--sz) / 500) #0b0b10, 0 0 calc(var(--sz) / 10) calc(var(--sz) / 50) #b9e1ff88, 0 calc(var(--sz) * -0.05) calc(var(--sz) / 5) calc(var(--sz) / 50) #15182fcc;
}	

.thumb {
	position: absolute;
	height: calc(calc(var(--sz) * 2) - calc(var(--sz) / 8));
	top: calc(calc( var(--sz) / 10) + calc(var(--sz) / -20));
	background: 
		repeating-conic-gradient(#0002 0.000095%, #fff0 .0005%, #fff0 .005%, #fff0 .0005%), 
		repeating-conic-gradient(#0002 0.00001%, #fff0 .00009%, #fff0 .00075%, #fff0 .000025%),
		var(--bg);
	border-radius: var(--sz);
	box-shadow: 
		0 calc(var(--sz) * -0.05) calc(var(--sz) * 0.05) 0 #000c inset, 0 calc(var(--sz) * 0.05) calc(var(--sz) * 0.05) 0 #fff2 inset,     0 0 calc(var(--sz) / 10) calc(var(--sz) / 50) #000c,     0 calc(var(--sz) / 3) calc(var(--sz) / 3) 0 #000d;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	z-index: 1;
	overflow: hidden;
	padding: calc(var(--sz)* 0.65);  
	transition: var(--tr); 
	animation: go-left 1s ease 0s;
	width: calc(var(--sz)* 1.875); 
	right: calc(var(--sz)* 2.05); 
}

#btn:checked + label .thumb {
	transition: var(--tr); 
	animation: go-right 1s ease 0s;
	width: calc(var(--sz)* 1.875); 
	right: calc(var(--sz)* 0.075); 
	justify-content: flex-end;
}


@keyframes go-left {
	0%   { 
		width: calc(var(--sz)* 1.875); 
		right: calc(var(--sz)* 0.075); 
	}
	40%, 60%  { 
		width: calc(var(--sz)* 3.85); 
		right: calc(v.........完整代码请登录后点击上方下载按钮下载查看

网友评论0