html5菜单折纸效果


Posted in HTML / CSS onApril 22, 2014

类似猎豹浏览器安装时的用户须知效果。

html5菜单折纸效果

点击后效果

html5菜单折纸效果

复制代码
代码如下:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>fold paper effect by gt-柯乐义</title>
<style>
#wrapper {
-webkit-perspective: 55cm;
-webkit-perspective-origin: 50% 50%;
text-align: center;
}
.paper {
position: relative;
height: 40px;
width: 5em;
margin: 0;
background-color: aqua;
-webkit-transition: -webkit-transform 1s linear;
}
</style>
<script type="text/javascript">
window.angel = 0;
window.timer;
function fold() {
var foldUp = document.getElementById("foldUp");
var foldDown = document.getElementById("foldDown");
var down = document.getElementById("down");
if (window.angel == 0) {
window.timer = setInterval(function() {
var diff = different(-1, 20);
console.log(foldUp.offsetTop)
move(foldUp, diff, 1);
move(foldDown, diff, 3);
move(down, diff, 4);
}, 40);
setTimeout(function() {
clearInterval(window.timer);
foldUp.style.top = "-20px";
foldDown.style.top = "-60px";
down.style.top = "-80px";
window.angel = -90;
}, 1030);
foldUp.style.webkitTransform = "rotateX(-90deg)";
foldDown.style.webkitTransform = "rotateX(90deg)";
} else if (angel == -90) {
window.timer = setInterval(function() {
var diff = different(1, 20);
console.log(foldUp.offsetTop)
move(foldUp, diff, 1);
move(foldDown, diff, 3);
move(down, diff, 4);
}, 40);
setTimeout(function() {
clearInterval(window.timer);
foldUp.style.top = "0";
foldDown.style.top = "0";
down.style.top = "0";
window.angel = 0;
}, 1030);
foldUp.style.webkitTransform = "rotateX(0deg)";
foldDown.style.webkitTransform = "rotateX(0deg)";
} else {
console.log(window.angel)
}
}
function positionValue(div, type) {// 得到css带单位的值
var str = div.style[type];
str = str.substring(0, str.length - 2);
var value = parseInt(str);
if (isNaN(value)) {
value = 0;
}
return value;
}
function move(div, different, time) {
var top = positionValue(div, "top");
div.style.top = top + different * time + "px";
}
function different(direction, height) {
var lastAngel = window.angel;
window.angel += 3.6 * direction;
var different = Math
.ceil((Math.cos(window.angel / 180 * Math.PI) - Math
.cos(lastAngel / 180 * Math.PI))
* height * 100) / 100;
return different;
}
</script>
</head>
<body>
<div id="wrapper">
<div id="up" class="paper">
g
</div>
<div id="foldUp" class="paper">
n
</div>
<div id="foldDown" class="paper">
b
</div>
<div id="down" class="paper">
t
</div>
</div>
<button onclick=fold();>
fold
</button>
</body>
</html>
HTML / CSS 相关文章推荐
IE矩阵Matrix滤镜旋转与缩放及如何结合transform
Nov 29 HTML / CSS
CSS3制作ajax loader icon实现思路及代码
Aug 25 HTML / CSS
基于css3 animate制作绚丽的动画效果
Nov 24 HTML / CSS
CSS3 实现的加载动画
Dec 07 HTML / CSS
简单聊聊H5的pushState与replaceState的用法
Apr 03 HTML / CSS
html5 标签
Jul 16 HTML / CSS
HTML5 Canvas像素处理使用接口介绍
Dec 02 HTML / CSS
html5 video标签屏蔽右键视频另存为的js代码
Nov 12 HTML / CSS
详解html2canvas截图不能截取圆角图片的解决方案
Jan 30 HTML / CSS
canvas绘制图片drawImage使用方法
Sep 15 HTML / CSS
使用css样式设计一个简单的html登陆界面的实现
Mar 30 HTML / CSS
详解CSS开发过程中的20个快速提升技巧
May 21 HTML / CSS
html5读取本地文件示例代码
Apr 22 #HTML / CSS
使用html5制作loading图的示例
Apr 14 #HTML / CSS
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
Apr 14 #HTML / CSS
html5图片上传预览示例分享
Apr 14 #HTML / CSS
HTML5 Canvas锯齿图代码实例
Apr 10 #HTML / CSS
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
Apr 10 #HTML / CSS
使用javascript和HTML5 Canvas画的四渐变色播放按钮效果
Apr 10 #HTML / CSS
You might like
php的ZipArchive类用法实例
2014/10/20 PHP
详解WordPress中简码格式标签编写的基本方法
2015/12/22 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
javascript类继承机制的原理分析
2009/09/12 Javascript
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
js Function类型
2011/12/04 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
使用Raygun来自动追踪AngularJS中的异常
2015/06/23 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
vue小白入门教程
2018/04/02 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
微信小程序跨页面传递data数据方法解析
2019/12/13 Javascript
vue 使用 canvas 实现手写电子签名
2020/03/06 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
webpack+express实现文件精确缓存的示例代码
2020/06/11 Javascript
使用js获取身份证年龄的示例代码
2020/12/11 Javascript
JS获取一个字符串中指定字符串第n次出现的位置
2021/02/10 Javascript
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
Python中返回字典键的值的values()方法使用
2015/05/22 Python
python妙用之编码的转换详解
2017/04/21 Python
Win8下python3.5.1安装教程
2020/07/29 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
python数据挖掘需要学的内容
2019/06/23 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
两则小学生的自我评价分享
2013/11/14 职场文书
综艺节目策划方案
2014/06/13 职场文书
教师个人总结范文
2015/02/11 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js
mysql全面解析json/数组
2022/07/07 MySQL