( function ( $ ) { jQuery.fn.gotoTop = function ( opt ) { var ele = this; var win = $( window ); var doc = $( 'html,body' ); var index = false; var defaultOpt = { offset: 420, speed: 500, iconSpeed: 200, animationShow: { 'opacity': '1' }, animationHide: { 'opacity': '0' } }; var options = $.extend( defaultOpt, opt ); ele.click( function () { doc.animate( { scrollTop: '0' }, options.speed ) } ); $.each( options.animationShow, function ( i ) { if ( i == 'transform' ) { index = true } } ); function animateShow () { if ( index ) { ele.css( options.animationShow ) } else { ele.stop() .animate( options.animationShow, options.iconSpeed ) } } function animateHide () { if ( index ) { ele.css( options.animationHide ) } else { ele.stop() .animate( options.animationHide, options.iconSpeed ) } } win.scroll( function () { if ( win.scrollTop() > options.offset ) { animateShow() } else { animateHide() } } ); if ( win.scrollTop() > options.offset ) { ele.css( options.animationShow ) } else { ele.css( options.animationHide ) } } }( jQuery ) );