HTML5实现的震撼3D焦点图动画
这是一款基于HTML5和jQuery的3D焦点图动画,焦点图中的图片利用了CSS3的相关特性实现图片倾斜效果,从而让图片出现3D的视觉效果。这款HTML5焦点图不仅可以手动点击按钮切换图片,而且还支持自动切换图片,使用起来也相当方便。如果你需要在网站中展示产品图片,那么这款焦点图插件非常适合你。
HTML代码
<section id="dg-container" class="dg-container"> <div class="dg-wrapper"> <a href="http://www.html5cn.org/home.php?mod=editor&op=blank&charset=utf-8#"><img src="/static/imghw/default1.png" data-src="http://www.html5cn.org/images/1.jpg" class="lazy" alt="image01"><div>http://www.colazionedamichy.it/</div></a> <a href="http://www.html5cn.org/home.php?mod=editor&op=blank&charset=utf-8#"><img src="/static/imghw/default1.png" data-src="http://www.html5cn.org/images/2.jpg" class="lazy" alt="image02"><div>http://www.percivalclo.com/</div></a> <a href="http://www.html5cn.org/home.php?mod=editor&op=blank&charset=utf-8#"><img src="/static/imghw/default1.png" data-src="http://www.html5cn.org/images/3.jpg" class="lazy" alt="image03"><div>http://www.wanda.net/fr</div></a> <a href="http://www.html5cn.org/home.php?mod=editor&op=blank&charset=utf-8#"><img src="/static/imghw/default1.png" data-src="http://www.html5cn.org/images/4.jpg" class="lazy" alt="image04"><div>http://lifeingreenville.com/</div></a> <a href="http://www.html5cn.org/home.php?mod=editor&op=blank&charset=utf-8#"><img src="/static/imghw/default1.png" data-src="http://www.html5cn.org/images/5.jpg" class="lazy" alt="image05"><div>http://circlemeetups.com/</div></a> <a href="http://www.html5cn.org/home.php?mod=editor&op=blank&charset=utf-8#"><img src="/static/imghw/default1.png" data-src="http://www.html5cn.org/images/6.jpg" class="lazy" alt="image06"><div>http://www.castirondesign.com/</div></a> <a href="http://www.html5cn.org/home.php?mod=editor&op=blank&charset=utf-8#"><img src="/static/imghw/default1.png" data-src="http://www.html5cn.org/images/7.jpg" class="lazy" alt="image07"><div>http://www.foundrycollective.com/</div></a> <a href="http://www.html5cn.org/home.php?mod=editor&op=blank&charset=utf-8#"><img src="/static/imghw/default1.png" data-src="http://www.html5cn.org/images/8.jpg" class="lazy" alt="image08"><div>http://www.mathiassterner.com/home</div></a> <a href="http://www.html5cn.org/home.php?mod=editor&op=blank&charset=utf-8#"><img src="/static/imghw/default1.png" data-src="http://www.html5cn.org/images/9.jpg" class="lazy" alt="image09"><div>http://learnlakenona.com/</div></a> <a href="http://www.html5cn.org/home.php?mod=editor&op=blank&charset=utf-8#"><img src="/static/imghw/default1.png" data-src="http://www.html5cn.org/images/10.jpg" class="lazy" alt="image10"><div>http://www.neighborhood-studio.com/</div></a> <a href="http://www.html5cn.org/home.php?mod=editor&op=blank&charset=utf-8#"><img src="/static/imghw/default1.png" data-src="http://www.html5cn.org/images/11.jpg" class="lazy" alt="image11"><div>http://www.beckindesign.com/</div></a> <a href="http://www.html5cn.org/home.php?mod=editor&op=blank&charset=utf-8#"><img src="/static/imghw/default1.png" data-src="http://www.html5cn.org/images/12.jpg" class="lazy" alt="image12"><div>http://kicksend.com/</div></a> </div> <nav> <span class="dg-prev"><</span> <span class="dg-next">></span> </nav> </section>
CSS代码
.dg-container{ width: 100%; height: 450px; position: relative; } .dg-wrapper{ width: 481px; height: 316px; margin: 0 auto; position: relative; -webkit-transform-style: preserve-3d; -moz-transform-style: preserve-3d; -o-transform-style: preserve-3d; -ms-transform-style: preserve-3d; transform-style: preserve-3d; -webkit-perspective: 1000px; -moz-perspective: 1000px; -o-perspective: 1000px; -ms-perspective: 1000px; perspective: 1000px; } .dg-wrapper a{ width: 482px; height: 316px; display: block; position: absolute; left: 0; top: 0; background: transparent url(../images/browser.png) no-repeat top left; box-shadow: 0px 10px 20px rgba(0,0,0,0.3); } .dg-wrapper a.dg-transition{ -webkit-transition: all 0.5s ease-in-out; -moz-transition: all 0.5s ease-in-out; -o-transition: all 0.5s ease-in-out; -ms-transition: all 0.5s ease-in-out; transition: all 0.5s ease-in-out; } .dg-wrapper a img{ display: block; padding: 41px 0px 0px 1px; } .dg-wrapper a div{ font-style: italic; text-align: center; line-height: 50px; text-shadow: 1px 1px 1px rgba(255,255,255,0.5); color: #333; font-size: 16px; width: 100%; bottom: -55px; display: none; position: absolute; } .dg-wrapper a.dg-center div{ display: block; } .dg-container nav{ width: 58px; position: absolute; z-index: 1000; bottom: 40px; left: 50%; margin-left: -29px; } .dg-container nav span{ text-indent: -9000px; float: left; cursor:pointer; width: 24px; height: 25px; opacity: 0.8; background: transparent url(../images/arrows.png) no-repeat top left; } .dg-container nav span:hover{ opacity: 1; } .dg-container nav span.dg-next{ background-position: top right; margin-left: 10px; }
JavaScript代码
/** * jquery.gallery.js * http://www.codrops.com * * Copyright 2011, Pedro Botelho / Codrops * Free to use under the MIT license. * * Date: Mon Jan 30 2012 */ (function( $, undefined ) { /* * Gallery object. */ $.Gallery = function( options, element ) { this.$el = $( element ); this._init( options ); }; $.Gallery.defaults = { current : 0, // index of current item autoplay : false,// slideshow on / off interval : 2000 // time between transitions }; $.Gallery.prototype = { _init : function( options ) { this.options = $.extend( true, {}, $.Gallery.defaults, options ); // support for 3d / 2d transforms and transitions this.support3d = Modernizr.csstransforms3d; this.support2d = Modernizr.csstransforms; this.supportTrans = Modernizr.csstransitions; this.$wrapper = this.$el.find('.dg-wrapper'); this.$items = this.$wrapper.children(); this.itemsCount = this.$items.length; this.$nav = this.$el.find('nav'); this.$navPrev = this.$nav.find('.dg-prev'); this.$navNext = this.$nav.find('.dg-next'); // minimum of 3 items if( this.itemsCount < 3 ) { this.$nav.remove(); return false; } this.current = this.options.current; this.isAnim = false; this.$items.css({ 'opacity' : 0, 'visibility': 'hidden' }); this._validate(); this._layout(); // load the events this._loadEvents(); // slideshow if( this.options.autoplay ) { this._startSlideshow(); } }, _validate : function() { if( this.options.current < 0 || this.options.current > this.itemsCount - 1 ) { this.current = 0; } }, _layout : function() { // current, left and right items this._setItems(); // current item is not changed // left and right one are rotated and translated var leftCSS, rightCSS, currentCSS; if( this.support3d && this.supportTrans ) { leftCSS = { '-webkit-transform' : 'translateX(-350px) translateZ(-200px) rotateY(45deg)', '-moz-transform' : 'translateX(-350px) translateZ(-200px) rotateY(45deg)', '-o-transform' : 'translateX(-350px) translateZ(-200px) rotateY(45deg)', '-ms-transform' : 'translateX(-350px) translateZ(-200px) rotateY(45deg)', 'transform' : 'translateX(-350px) translateZ(-200px) rotateY(45deg)' }; rightCSS = { '-webkit-transform' : 'translateX(350px) translateZ(-200px) rotateY(-45deg)', '-moz-transform' : 'translateX(350px) translateZ(-200px) rotateY(-45deg)', '-o-transform' : 'translateX(350px) translateZ(-200px) rotateY(-45deg)', '-ms-transform' : 'translateX(350px) translateZ(-200px) rotateY(-45deg)', 'transform' : 'translateX(350px) translateZ(-200px) rotateY(-45deg)' }; leftCSS.opacity = 1; leftCSS.visibility = 'visible'; rightCSS.opacity = 1; rightCSS.visibility = 'visible'; } else if( this.support2d && this.supportTrans ) { leftCSS = { '-webkit-transform' : 'translate(-350px) scale(0.8)', '-moz-transform' : 'translate(-350px) scale(0.8)', '-o-transform' : 'translate(-350px) scale(0.8)', '-ms-transform' : 'translate(-350px) scale(0.8)', 'transform' : 'translate(-350px) scale(0.8)' }; rightCSS = { '-webkit-transform' : 'translate(350px) scale(0.8)', '-moz-transform' : 'translate(350px) scale(0.8)', '-o-transform' : 'translate(350px) scale(0.8)', '-ms-transform' : 'translate(350px) scale(0.8)', 'transform' : 'translate(350px) scale(0.8)' }; currentCSS = { 'z-index' : 999 }; leftCSS.opacity = 1; leftCSS.visibility = 'visible'; rightCSS.opacity = 1; rightCSS.visibility = 'visible'; } this.$leftItm.css( leftCSS || {} ); this.$rightItm.css( rightCSS || {} ); this.$currentItm.css( currentCSS || {} ).css({ 'opacity' : 1, 'visibility': 'visible' }).addClass('dg-center'); }, _setItems : function() { this.$items.removeClass('dg-center'); this.$currentItm = this.$items.eq( this.current ); this.$leftItm = ( this.current === 0 ) ? this.$items.eq( this.itemsCount - 1 ) : this.$items.eq( this.current - 1 ); this.$rightItm = ( this.current === this.itemsCount - 1 ) ? this.$items.eq( 0 ) : this.$items.eq( this.current + 1 ); if( !this.support3d && this.support2d && this.supportTrans ) { this.$items.css( 'z-index', 1 ); this.$currentItm.css( 'z-index', 999 ); } // next & previous items if( this.itemsCount > 3 ) { // next item this.$nextItm = ( this.$rightItm.index() === this.itemsCount - 1 ) ? this.$items.eq( 0 ) : this.$rightItm.next(); this.$nextItm.css( this._getCoordinates('outright') ); // previous item this.$prevItm = ( this.$leftItm.index() === 0 ) ? this.$items.eq( this.itemsCount - 1 ) : this.$leftItm.prev(); this.$prevItm.css( this._getCoordinates('outleft') ); } }, _loadEvents : function() { var _self = this; this.$navPrev.on( 'click.gallery', function( event ) { if( _self.options.autoplay ) { clearTimeout( _self.slideshow ); _self.options.autoplay = false; } _self._navigate('prev'); return false; }); this.$navNext.on( 'click.gallery', function( event ) { if( _self.options.autoplay ) { clearTimeout( _self.slideshow ); _self.options.autoplay = false; } _self._navigate('next'); return false; }); this.$wrapper.on( 'webkitTransitionEnd.gallery transitionend.gallery OTransitionEnd.gallery', function( event ) { _self.$currentItm.addClass('dg-center'); _self.$items.removeClass('dg-transition'); _self.isAnim = false; }); }, _getCoordinates : function( position ) { if( this.support3d && this.supportTrans ) { switch( position ) { case 'outleft': return { '-webkit-transform' : 'translateX(-450px) translateZ(-300px) rotateY(45deg)', '-moz-transform' : 'translateX(-450px) translateZ(-300px) rotateY(45deg)', '-o-transform' : 'translateX(-450px) translateZ(-300px) rotateY(45deg)', '-ms-transform' : 'translateX(-450px) translateZ(-300px) rotateY(45deg)', 'transform' : 'translateX(-450px) translateZ(-300px) rotateY(45deg)', 'opacity' : 0, 'visibility' : 'hidden' }; break; case 'outright': return { '-webkit-transform' : 'translateX(450px) translateZ(-300px) rotateY(-45deg)', '-moz-transform' : 'translateX(450px) translateZ(-300px) rotateY(-45deg)', '-o-transform' : 'translateX(450px) translateZ(-300px) rotateY(-45deg)', '-ms-transform' : 'translateX(450px) translateZ(-300px) rotateY(-45deg)', 'transform' : 'translateX(450px) translateZ(-300px) rotateY(-45deg)', 'opacity' : 0, 'visibility' : 'hidden' }; break; case 'left': return { '-webkit-transform' : 'translateX(-350px) translateZ(-200px) rotateY(45deg)', '-moz-transform' : 'translateX(-350px) translateZ(-200px) rotateY(45deg)', '-o-transform' : 'translateX(-350px) translateZ(-200px) rotateY(45deg)', '-ms-transform' : 'translateX(-350px) translateZ(-200px) rotateY(45deg)', 'transform' : 'translateX(-350px) translateZ(-200px) rotateY(45deg)', 'opacity' : 1, 'visibility' : 'visible' }; break; case 'right': return { '-webkit-transform' : 'translateX(350px) translateZ(-200px) rotateY(-45deg)', '-moz-transform' : 'translateX(350px) translateZ(-200px) rotateY(-45deg)', '-o-transform' : 'translateX(350px) translateZ(-200px) rotateY(-45deg)', '-ms-transform' : 'translateX(350px) translateZ(-200px) rotateY(-45deg)', 'transform' : 'translateX(350px) translateZ(-200px) rotateY(-45deg)', 'opacity' : 1, 'visibility' : 'visible' }; break; case 'center': return { '-webkit-transform' : 'translateX(0px) translateZ(0px) rotateY(0deg)', '-moz-transform' : 'translateX(0px) translateZ(0px) rotateY(0deg)', '-o-transform' : 'translateX(0px) translateZ(0px) rotateY(0deg)', '-ms-transform' : 'translateX(0px) translateZ(0px) rotateY(0deg)', 'transform' : 'translateX(0px) translateZ(0px) rotateY(0deg)', 'opacity' : 1, 'visibility' : 'visible' }; break; }; } else if( this.support2d && this.supportTrans ) { switch( position ) { case 'outleft': return { '-webkit-transform' : 'translate(-450px) scale(0.7)', '-moz-transform' : 'translate(-450px) scale(0.7)', '-o-transform' : 'translate(-450px) scale(0.7)', '-ms-transform' : 'translate(-450px) scale(0.7)', 'transform' : 'translate(-450px) scale(0.7)', 'opacity' : 0, 'visibility' : 'hidden' }; break; case 'outright': return { '-webkit-transform' : 'translate(450px) scale(0.7)', '-moz-transform' : 'translate(450px) scale(0.7)', '-o-transform' : 'translate(450px) scale(0.7)', '-ms-transform' : 'translate(450px) scale(0.7)', 'transform' : 'translate(450px) scale(0.7)', 'opacity' : 0, 'visibility' : 'hidden' }; break; case 'left': return { '-webkit-transform' : 'translate(-350px) scale(0.8)', '-moz-transform' : 'translate(-350px) scale(0.8)', '-o-transform' : 'translate(-350px) scale(0.8)', '-ms-transform' : 'translate(-350px) scale(0.8)', 'transform' : 'translate(-350px) scale(0.8)', 'opacity' : 1, 'visibility' : 'visible' }; break; case 'right': return { '-webkit-transform' : 'translate(350px) scale(0.8)', '-moz-transform' : 'translate(350px) scale(0.8)', '-o-transform' : 'translate(350px) scale(0.8)', '-ms-transform' : 'translate(350px) scale(0.8)', 'transform' : 'translate(350px) scale(0.8)', 'opacity' : 1, 'visibility' : 'visible' }; break; case 'center': return { '-webkit-transform' : 'translate(0px) scale(1)', '-moz-transform' : 'translate(0px) scale(1)', '-o-transform' : 'translate(0px) scale(1)', '-ms-transform' : 'translate(0px) scale(1)', 'transform' : 'translate(0px) scale(1)', 'opacity' : 1, 'visibility' : 'visible' }; break; }; } else { switch( position ) { case 'outleft' : case 'outright' : case 'left' : case 'right' : return { 'opacity' : 0, 'visibility' : 'hidden' }; break; case 'center' : return { 'opacity' : 1, 'visibility' : 'visible' }; break; }; } }, _navigate : function( dir ) { if( this.supportTrans && this.isAnim ) return false; this.isAnim = true; switch( dir ) { case 'next' : this.current = this.$rightItm.index(); // current item moves left this.$currentItm.addClass('dg-transition').css( this._getCoordinates('left') ); // right item moves to the center this.$rightItm.addClass('dg-transition').css( this._getCoordinates('center') ); // next item moves to the right if( this.$nextItm ) { // left item moves out this.$leftItm.addClass('dg-transition').css( this._getCoordinates('outleft') ); this.$nextItm.addClass('dg-transition').css( this._getCoordinates('right') ); } else { // left item moves right this.$leftItm.addClass('dg-transition').css( this._getCoordinates('right') ); } break; case 'prev' : this.current = this.$leftItm.index(); // current item moves right this.$currentItm.addClass('dg-transition').css( this._getCoordinates('right') ); // left item moves to the center this.$leftItm.addClass('dg-transition').css( this._getCoordinates('center') ); // prev item moves to the left if( this.$prevItm ) { // right item moves out this.$rightItm.addClass('dg-transition').css( this._getCoordinates('outright') ); this.$prevItm.addClass('dg-transition').css( this._getCoordinates('left') ); } else { // right item moves left this.$rightItm.addClass('dg-transition').css( this._getCoordinates('left') ); } break; }; this._setItems(); if( !this.supportTrans ) this.$currentItm.addClass('dg-center'); }, _startSlideshow : function() { var _self = this; this.slideshow = setTimeout( function() { _self._navigate( 'next' ); if( _self.options.autoplay ) { _self._startSlideshow(); } }, this.options.interval ); }, destroy : function() { this.$navPrev.off('.gallery'); this.$navNext.off('.gallery'); this.$wrapper.off('.gallery'); } }; var logError = function( message ) { if ( this.console ) { console.error( message ); } }; $.fn.gallery = function( options ) { if ( typeof options === 'string' ) { var args = Array.prototype.slice.call( arguments, 1 ); this.each(function() { var instance = $.data( this, 'gallery' ); if ( !instance ) { logError( "cannot call methods on gallery prior to initialization; " + "attempted to call method '" + options + "'" ); return; } if ( !$.isFunction( instance[options] ) || options.charAt(0) === "_" ) { logError( "no such method '" + options + "' for gallery instance" ); return; } instance[ options ].apply( instance, args ); }); } else { this.each(function() { var instance = $.data( this, 'gallery' ); if ( !instance ) { $.data( this, 'gallery', new $.Gallery( options, this ) ); } }); } return this; }; })( jQuery );
来源:http://www.codeceo.com/article/html5-3d-image-slider.html

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Running the H5 project requires the following steps: installing necessary tools such as web server, Node.js, development tools, etc. Build a development environment, create project folders, initialize projects, and write code. Start the development server and run the command using the command line. Preview the project in your browser and enter the development server URL. Publish projects, optimize code, deploy projects, and set up web server configuration.

H5 page production refers to the creation of cross-platform compatible web pages using technologies such as HTML5, CSS3 and JavaScript. Its core lies in the browser's parsing code, rendering structure, style and interactive functions. Common technologies include animation effects, responsive design, and data interaction. To avoid errors, developers should be debugged; performance optimization and best practices include image format optimization, request reduction and code specifications, etc. to improve loading speed and code quality.

The steps to create an H5 click icon include: preparing a square source image in the image editing software. Add interactivity in the H5 editor and set the click event. Create a hotspot that covers the entire icon. Set the action of click events, such as jumping to the page or triggering animation. Export H5 documents as HTML, CSS, and JavaScript files. Deploy the exported files to a website or other platform.

H5 is not a standalone programming language, but a collection of HTML5, CSS3 and JavaScript for building modern web applications. 1. HTML5 defines the web page structure and content, and provides new tags and APIs. 2. CSS3 controls style and layout, and introduces new features such as animation. 3. JavaScript implements dynamic interaction and enhances functions through DOM operations and asynchronous requests.

H5referstoHTML5,apivotaltechnologyinwebdevelopment.1)HTML5introducesnewelementsandAPIsforrich,dynamicwebapplications.2)Itsupportsmultimediawithoutplugins,enhancinguserexperienceacrossdevices.3)SemanticelementsimprovecontentstructureandSEO.4)H5'srespo

H5 (HTML5) is suitable for lightweight applications, such as marketing campaign pages, product display pages and corporate promotion micro-websites. Its advantages lie in cross-platformity and rich interactivity, but its limitations lie in complex interactions and animations, local resource access and offline capabilities.

Yes, H5 page production is an important implementation method for front-end development, involving core technologies such as HTML, CSS and JavaScript. Developers build dynamic and powerful H5 pages by cleverly combining these technologies, such as using the <canvas> tag to draw graphics or using JavaScript to control interaction behavior.

H5 pop-up window creation steps: 1. Determine the triggering method (click, time, exit, scroll); 2. Design content (title, text, action button); 3. Set style (size, color, font, background); 4. Implement code (HTML, CSS, JavaScript); 5. Test and deployment.
