zoukankan      html  css  js  c++  java
  • 一个CSS+jQuery的放大缩小动画效果

    日期: 2013年9月23日

    作者:铁锚

    // 今天帮朋友写了一些代码,自己觉得写着写着,好几个版本以后,有点满意,于是就贴出来。

    // 都是定死了的。因为需求就只有4个元素。如果是要用CSS的class来处理,那就需要用到CSS3动画了。

    // 功能 :  在上方的按钮上滑动,可以切换各个page,点击下方的各个page,也可以切换收缩还是展开状态。


    初始效果预览


    <!DOCTYPE html>
    <html>
     <head>
      <title> CSS+jQuery动画效果 </title>
      <meta name="Generator" content="EditPlus">
      <meta name="Author" content="铁锚">
      <style>
    	body{
    		z-index: 0;
    		 100%;
    		min-height: 400px;
    	}
    	.pages{
    		position: absolute;
    	}
    	.current{
    		position: absolute;
    		z-index: 12 !important;
    		left: 0px !important;
    	}
    	.page1{
    		background-color: #a5cfff;
    		z-index: 1;
    		 300px;
    		height:280px;
    		top: 100px;
    		left: 0px;
    	}
    	.page2{
    		background-color: #b1ca54;
    		z-index: 2;
    		 250px;
    		height:270px;
    		top: 160px;
    		left: 0px;
    	}
    	.page3{
    		background-color: #c2c6c9;
    		z-index: 3;
    		 200px;
    		height:260px;
    		top: 220px;
    		left: 0px;
    	}
    	.page4{
    		background-color: #ef9e9c;
    		z-index: 4;
    		 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 expstatus = $div.data("expstatus");
    		if(!expstatus){
    			// 没有展开过
    			$div.data("expstatus","yes");
    		}
    		var style = $div.attr("style");
    		$div.addClass("current").attr("styleold",style);
    		//
    		$div.stop();
    		$div.animate({
    						opacity:0.9,
    						"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,
    						"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,
    						"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,
    						"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,
    						"150px",
    						height: "250px",
    						top: "250px",
    						left: "0px"
    			},600,null,function(){
    				$page4.removeClass("current").attr("style","");
    			});
    		//
    		
    		var expstatus1 = $page1.data("expstatus");
    		if(expstatus1){
    			$page1.data("expstatus",null);
    		}
    		var expstatus2 = $page2.data("expstatus");
    		if(expstatus2){
    			$page2.data("expstatus",null);
    		}
    		var expstatus3 = $page3.data("expstatus");
    		if(expstatus3){
    			$page3.data("expstatus",null);
    		}
    		var expstatus4 = $page4.data("expstatus");
    		if(expstatus4){
    			$page4.data("expstatus",null);
    		}
    
    		if(e){
    			e.stopPropagation();
    			return false;
    		} else {
    			return true;
    		}
    	};
    	//
    	$("#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);
    	});
    	// 新的
    	$(".pages").unbind("click touchstart").bind("click touchstart",function(e){
    		// 
    		var $this = $(this);
    		var expstatus = $this.data("expstatus");
    		if(!expstatus){
    			// 没有展开过
    			//
    			return increase($this,e);
    		} else {
    			return resize(e);
    		}
    	});
    	//
    	$("body").click(function(e){
    		// 所有的都移除
    		return resize(null);
    	});
      });
      </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>


  • 相关阅读:
    io学习
    asp.net文件上传进度条研究
    asp.net页面中的Console.WriteLine结果如何查看
    谨慎跟随初始目的不被关联问题带偏
    android 按钮特效 波纹 Android button effects ripple
    安卓工作室 日志设置
    安卓工作室 文件浏览器 android studio File browser
    一个新的Android Studio 2.3.3可以在稳定的频道中使用。A new Android Studio 2.3.3 is available in the stable channel.
    新巴巴运动网上商城 项目 快速搭建 教程 The new babar sports online mall project quickly builds a tutorial
    码云,git使用 教程-便签
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6467093.html
Copyright © 2011-2022 走看看