Html
    Css
    Js
:root {
	/* color type A */
    --line_color:#555555;
	--back_color:#FFECF6;
	/* color type B */
    /* --line_color:#1b1919;
	--back_color:#E9ECFF;
	*/

    /* color type C */
    /* --line_color:#00135C;
	--back_color:#DEFFFA;
	*/
}
.button {
	position:relative;
	z-index:0;
	width:240px;
	height:56px;
	text-decoration:none;
	font-size:14px;
	font-weight:bold;
	color:var(--line_color);
	letter-spacing:2px;
	transition:all .3s ease;
}
.button__text {
	display:flex;
	justify-content:center;
	align-items:center;
	width:100%;
	height:100%;
}
.button::before,.button::after,.button__text::before,.button__text::after {
	content:'';
	position:absolute;
	height:3px;
	border-radius:2px;
	background:var(--line_color);
	transition:all .5s ease;
}
.button::before {
	top:0;
	left:54px;
	width:calc( 100% - 56px * 2 - 16px );
}
.button::after {
	top:0;
	right:54px;
	width:8px;
}
.button__text::before {
	bottom:0;
	right:54px;
	width:calc( 100% - 56px * 2 - 16px );
}
.button__text::after {
	bottom:0;
	left:54px;
	width:8px;
}
.button__line {
	position:absolute;
	top:0;
	width:56px;
	height:100%;
	overflow:hidden;
}
.button__line::before {
	content:'';
	position:absolute;
	top:0;
	width:150%;
	height:100%;
	box-sizing:border-box;
	border-radius:300px;
	border:solid 3px var(--line_color);
}
.button__line:nth-child(1),.button__line:nth-child(1)::before {
	left:0;
}
.button__line:nth-child(2),.button__line:nth-child(2)::before {
	right:0;
}
.button:hover {
	letter-spacing:6px;
}
.button:hover::before,.button:hover .button__text::before {
	width:8px;
}
.button:hover::after,.button:hover .button__text::after {
	width:calc( 100% - 56px * 2 - 16px );
}
.button__drow1,.button__drow2 {
	position:absolute;
	z-index:-1;
	border-radius:16px;
	transform-origin:16px 16px;
}
.button__drow1 {
	top:-16px;
	left:40px;
	width:32px;
	height:0;
	transform:rotate( 30deg );
}
.button__drow2 {
	top:44px;
	left:77px;
	width:32px;
	height:0;
	transform:rotate(-127deg );
}
.button__drow1::before,.button__drow1::after,.button__drow2::before,.button__drow2::after {
	content:'';
	position:absolute;
}
.button__drow1::before {
	bottom:0;
	left:0;
	width:0;
	height:32px;
	border-radius:16px;
	transform-origin:16px 16px;
	transform:rotate( -60deg );
}
.button__drow1::after {
	top:-10px;
	left:45px;
	width:0;
	height:32px;
	border-radius:16px;
	transform-origin:16px 16px;
	transform:rotate( 69deg );
}
.button__drow2::before {
	bottom:0;
	left:0;
	width:0;
	height:32px;
	border-radius:16px;
	transform-origin:16px 16px;
	transform:rotate( -146deg );
}
.button__drow2::after {
	bottom:26px;
	left:-40px;
	width:0;
	height:32px;
	border-radius:16px;
	transform-origin:16px 16px;
	transform:rotate( -262deg );
}
.button__drow1,.button__drow1::before,.button__drow1::after,.button__drow2,.button__drow2::before,.button__drow2::after {
	background:var( --back_color );
}
.button:hover .button__drow1 {
	animation:drow1 ease-in .06s;
	animation-fill-mode:forwards;
}
.button:hover .button__drow1::before {
	animation:drow2 linear .08s .06s;
	animation-fill-mode:forwards;
}
.button:hover .button__drow1::after {
	animation:drow3 linear .03s .14s;
	animation-fill-mode:forwards;
}
.button:hover .button__drow2 {
	animation:drow4 linear .06s .2s;
	animation-fill-mode:forwards;
}
.button:hover .button__drow2::before {
	animation:drow3 linear .03s .26s;
	animation-fill-mode:forwards;
}
.button:hover .button__drow2::after {
	animation:drow5 linear .06s .32s;
	animation-fill-mode:forwards;
}
@keyframes drow1 {
	0% {
	height:0;
}
100% {
	height:100px;
}
}@keyframes drow2 {
	0% {
	width:0;
	opacity:0;
}
10% {
	opacity:0;
}
11% {
	opacity:1;
}
100% {
	width:120px;
}
}@keyframes drow3 {
	0% {
	width:0;
}
100% {
	width:80px;
}
}@keyframes drow4 {
	0% {
	height:0;
}
100% {
	height:120px;
}
}@keyframes drow5 {
	0% {
	width:0;
}
100% {
	width:124px;
}
}
.container {
	width:100%;
	height:300px;
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
}

                        
↑上面代码改变,会自动显示代码结果 jQuery调用版本:1.11.3
 立即下载

css按钮悬停动画

0