好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

手把手教你使用CSS3实现按钮悬停闪烁动态特效

在之前的 文章 《纯CSS3怎么创建瀑布流布局?columns方法浅析》中,我们介绍了使用CSS3 column 系列 属性创建瀑布流布局的方法,感兴趣的 朋友 可以去 了解 一下~

而今天我们来看看使用CSS3怎么给按钮添加动态效果,实现一个按钮悬停闪亮阴影动画效果,让网页互动性更强,更吸引人!

我们先来看看效果图

下面我们来研究一下是怎么实现这个效果的:

首先是HT ML 部分 ,定义一个div容器包裹button按钮,在按钮中使用<span>标签对来包含按钮文本

<div id="shiny -s hadow">
  <button><span>鼠标悬停</span></button>
</div>

然后 开始 定义css样式来进行修饰 : 调整 布局样式、色彩范围

 # shiny-shadow {
  dis play : flex;
  align -i tems:  center ;
  justify-content: center;
  h ei ght: 100vh;
  background: #1c2541;
}

button {
  border: 2px solid wh IT e;
  background: transparent;
  text -t ransform: up PE rcase;
  color: white;
  padding: 15px 50px;
  outline: none;
}

span {
  z-index: 20;  
}

接着 制作 一闪而过的覆盖层:

使用 :after 选择器制作一个带透明度的长方形,让它相对于button按钮进行绝对定位

button {
  position: relative;
}
button:after {
	content: '';
	display: block;
	position: absolute;
	background: white;
	width: 50px;
	height: 125px;
	opacity: 20%;
}

在最终效果中,一闪而过的是一个倾斜的长方形;因此我们添加一个 transform: rotate(-45 deg ); 样式

button:after {
	transform: rotate(-45deg);
}

使用top属性和left属性控制长方形的位置

button:after {
	top: -2px;
	left: -1px;
}

最后实现按钮悬停闪烁动画特效

因为是悬停效果,所以要使用到 :hover 选择器;我们要设置鼠标悬停时长方形的位置

button:hover:after {
  left: 120%;
}

这样突然变换位置不是我们要的效果,可以使用 transition 属性添加一个过渡效果,因为该属性是css3的一个 新属性 ,要添加前缀来兼容其他浏览器

button:hover:after {
  left: 120%;
  transition: all 600ms c ub ic-bezier(0.3, 1, 0.2, 1);
   - webkit -transition: all 600ms cubic-bezier(0.3, 1, 0.2, 1);
}

大致实现了,再修饰一下。

只想要button按钮范围内显示长方形覆盖层,那么可给button标签添加一个 overflow: hidden; 样式

button {
  overflow: hidden;
}

可以看出覆盖层的位置还有点问题,最终效果中覆盖层一开始是不显示的,我们使用top属性和left属性来调整一下

button:after {
	top: -36px;
	left: -100px;
}

OK,大功告成!下面附上完整代码:

<!DOCTYPE html>
<html>
	<head>
		< ;m eta charset="utf-8">
		<style type="text/css">
			#shiny-shadow {
				display: flex;
				align-items: center;
				justify-content: center;
				height: 100vh;
				background: #1c2541;
			}

			button {
				border: 2px solid white;
				background: transparent;
				text-transform: uppercase;
				color: white;
				padding: 15px 50px;
				outline: none;
				position: relative;
				overflow: hidden;
			}

			span {
				z-index: 20;
			}

			button:after {
				content: '';
				display: block;
				position: absolute;
				background: white;
				width: 50px;
				height: 125px;
				opacity: 20%;
				transform: rotate(-45deg);
				top: -36px;
				left: -100px;
			}

			button:hover:after {
				left: 120%;
				transition: all 600ms cubic-bezier(0.3, 1, 0.2, 1);
				-webkit-transition: all 600ms cubic-bezier(0.3, 1, 0.2, 1);
			}
		</style>
	</head>
	<body>
		<div id="shiny-shadow">
			<button><span>鼠标悬停</span></button>
		</div>
	</body>
</html>

PHP中文网平台有非常多的视频教学资 源 ,欢迎大家学习《css视频教程》!

以上就是手把手教你使用CSS3实现按钮悬停闪烁动态特效的详细内容,更多请关注其它相关文章!

总结

以上是 为你收集整理的 手把手教你使用CSS3实现按钮悬停闪烁动态特效 全部内容,希望文章能够帮你解决 手把手教你使用CSS3实现按钮悬停闪烁动态特效 所遇到的问题。

如果觉得 网站内容还不错, 推荐好友。

查看更多关于手把手教你使用CSS3实现按钮悬停闪烁动态特效的详细内容...

  阅读:46次