jquery html5 css3全屏滑动图片幻灯片_图片撕开动画效果



168 670 224



特效描述:jquery html5 css3 全屏滑动 图片幻灯片 图片撕开动画,全屏滑动图片幻灯片图片撕开动画效果

代码结构

1. 引入CSS

<link rel="stylesheet" type="text/css" href="css/demo.css" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
<link href='http://fonts.googleapis.com/css?family=Miltonian|Bitter' rel='stylesheet' type='text/css' />

2. 引入JS

<script type="text/javascript" src="js/modernizr.custom.21750.js"></script>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/StackBlur.js"></script>

3. HTML代码

<p class="demos"><a class="current-demo" href="index.html">Demo 1</a> | <a href="index2.html">Demo 2</a> | <a href="index3.html">Demo 3</a></p>
<div id="bx-wrapper" class="bx-wrapper">
	<div class="bx-loading">
		<span>Loading...</span>
	</div>
	<div class="bx-content">
		<h2>Shushi Town</h2>
	</div>
	<div class="bx-thumbs">
		<a href="#" class="bx-thumbs-current" style="background-image:url(images/thumbs/1.jpg)"></a>
		<a href="#" style="background-image:url(images/thumbs/2.jpg)"></a>
		<a href="#" style="background-image:url(images/thumbs/3.jpg)"></a>
		<a href="#" style="background-image:url(images/thumbs/4.jpg)"></a>
		<a href="#" style="background-image:url(images/thumbs/5.jpg)"></a>
		<a href="#" style="background-image:url(images/thumbs/6.jpg)"></a>
		<a href="#" style="background-image:url(images/thumbs/7.jpg)"></a>
	</div>
	<div class="bx-container">
		<img src="images/large/1.jpg" alt="image01" title="Shushi Town"/>
		<img src="images/large/2.jpg" alt="image02" title="Raw Love"/>
		<img src="images/large/3.jpg" alt="image03" title="Freshness"/>
		<img src="images/large/4.jpg" alt="image04" title="Crunchbite"/>
		<img src="images/large/5.jpg" alt="image05" title="Flavour Bomb"/>
		<img src="images/large/6.jpg" alt="image06" title="Tenderness"/>
		<img src="images/large/7.jpg" alt="image07" title="Aroma Paradise"/>
	</div>
	<div class="bx-overlay"></div>
</div>
<script type="text/javascript">
$(function() {
	var BlurBGImage	= (function() {
		var $bxWrapper			= $('#bx-wrapper'),
		// loading status to show while preloading images
		$bxLoading			= $bxWrapper.find('div.bx-loading'),
		// container for the bg images and respective canvas
		$bxContainer		= $bxWrapper.find('div.bx-container'),
		// the bg images we are gonna use
		$bxImgs				= $bxContainer.children('img'),
		// total number of bg images
		bxImgsCount			= $bxImgs.length,
		// the thumb elements
		$thumbs				= $bxWrapper.find('div.bx-thumbs > a').hide(),
		// the title for the current image
		$title				= $bxWrapper.find('h2:first'),
		// current image's index
		current				= 0,
		// variation to show the image:
		// (1) - blurs the current one, fades out and shows the next image
		// (2) - blurs the current one, fades out, shows the next one (but initially blurred)
		// speed is the speed of the animation
		// blur Factor is the factor used in the StackBlur script
		animOptions			= { speed : 700, variation : 1, blurFactor : 10 },
		// control if currently animating
		isAnim				= false,
		// check if canvas is supported
		supportCanvas 		= Modernizr.canvas,
		// init function
		init				= function() {
			// preload all images and respective canvas
			var loaded = 0;
			$bxImgs.each( function(i) {
				var $bximg	= $(this);
				// save the position of the image in data-pos
				$('<img data-pos="' + $bximg.index() + '"/>').load(function() {
					var $img	= $(this),
					// size of image to be fullscreen and centered
					dim		= getImageDim( $img.attr('src') ),
					pos		= $img.data( 'pos' );
					// add the canvas to the DOM
					$.when( createCanvas( pos, dim ) ).done( function() {
						++loaded;
						// all images and canvas loaded
						if( loaded === bxImgsCount ) {
							// show thumbs
							$thumbs.fadeIn();
							// apply style for bg image and canvas
							centerImageCanvas();
							// hide loading status
							$bxLoading.hide();
							// initialize events
							initEvents();
						}
					});
				}).attr( 'src', $bximg.attr('src') );
			});
		},
		// creates the blurred canvas image
		createCanvas		= function( pos, dim ) {
			return $.Deferred( function(dfd) {
				// if canvas not supported return
				if( !supportCanvas ) {
					dfd.resolve();
					return false;
				}	
				// create the canvas element:
				// size and position will be the same like the fullscreen image
				var $img	= $bxImgs.eq( pos ),
				imgW	= dim.width,
				imgH	= dim.height,
				imgL	= dim.left,
				imgT	= dim.top,
				canvas	= document.createElement('canvas');
				canvas.className	= 'bx-canvas';
				canvas.width 		= imgW;
				canvas.height 		= imgH;
				canvas.style.width  = imgW + 'px';
				canvas.style.height = imgH + 'px';
				canvas.style.left	= imgL + 'px';
				canvas.style.top	= imgT + 'px';
				canvas.style.visibility = 'hidden';
				// save position of canvas to know which image this is linked to
				canvas.setAttribute('data-pos', pos);
				// append the canvas to the same container where the images are
				$bxContainer.append( canvas );
				// blur it using the StackBlur script
				stackBlurImage( $img.get(0), dim, canvas, animOptions.blurFactor, false, dfd.resolve );
			}).promise();							
		},
		// gets the image size and position in order to make it fullscreen and centered.
		getImageDim			= function( img ) {
			var $img    = new Image();
			$img.src    = img;
			var $win	= $( window ),
			w_w		= $win.width(),
			w_h		= $win.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,
				height	: new_h,
				left	: ( w_w - new_w ) / 2,
				top		: ( w_h - new_h ) / 2
			};
		},
		// initialize the events
		initEvents			= function() {
			$( window ).on('resize.BlurBGImage', function( event ) {
				// apply style for bg image and canvas
				centerImageCanvas();
				return false;
			});
			// clicking on a thumb shows the respective bg image
			$thumbs.on('click.BlurBGImage', function( event ) {
				var $thumb	= $(this),
				pos		= $thumb.index();
				if( !isAnim && pos !== current ) {
					$thumbs.removeClass('bx-thumbs-current');
					$thumb.addClass('bx-thumbs-current');
					isAnim = true;
					// show the bg image
					showImage( pos );
				}
				return false;
			});
		},
		// apply style for bg image and canvas
		centerImageCanvas	= function() {
			$bxImgs.each( function(i) {
				var $bximg	= $(this),
				dim			= getImageDim( $bximg.attr('src') ),
				$currCanvas	= $bxContainer.children('canvas[data-pos=' + $bximg.index() + ']'),
				styleCSS	= {
					width	: dim.width,
					height	: dim.height,
					left	: dim.left,
					top		: dim.top
				};	
				$bximg.css( styleCSS );
				if( supportCanvas )
					$currCanvas.css( styleCSS );
				if( i === current )	
					$bximg.show();
			});
		},
		// shows the image at position "pos"
		showImage			= function( pos ) {
			// current image 
			var $bxImage		= $bxImgs.eq( current );
			// current canvas
			$bxCanvas		= $bxContainer.children('canvas[data-pos=' + $bxImage.index() + ']'),
			// next image to show
			$bxNextImage	= $bxImgs.eq( pos ),
			// next canvas to show
			$bxNextCanvas	= $bxContainer.children('canvas[data-pos='+$bxNextImage.index()+']');
			// if canvas is supported
			if( supportCanvas ) {
				$.when( $title.fadeOut() ).done( function() {
					$title.text( $bxNextImage.attr('title') );
				});
				$bxCanvas.css( 'z-index', 100 ).css('visibility','visible');
				$.when( $bxImage.fadeOut( animOptions.speed ) ).done( function() {
					switch( animOptions.variation ) {
						case 1 	:
							$title.fadeIn( animOptions.speed );
							$.when( $bxNextImage.fadeIn( animOptions.speed ) ).done( function() {
								$bxCanvas.css( 'z-index', 1 ).css('visibility','hidden');
								current = pos;
								$bxNextCanvas.css('visibility','hidden');
								isAnim 	= false;
							});
							break;
						case 2	:
							$bxNextCanvas.css('visibility','visible');
							$.when( $bxCanvas.fadeOut( animOptions.speed * 1.5 ) ).done( function() {
								$(this).css({
									'z-index' 		: 1,
									'visibility'	: 'hidden'
								}).show();
								$title.fadeIn( animOptions.speed );
								$.when( $bxNextImage.fadeIn( animOptions.speed ) ).done( function() {
									current = pos;
									$bxNextCanvas.css('visibility','hidden');
									isAnim 	= false;
								});
							});
							break;
					};
				});
			}
			// if canvas is not shown just work with the bg images
			else {
				$title.hide().text( $bxNextImage.attr('title') ).fadeIn( animOptions.speed );
				$.when( $bxNextImage.css( 'z-index', 102 ).fadeIn( animOptions.speed ) ).done( function() {
					current = pos;
					$bxImage.hide();
					$(this).css( 'z-index', 101 );
					isAnim = false;
				});
			}
		};
		return {
			init	: init
		};
	})();
	// call the init function
	BlurBGImage.init();
});
</script>



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


热门标签: 滑动导航菜单 导航切换 图片全屏 html5动画导航菜单 图片头像上传 滑动选项卡切换 文字全屏 html5图片动画 文件上传 图片滑动 图片切换 360全景 html5文字动画 文本框 文字滑动 文字切换 下拉框 html5表情动画 滑动手风琴 背景切换 复选 html5线条动画 滑动星星打分 手风琴 单选 选项卡自动切换 登录框 html5飘落动画 视频切换 注册框 html5光标动画 列表切换 搜索框 验证码 渐隐切换 html5悬停动画 二级联动 全屏切换 三级联动 切换按钮 城市选择 缩放切换 value赋值 筛选 按钮控制 购物车 颜色选择 表单提交 全选/反选 添加删除 添加标签 密码强度验证 表单验证 html5按钮动画 按钮样式 密码修改设置 滑动滑过 滚动切换 滑动选项卡切换 加载动画 选项卡切换 滑动手风琴 全屏焦点图 html5弹窗动画 全屏切换 切换按钮 宽屏全屏满屏 html5动画h5动画 form表单 html5按钮动画

×
×

注册

官方QQ群

扫描上面二维码加微信群

官方QQ群

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

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