• jQuery练习实例(四)




    最近写的jquery实例--jQuery图片九宫格样式鼠标悬停图片滑动切换效果

             有兴趣的同学可以参考一下,这幅效果,个人觉得挺不错的

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
    
    <style type="text/css">
    	*{margin:0;padding:0;list-style-type:none;}
    	a,img{border:0;}
    	body{font:12px/180% Arial, Helvetica, sans-serif, "新宋体";background:#fff;}
    	.content{900px;position:relative;margin:20px auto 0px auto;}
    	.content h2{color:#333;font-size:22px;text-align:center;height:40px;}
    	/* hs_container */
    	.hs_container{902px;height:471px;overflow:hidden;clear:both;border:2px solid #ddd;cursor:pointer;padding:3px;}
    	.hs_container .hs_area{float:left;position:relative;overflow:hidden;}
    	.hs_area img{position:absolute;top:0px;left:0px;display:none;}
    	.hs_area img.hs_visible{display:block;z-index:9999;}
    	.hs_area1{border-right:2px solid #fff;}
    	.hs_area4, .hs_area5{border-top:2px solid #fff;}
    	.hs_area4{border-right:2px solid #fff;}
    	.hs_area3{border-top:2px solid #fff;}
    	.hs_area1{449px;height:334px;}
    	.hs_area2{451px;height:165px;}
    	.hs_area3{451px;height:167px;}
    	.hs_area4{192px;height:135px;}
    	.hs_area5{708px;height:135px;}
    </style>
    
    
    
    
    </head>
    
    <body>
       <p>this is a index page</p>
       
       
       		
    <div class="content">
    	<h2>jQuery图片九宫格样式鼠标悬停图片滑动切换效果(<font color="#ff0000">点击图片试试</font>)</h2>
    	
    	<div id="hs_container" class="hs_container">
    		<div class="hs_area hs_area1">
    			<img class="hs_visible" src="images/area1/1.jpg" alt="xixi"/>
    			<img src="images/area1/31.jpg" alt=""/>
    		</div>
    		<div class="hs_area hs_area2">
    			<img class="hs_visible" src="images/area2/1.jpg" alt=""/>
    			<img src="images/area2/32.jpg" alt=""/>
    		</div>
    		<div class="hs_area hs_area3">
    			<img class="hs_visible" src="images/area3/1.jpg" alt=""/>
    			<img src="images/area3/33.jpg" alt=""/>
    		</div>
    		<div class="hs_area hs_area4">
    			<img class="hs_visible" src="images/area4/1.jpg" alt=""/>
    			<img src="images/area4/34.jpg" alt=""/>
    		</div>
    		<div class="hs_area hs_area5">
    			<img class="hs_visible" src="images/area5/1.jpg" alt=""/>
    			<img src="images/area5/35.jpg" alt=""/>
    		</div>
    	</div>
    
    </div>
    		
    <!-- The JavaScript -->
    
    <script type="text/javascript">
    $(function(){
    	//使用自定义动画
    	//过渡效果
    	var animations		= ['right','left','top','bottom','rightFade','leftFade','topFade','bottomFade'];
    	var total_anim		= animations.length;
    	//设置选择效果
    	var easeType		= 'swing';
    	//每个转换的速度
    	var animSpeed		= 450;
    	//缓存
    	var $hs_container	= $('#hs_container');
    	var $hs_areas		= $hs_container.find('.hs_area');
    	
    	//第一预加载的所有图像
    	$hs_images          = $hs_container.find('img');
    	var total_images    = $hs_images.length;
    	var cnt             = 0;
    	$hs_images.each(function(){
    		var $this = $(this);
    		$('<img/>').load(function(){
    			++cnt;
    			if(cnt == total_images){
    				$hs_areas.each(function(){
    					var $area 		= $(this);
    					//当鼠标进入该区域时,我们制作动画的电流
    					//图像(随机阵列动画)
    					//使下一个得到可见。
    					//"over" 是一个标志,如果我们可以动画 
    					//一个地区或没有(我们不希望2动画
    					//为每个区域在同一时间)
    					$area.data('over',true).bind('mouseenter',function(){
    						if($area.data('over')){
    							$area.data('over',false);
    							//在这方面多少图像?
    							var total		= $area.children().length;
    							//可见光图像
    							var $current 	= $area.find('img:visible');
    							//可见光图像的索引
    							var idx_current = $current.index();
    							//的将被显示的下一个图像。
    							//无论是下一个,或第一个如果当前是最后
    							var $next		= (idx_current == total-1) ? $area.children(':first') : $current.next();
    							//显示下一个(不可见)
    							$next.show();
    							//得到一个随机的动画
    							var anim		= animations[Math.floor(Math.random()*total_anim)];
    							switch(anim){
    								//从当前幻灯片的权利
    								case 'right':
    								$current.animate({'left':$current.width()+'px'},animSpeed,easeType,function(){
    									$current.hide().css({'z-index':'1','left':'0px'});
    									$next.css('z-index','9999');
    									$area.data('over',true);
    								});
    								break;
    								//从左边滑动
    								case 'left':
    								$current.animate({'left':-$current.width()+'px'},animSpeed,easeType,function(){
    									$current.hide().css({'z-index':'1','left':'0px'});
    									$next.css('z-index','9999');
    									$area.data('over',true);
    								});
    								break;
    								//从顶部的幻灯片
    								case 'top':
    								$current.animate({'top':-$current.height()+'px'},animSpeed,easeType,function(){
    									$current.hide().css({'z-index':'1','top':'0px'});
    									$next.css('z-index','9999');
    									$area.data('over',true);
    								});
    								break;
    								//从底部滑动
    								case 'bottom':
    								$current.animate({'top':$current.height()+'px'},animSpeed,easeType,function(){
    									$current.hide().css({'z-index':'1','top':'0px'});
    									$next.css('z-index','9999');
    									$area.data('over',true);
    								});
    								break;
    								//从当前幻灯片的右侧和淡出
    								case 'rightFade':
    								$current.animate({'left':$current.width()+'px','opacity':'0'},animSpeed,easeType,function(){
    									$current.hide().css({'z-index':'1','left':'0px','opacity':'1'});
    									$next.css('z-index','9999');
    									$area.data('over',true);
    								});
    								break;
    								//从当前幻灯片的左侧和淡出
    								case 'leftFade':
    								$current.animate({'left':-$current.width()+'px','opacity':'0'},animSpeed,easeType,function(){
    									$current.hide().css({'z-index':'1','left':'0px','opacity':'1'});
    									$next.css('z-index','9999');
    									$area.data('over',true);
    								});
    								break;
    								//从当前幻灯片的顶部和淡出
    								case 'topFade':
    								$current.animate({'top':-$current.height()+'px','opacity':'0'},animSpeed,easeType,function(){
    									$current.hide().css({'z-index':'1','top':'0px','opacity':'1'});
    									$next.css('z-index','9999');
    									$area.data('over',true);
    								});
    								break;
    								//当前幻灯片,从底部淡出
    								case 'bottomFade':
    								$current.animate({'top':$current.height()+'px','opacity':'0'},animSpeed,easeType,function(){
    									$current.hide().css({'z-index':'1','top':'0px','opacity':'1'});
    									$next.css('z-index','9999');
    									$area.data('over',true);
    								});
    								break;		
    								default:
    								$current.animate({'left':-$current.width()+'px'},animSpeed,easeType,function(){
    									$current.hide().css({'z-index':'1','left':'0px'});
    									$next.css('z-index','9999');
    									$area.data('over',true);
    								});
    								break;
    							}	
    						}
    					});
    				});
    
    				//当点击hs_container各个领域得到滑动
    				$hs_container.bind('click',function(){
    					$hs_areas.trigger('mouseenter');
    				});
    				
    			}
    
    		}).attr('src',$this.attr('src'));
    
    	});	
    	
    });
    </script>
       
       
       
    </body>
    </html>


    运行效果:




    图片效果2:



  • 相关阅读:
    tomcat最大连接数
    【转】性能测试总结---测试流程篇
    nginx访问量统计
    在Excel中计算过去某一天到今天一共多少天
    Linux服务器/etc/profile
    Linux服务器安装MySQL
    idea无法识别maven项目
    python3 实现RC4加解密
    Python实现128-ECB 解密
    BlowFish加解密原理与代码实现
  • 原文地址:https://www.cnblogs.com/pangblog/p/3362329.html
Copyright © 2020-2023  润新知