仿Material UI框架的动画特效

Material UI是一款功能非常强大,界面却十分清新简洁的CSS框架,Material UI利用了Google的Material Design 全新设计语言,并且让每一个UI组件都变得非常独立,因此开发者使用Material UI也会比较简单。和Bootstrap类似,Material UI提供了很多常用的UI组件,除了最基本的菜单、按钮、滑动杆、进度条、单选框/复选框外,它还提供了一个非常有趣的日历组件,另外还提供了一些很有趣的图标。

不过,这里我并不打算介绍Material UI的使用,而是介绍如果实现Material UI内的动画特效,比如点击按钮会出现波浪扩散的动画效果、表单获取焦点动画等等。

注意:要使用下面的动画效果,必须引入jQuery。

一、点击按钮会出现波浪扩散的动画效果

为了效果,我这里特意将波浪的颜色加深。

先看效果:

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="js/jquery-3.1.1.js"></script>
		<style type="text/css">
			button {
				outline: none;
				position: relative;
				overflow: hidden;
				padding: 5px 10px;
				background: #fff;
				border: 1px solid #d9d9d9;
				transition: all .3s;
			}

			.ripple {
				width: 0;
				height: 0;
				border-radius: 50%;
				background: rgba(0, 0, 0, .5);
				-webkit-transform: scale(0);
				transform: scale(0);
				position: absolute;
				opacity: 1;
			}

			.rippleEffect {
				-webkit-animation: rippleEffect 2s cubic-bezier(0.23, 1, 0.32, 1);
				animation: rippleEffect 2s cubic-bezier(0.23, 1, 0.32, 1);
			}

			@keyframes rippleEffect {
				100% {
					transform: scale(2);
					opacity: 0;
				}
			}

			@-webkit-keyframes rippleEffect {
				100% {
					-webkit-transform: scale(2);
					opacity: 0;
				}
			}
		</style>
		<script type="text/javascript">
			$(function() {
				function ripple(event, $this) {
					event = event || window.event;
					var x = event.pageX || event.originalEvent.pageX;
					var y = event.pageY || event.originalEvent.pageY;
					var wx = $this.width();
					x = x - $this.offset().left - wx / 2;
					y = y - $this.offset().top - wx / 2;
					var span = ‘<div class="ripple"></div>‘;
					$this.prepend(span);
					$(".ripple").css({
						width: wx,
						height: wx,
						top: y + "px",
						left: x + "px"
					}).addClass("rippleEffect");
					$(document).one("webkitAnimationEnd animationend", ".ripple", function() {
						$(".ripple").remove();
					});
				}

				$("button").on("click", function(e) {
					ripple(e, $(this));
				});
			})
		</script>
	</head>

	<body>
		<button type="button"> 点我 </button>
	</body>

</html>

  

二、表单获取焦点的动画

效果如下:

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

	<head>
		<meta charset="UTF-8" />
		<title>Document</title>
		<script src="js/jquery-3.1.1.js"></script>
		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
		<style type="text/css">
			.material-box {
				position: relative;
				width: 200px;
				height: 30px;
			}

			.material-box input {
				border: none;
				width: 100%;
				height: 30px;
				border-bottom: 1px solid rgb(224, 224, 224);
				outline: none;
			}

			.material-box hr {
				position: absolute;
				top: 100%;
				width: 100%;
				margin: 0 auto;
				border-top: 2px solid rgb(0, 188, 212);
				transform: scale(0);
				transition: all 450ms cubic-bezier(0.23, 1, 0.32, 1) 0ms;
			}
		</style>
		<script type="text/javascript">
			$(function() {

				var inputs = document.querySelector("input");
				var hr = document.querySelector("hr");
				inputs.addEventListener("focus", function() {
					hr.style.transform = "scale(1)";
				});
				inputs.addEventListener("blur", function() {
					hr.style.transform = "scale(0)";
				});
				$("button").on("click", function(e) {
					ripple(e, $(this));
				});
			})
		</script>
	</head>

	<body>
		<div class="material-box">
			<input type="text" placeholder="text" />
			<div>
				<hr/>
			</div>
		</div>
	</body>

</html>

  

三、checkbox

下面用到了字体图标fontawsome

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

	<head>
		<meta charset="UTF-8" />
		<title>Document</title>
		<script src="js/jquery-3.1.1.js" type="text/javascript" charset="utf-8"></script>
		<style type="text/css">
			.ww-checkbox {
				display: inline-block;
				position: relative;
				width: 20px;
				height: 20px;
			}

			.ww-checkbox input {
				opacity: 0;
				width: 20px;
				height: 20px;
			}

			.ww-checkbox-box {
				width: 20px;
				height: 20px;
				position: absolute;
				top: 0;
				left: 0;
				z-index: 0;
				line-height: 16px;
				border: 1px solid #D9D9D9;
				text-align: center;
			}

			.ww-checkbox-box .fa {
				display: none;
				font-size: 12px;
				font-weight: normal;
				color: #fff;
			}

			.ww-checkbox.active .ww-checkbox-box {
				background-color: #49be38;
				border: 1px solid #fff;
			}

			.ww-checkbox.active .fa {
				display: inline;
			}
		</style>
		<script type="text/javascript">
			$(function() {
				$(".ww-checkbox").on("click", function() {
					if($(this).hasClass("active")) {
						$(this).removeClass("active");
					} else {
						$(this).addClass("active");
					}
				});
			})
		</script>
	</head>

	<body>
		<div class="ww-checkbox">
			<div class="ww-checkbox-box"><span class="fa fa-check"></span></div>
			<input type="checkbox" class="ww-checkbox-input" value="">
		</div>
	</body>

</html>

  

参考:http://ghmagical.com/article/page/id/eJ6csiu8FkcD

时间: 2024-10-25 08:47:24

仿Material UI框架的动画特效的相关文章

CSS3实战开发:仿天猫首页图片展示动画特效实战开发

各位网友大家好,我是陌上花会开,人称陌陌.今天我带领大家开发一个仿天猫首页图片展示动画特效的案例.一如往常,我既不提供源码给大家,也不提供Demo给大家,只是希望大家能跟着我的讲解,然后将代码一步步复制到本地,本人可以保证,页面上的代码复制到本地,绝对百分百运行,且得到与陌陌一样的运行效果.我这么做只为激起大伙的动手能力,望大家能明白我的用心. 好了,不废话了,直接本篇的实战开发吧. 我们看一下我们今天要做的实战案例效果图: 1. 鼠标划过前: 2. 鼠标划过右侧的图片时: 可能大伙看这个静态截

Jquery之家5个顶级Material Design框架

谷歌Material Design在如今的前端页面设计中非常流行.Material Design的设计风格向我们展示了一个简单而有内涵的现代UI设计方案. Material Design是如此的简洁美观,那么,现在有什么Material Design框架可以使用呢?下面我们就一起来看看5个最顶级的Material Design框架. Angular Material Angular Material是目前所有Material Design框架中的大佬级人物.这是因为Angular在互联网上也非常

paip.关于动画特效原理 html js 框架总结

paip.关于动画特效原理 html js 框架总结 1. 动画框架的来源:flex,jqueryui 3 2. 特效的分类 3 2.1. Property effects 动态改变一个或多个目标对象的属性 (Animate.Fade, Resize, and AnimateColor) 4 2.2. Transform effects 缩入.旋转和位置的改变 .(Move, Rotate, and Scale) 4 2.3. Pixel-shader effects 主要是针对图片象素着色的动

Material UI:非常强大的CSS框架

Material UI 是一款功能非常强大,界面却十分清新简洁的CSS框架,Material UI利用了Google的Material Design 全新设计语言,并且让每一个UI组件都变得非常独立,因此开发者使用Material UI也会比较简单.和Bootstrap类似,Material UI提供了很多常用的UI组件,除了最基本的菜单.按钮.滑动杆.进度条.单选框/复选框外,它还提供了一个非常有趣的日历组件,另外还提供了一些很有趣的图标. Material UI 的特点 组件很丰富,每一个组

ASP.NET MVC搭建项目后台UI框架—2、菜单特效

目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 上一篇,已经把整个项目的框框给搭建好了,但是还没有任何js效果实现.这一节,我就来说下关于菜单的特效实现.我需要的效果如下: 需求总结: 点击顶部菜单模块,左侧显示不同模块下面的菜单列表 点击左侧菜单选项,展开下面的子菜单,并折叠其它菜单模块,菜单图标折叠显示为+,展开显示为-. 1.先看下Top视图中代码: 2.在Top视图的head中添加如下js: <script sr

高仿网易4.0新UI框架

高仿网易4.0新UI框架 新的抽屉效果,修改于SliderViewController,首页滑动导航菜单随scrollView 的滑动变化效果. 下载地址:http://www.devstore.cn/code/info/500.html 运行截图:   热门源码下载: 高仿京东商城 Android快速开发不可或缺的11个工具类 Android快速开发框架LoonAndroid Android应用源码比较不错的新闻客户端 版权声明:本文为博主原创文章,未经博主允许不得转载.

【IOS源码】高仿网易4.0新UI框架

高仿网易4.0新UI框架 新的抽屉效果,修改于SliderViewController,首页滑动导航菜单随scrollView 的滑动变化效果. 下载地址: http://www.dwz.cn/yKQbV 效果图  

高仿网易4.0新UI框架的Demo

NewsFourApp:一个模仿网易4.0新UI框架的开源项目. 声明:如果有好的修改,非常欢迎fork提交分享哈 —————————————-华丽丽的分割线——————————————— beta 0.2 —————————————-华丽丽的分割线——————————————— beta 0.1 1.新的抽屉效果,修改于SliderViewController,不过里面已经不一样,毕竟是新的效果嘛(此部分还不算完全具备框架的特性,呵呵??) 2.首页滑动导航菜单的字体大小和颜色,随scroll

JS框架_(coolShow.js)图片旋转动画特效

coolShow.js插件图片旋转动画效果 <!DOCTYPE HTML> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>coolShow.js插件图片旋转动画特效</title> <link href="css/coolShow.css" rel="