CSS+jQuery实现的一个放大缩小动画效果


Posted in Javascript onSeptember 24, 2013

今天帮朋友写了一些代码,自己觉得写着写着,好几个版本以后,有点满意,于是就贴出来。
都是定死了的。因为需求就只有4个元素。如果是要用CSS的class来处理,那就需要用到CSS3动画了。

<!DOCTYPE html> 
<html> 
<head> 
<title> CSS+jQuery动画效果 </title> 
<meta name="Generator" content="EditPlus"> 
<meta name="Author" content="铁锚"> 
<style> 
body{ 
z-index: 0; 
width: 100%; 
min-height: 400px; 
} 
.pages{ 
position: absolute; 
} 
.current{ 
position: absolute; 
z-index: 12 !important; 
left: 0px !important; 
} 
.page1{ 
background-color: #a5cfff; 
z-index: 1; 
width: 300px; 
height:280px; 
top: 100px; 
left: 0px; 
} 
.page2{ 
background-color: #b1ca54; 
z-index: 2; 
width: 250px; 
height:270px; 
top: 160px; 
left: 0px; 
} 
.page3{ 
background-color: #c2c6c9; 
z-index: 3; 
width: 200px; 
height:260px; 
top: 220px; 
left: 0px; 
} 
.page4{ 
background-color: #ef9e9c; 
z-index: 4; 
width: 150px; 
height:250px; 
top: 250px; 
left: 0px; 
} 
</style> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
<script> 
$(function(){ 
// 增长 
function increase($div,e){ 
var style = $div.attr("style"); 
$div.addClass("current").attr("styleold",style); 
// 
$div.stop(); 
$div.animate({ 
opacity:0.9, 
width:"400px", 
height: "400px", 
top: "100px", 
left: "0px" 
},600) 
.animate({ 
opacity:1.0 
},30); e.stopPropagation(); 
return false; 
}; 
// 还原 
function resize(e){ 
// 所有的都移除 
var $page1 = $(".current.page1") ; 
$page1.stop(); 
$page1.animate({ 
opacity:1.0, 
width:"300px", 
height: "280px", 
top: "100px", 
left: "0px" 
},600,null,function(){ 
$page1.removeClass("current").attr("style",""); 
}); 
var $page2 = $(".current.page2") ; 
$page2.stop(); 
$page2.animate({ 
opacity:1.0, 
width:"250px", 
height: "270px", 
top: "160px", 
left: "0px" 
},600,null,function(){ 
$page2.removeClass("current").attr("style",""); 
}); 
var $page3 = $(".current.page3") ; 
$page3.stop(); 
$page3.animate({ 
opacity:1.0, 
width:"200px", 
height: "260px", 
top: "220px", 
left: "0px" 
},600,null,function(){ 
$page3.removeClass("current").attr("style",""); 
}); 
var $page4 = $(".current.page4") ; 
$page4.stop(); 
$page4.animate({ 
opacity:1.0, 
width:"150px", 
height: "250px", 
top: "250px", 
left: "0px" 
},600,null,function(){ 
$page4.removeClass("current").attr("style",""); 
}); 
e.stopPropagation(); 
return false; 
}; 
// 
$("#button1").unbind("mouseover").bind("mouseover",function(e){ 
// 
var $page1 = $(".page1"); 
// 添加特定的 
return increase($page1,e); 
}).unbind("mouseout").bind("mouseout",function(e){ 
return resize(e); 
}); 
// 
$("#button2").unbind("mouseover").bind("mouseover",function(e){ 
// 
var $page2 = $(".page2"); 
// 添加特定的 
return increase($page2,e); 
}).unbind("mouseout").bind("mouseout",function(e){ 
return resize(e); 
}); 
// 
$("#button3").unbind("mouseover").bind("mouseover",function(e){ 
// 
var $page3 = $(".page3"); 
// 添加特定的 
return increase($page3,e); 
}).unbind("mouseout").bind("mouseout",function(e){ 
return resize(e); 
}); 
// 
$("#button4").unbind("mouseover").bind("mouseover",function(e){ 
// 
var $page4 = $(".page4"); 
// 添加特定的 
return increase($page4,e); 
}).unbind("mouseout").bind("mouseout",function(e){ 
return resize(e); 
}); 
// 
$(".pages").unbind("mouseover").bind("mouseover",function(e){ 
// 
var $this = $(this); 
// 添加特定的 
return increase($this,e); 
}).unbind("mouseout").bind("mouseout",function(e){ 
// 所有的都移除 
return resize(e); 
}); 
// 
$("body").click(function(e){ 
// 所有的都移除 
return resize(e); 
}); 
}); 
</script> 
</head> 
<body> 
<div class="pages page1">page1</div> 
<div class="pages page2">page2</div> 
<div class="pages page3">page3</div> 
<div class="pages page4">page4</div> 
<div style="background-color: #a5cfff;"> 
<button id="button1">第一页</button> 
<button id="button2">第2页</button> 
<button id="button3">第3页</button> 
<button id="button4">第4页</button> 
</div> 
</body> 
</html>
Javascript 相关文章推荐
复制Input内容的js代码_支持所有浏览器,修正了Firefox3.5以上的问题
Jun 21 Javascript
让复选框只能选择一项的方法
Oct 08 Javascript
jquery select 设置默认选中的示例代码
Feb 07 Javascript
如何防止JavaScript自动插入分号
Nov 05 Javascript
JQuery控制图片由中心点逐渐放大效果
Jun 26 Javascript
基于Vue制作组织架构树组件
Dec 06 Javascript
Vue2.0 slot分发内容与props验证的方法
Dec 12 Javascript
Angular4集成ng2-file-upload的上传组件
Mar 14 Javascript
基于layui数据表格以及传数据的方式
Aug 19 Javascript
详解Bootstrap 学习(一)入门
Apr 12 Javascript
详解async/await 异步应用的常用场景
May 13 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
Nov 01 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
Sep 24 #Javascript
基于jquery实现的省市区级联无ajax
Sep 24 #Javascript
JS.elementGetStyle(element, style)应用示例
Sep 24 #Javascript
jquery $.each()使用探讨
Sep 23 #Javascript
jQuery ajax dataType值为text json探索分享
Sep 23 #Javascript
jQuery实现类似滑动门切换效果的层切换
Sep 23 #Javascript
JS 实现导航栏悬停效果
Sep 23 #Javascript
You might like
php 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
php替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
destoon官方标签大全
2014/06/20 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
jQuery数组处理方法汇总
2011/06/20 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
前端框架Vue.js中Directive知识详解
2016/09/12 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
深入浅析Vue.js中 computed和methods不同机制
2018/03/22 Javascript
vue实现表格过滤功能
2019/09/27 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
python任务调度实例分析
2015/05/19 Python
Python聊天室实例程序分享
2016/01/05 Python
Python2.7简单连接与操作MySQL的方法
2016/04/27 Python
Python 实现异步调用函数的示例讲解
2018/10/14 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
python读取csv和txt数据转换成向量的实例
2019/02/12 Python
对pyqt5中QTabWidget的相关操作详解
2019/06/21 Python
Python综合应用名片管理系统案例详解
2020/01/03 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
COACH德国官方网站:纽约现代奢侈品牌,1941年
2018/06/09 全球购物
会计系毕业个人自荐信格式
2013/09/23 职场文书
药学专业个人的自我评价
2013/12/31 职场文书
高一地理教学反思
2014/01/18 职场文书
学校消防安全制度
2014/01/30 职场文书
高三语文复习计划
2015/01/19 职场文书
大学生个人学年总结
2015/02/15 职场文书
考研英语辞职信
2015/05/13 职场文书
学雷锋主题班会教案
2015/08/13 职场文书