jquery ui图片全屏幻灯片带缩略图片翻转切换支持鼠标和键盘上下翻转切换



121 483 162



特效描述:jquery ui 全屏幻灯片 带缩略图片 翻转切换 上下翻转切换,图片自适应屏幕大小,整屏上下翻屏。右侧的小图实现3d切换。放大镜可以实现全屏和两栏预览

代码结构

1. 引入CSS

<link rel="stylesheet" type="text/css" href="css/style.css" />
<link href='http://fonts.googleapis.com/css?family=PT+Sans+Narrow' rel='stylesheet' type='text/css' />
<link href='http://fonts.googleapis.com/css?family=Dancing+Script' rel='stylesheet' type='text/css' />

2. 引入JS

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/jquery.flip.js"></script>
<script type="text/javascript" src="js/jquery.mousewheel.min.js"></script>

3. HTML代码

<div id="tf_loading" class="tf_loading"></div>
<div id="tf_bg" class="tf_bg">
	<img src="images/1.jpg" alt="Image 1" longdesc="images/thumbs/1.jpg" />
	<img src="images/2.jpg" alt="Image 2" longdesc="images/thumbs/2.jpg"/>
	<img src="images/3.jpg" alt="Image 3" longdesc="images/thumbs/3.jpg"/>
	<img src="images/4.jpg" alt="Image 4" longdesc="images/thumbs/4.jpg"/>
	<img src="images/5.jpg" alt="Image 5" longdesc="images/thumbs/5.jpg"/>
	<img src="images/6.jpg" alt="Image 6" longdesc="images/thumbs/6.jpg"/>
	<div class="tf_pattern"></div>
</div>
<div id="tf_content_wrapper" class="tf_content_wrapper">
	<div class="tf_content" id="content1" style="display:block;">
		<h2>Dreamer</h2>
		<p>Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.</p>
	</div>
	<div class="tf_content" id="content2">
		<h2>Crusader</h2>
		<p>Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean. A small river named Duden flows by their place and supplies it with the necessary regelialia.</p>
	</div>
	<div class="tf_content" id="content3">
		<h2>Adventurer</h2>
		<p>It is a paradisematic country, in which roasted parts of sentences fly into your mouth.</p>
	</div>
	<div class="tf_content" id="content4">
		<h2>Risk Taker</h2>
		<p>She packed her seven versalia, put her initial into the belt and made herself on the way.</p>
	</div>
	<div class="tf_content" id="content5">
		<h2>Visioneer</h2>
		<p>Pityful a rethoric question ran over her cheek, then she continued her way. On her way she met a copy.</p>
	</div>
	<div class="tf_content" id="content6">
		<h2>Magician</h2>
		<p>And if she hasn’t been rewritten, then they are still using her. Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.</p>
	</div>
</div>
<div id="tf_thumbs" class="tf_thumbs">
	<span id="tf_zoom" class="tf_zoom"></span>
	<img src="images/thumbs/1.jpg" alt="Thumb1"/>
</div>
<div id="tf_next" class="tf_next"></div>
<div id="tf_prev" class="tf_prev"></div>
<div class="description">
	<span>键盘↑↓键使用,或鼠标上下滚动。</span>
</div>
<!-- The JavaScript -->
<script type="text/javascript">
/*
the images preload plugin
*/
(function($) {
	$.fn.preload = function(options) {
		var opts 	= $.extend({}, $.fn.preload.defaults, options);
		o			= $.meta ? $.extend({}, opts, this.data()) : opts;
		var c		= this.length,
			l		= 0;
		return this.each(function() {
			var $i	= $(this);
			$('<img/>').load(function(i){
				++l;
				if(l == c) o.onComplete();
			}).attr('src',$i.attr('src'));	
		});
	};
	$.fn.preload.defaults = {
		onComplete	: function(){return false;}
	};
})(jQuery);
</script>
<script type="text/javascript">
$(function() {
	var $tf_bg				= $('#tf_bg'),
		$tf_bg_images		= $tf_bg.find('img'),
		$tf_bg_img			= $tf_bg_images.eq(0),
		$tf_thumbs			= $('#tf_thumbs'),
		total				= $tf_bg_images.length,
		current				= 0,
		$tf_content_wrapper	= $('#tf_content_wrapper'),
		$tf_next			= $('#tf_next'),
		$tf_prev			= $('#tf_prev'),
		$tf_loading			= $('#tf_loading');
	//preload the images				
	$tf_bg_images.preload({
		onComplete	: function(){
			$tf_loading.hide();
			init();
		}
	});
	//shows the first image and initializes events
	function init(){
		//get dimentions for the image, based on the windows size
		var dim	= getImageDim($tf_bg_img);
		//set the returned values and show the image
		$tf_bg_img.css({
			width	: dim.width,
			height	: dim.height,
			left	: dim.left,
			top		: dim.top
		}).fadeIn();
		//resizing the window resizes the $tf_bg_img
	$(window).bind('resize',function(){
		var dim	= getImageDim($tf_bg_img);
		$tf_bg_img.css({
			width	: dim.width,
			height	: dim.height,
			left	: dim.left,
			top		: dim.top
		});
	});
		//expand and fit the image to the screen
		$('#tf_zoom').live('click',
			function(){
			if($tf_bg_img.is(':animated'))
				return false;
				var $this	= $(this);
				if($this.hasClass('tf_zoom')){
					resize($tf_bg_img);
					$this.addClass('tf_fullscreen')
						 .removeClass('tf_zoom');
				}
				else{
					var dim	= getImageDim($tf_bg_img);
					$tf_bg_img.animate({
						width	: dim.width,
						height	: dim.height,
						top		: dim.top,
						left	: dim.left
					},350);
					$this.addClass('tf_zoom')
						 .removeClass('tf_fullscreen');	
				}
			}
		);
		//click the arrow down, scrolls down
		$tf_next.bind('click',function(){
			if($tf_bg_img.is(':animated'))
				return false;
				scroll('tb');
		});
		//click the arrow up, scrolls up
		$tf_prev.bind('click',function(){
			if($tf_bg_img.is(':animated'))
			return false;
			scroll('bt');
		});
		//mousewheel events - down / up button trigger the scroll down / up
		$(document).mousewheel(function(e, delta) {
			if($tf_bg_img.is(':animated'))
				return false;
			if(delta > 0)
				scroll('bt');
			else
				scroll('tb');
			return false;
		});
		//key events - down / up button trigger the scroll down / up
		$(document).keydown(function(e){
			if($tf_bg_img.is(':animated'))
				return false;
			switch(e.which){
				case 38:	
					scroll('bt');
					break;	
				case 40:	
					scroll('tb');
					break;
			}
		});
	}
	//show next / prev image
	function scroll(dir){
		//if dir is "tb" (top -> bottom) increment current, 
		//else if "bt" decrement it
		current	= (dir == 'tb')?current + 1:current - 1;
		//we want a circular slideshow, 
		//so we need to check the limits of current
		if(current == total) current = 0;
		else if(current < 0) current = total - 1;
		//flip the thumb
		$tf_thumbs.flip({
			direction	: dir,
			speed		: 400,
			onBefore	: function(){
				//the new thumb is set here
				var content	= '<span id="tf_zoom" class="tf_zoom"></span>';
				content		+='<img src="' + $tf_bg_images.eq(current).attr('longdesc') + '" alt="Thumb' + (current+1) + '"/>';
				$tf_thumbs.html(content);
		}
		});
		//we get the next image
		var $tf_bg_img_next	= $tf_bg_images.eq(current),
			//its dimentions
			dim				= getImageDim($tf_bg_img_next),
			//the top should be one that makes the image out of the viewport
			//the image should be positioned up or down depending on the direction
				top	= (dir == 'tb')?$(window).height() + 'px':-parseFloat(dim.height,10) + 'px';
		//set the returned values and show the next image	
			$tf_bg_img_next.css({
				width	: dim.width,
				height	: dim.height,
				left	: dim.left,
				top		: top
			}).show();
		//now slide it to the viewport
			$tf_bg_img_next.stop().animate({
				top 	: dim.top
			},1000);
		//we want the old image to slide in the same direction, out of the viewport
			var slideTo	= (dir == 'tb')?-$tf_bg_img.height() + 'px':$(window).height() + 'px';
			$tf_bg_img.stop().animate({
				top 	: slideTo
			},1000,function(){
			//hide it
				$(this).hide();
			//the $tf_bg_img is now the shown image
				$tf_bg_img	= $tf_bg_img_next;
			//show the description for the new image
				$tf_content_wrapper.children()
								   .eq(current)
								   .show();
	});
		//hide the current description	
			$tf_content_wrapper.children(':visible')
							   .hide()
	}
	//animate the image to fit in the viewport
	function resize($img){
		var w_w	= $(window).width(),
			w_h	= $(window).height(),
			i_w	= $img.width(),
			i_h	= $img.height(),
			r_i	= i_h / i_w,
			new_w,new_h;
		if(i_w > i_h){
			new_w	= w_w;
			new_h	= w_w * r_i;
			if(new_h > w_h){
				new_h	= w_h;
				new_w	= w_h / r_i;
			}
		}	
		else{
			new_h	= w_w * r_i;
			new_w	= w_w;
		}
		$img.animate({
			width	: new_w + 'px',
			height	: new_h + 'px',
			top		: '0px',
			left	: '0px'
		},350);
	}
	//get dimentions of the image, 
	//in order to make it full size and centered
	function getImageDim($img){
		var w_w	= $(window).width(),
			w_h	= $(window).height(),
			r_w	= w_h / w_w,
			i_w	= $img.width(),
			i_h	= $img.height(),
			r_i	= i_h / i_w,
			new_w,new_h,
			new_left,new_top;
		if(r_w > r_i){
			new_h	= w_h;
			new_w	= w_h / r_i;
		}
		else{
			new_h	= w_w * r_i;
			new_w	= w_w;
		}
		return {
			width	: new_w + 'px',
			height	: new_h + 'px',
			left	: (w_w - new_w) / 2 + 'px',
			top		: (w_h - new_h) / 2 + 'px'
		};
		}
});
</script>



用户评论
大牛,别默默的看了,快登录帮我点评一下吧!:)      登录 | 注册


热门标签: 图片叠加 图片层叠 图片拖动 图片拖拽 图片翻转 图片旋转 图片延迟加载 图片延迟 图片加载 图片淡出淡进 图片淡出 图片淡进 图片全屏 头像上传 图片上传 二维码 图片放大镜 h5图片动画 h5图标动画 html5图片动画 html5图标动画 带缩略图的幻灯片 flash焦点图 flash幻灯片 flashbanner flash图片轮播 地图 中国地图 世界地图 图片放大缩小 图片缩放 图片大小 图片放大 图片缩小 图片变大 图片变小 滚动切换 滚动条切换 滑动选项卡 滑动切换 图片广告 纯图片轮播 图片轮播 图片滚动 图片滚动条 旋转木马 图片旋转木马 文字旋转木马 旋转木马插件 图片滑动 图片滑块 图片切换 图片选项卡 图标选项卡 图片收缩展开 图片收缩 图片展开 自动滚动图片轮播 图标导航 图标菜单 背景切换 大图切换 选项卡切换 选项卡 切换 tab切换 页面切换 选项卡插件 切换插件 滑动手风琴 全屏焦点图 手风琴 水平手风琴 垂直手风琴 图片手风琴 文字手风琴 手风琴插件 旋转翻转 旋转 翻转 全屏切换 切换按钮 宽屏全屏 宽屏 全屏 页面全屏 页面宽屏 表单 表单美化 表单插件 表单美化插件 图表 焦点图 幻灯片 轮播图 bar焦点图 图片 图片插件 头像截图 图片翻转 图片旋转 图片全屏 带缩略图的幻灯片 图片切换 图片选项卡 图标选项卡 图片切换 切换图片 按钮控制

×
×

注册

官方QQ群

扫描上面二维码加微信群

官方QQ群

jQuery/js讨论群
群号:642649996
Css3+Html5讨论群
群号:322131262

加群请备注:从官网了解到