1/* 2* jQuery HoverEx Script 3* by hkeyjun 4* http://codecanyon.net/user/hkeyjun 5*/ 6;(function($){ 7 var HoverEx = { 8 fn:{ 9 moveZoom:function(obj,e) 10 { 11 var h =obj.height(),w=obj.width(),t=e.pageY-obj.offset().top,l=e.pageX-obj.offset().left; 12 var $largeImg = obj.find("img"); 13 var dataZoom = obj.data("zoom"); 14 if(dataZoom&&dataZoom!="auto") 15 { 16 var zoomNum = parseFloat(dataZoom); 17 $largeImg.css({"width":w*zoomNum+"px","height":h*zoomNum+"px","top":-t*(zoomNum-1)+"px","left":-l*(zoomNum-1)+"px"}); 18 } 19 else 20 { 21 var zoomNum = $largeImg.width()/w; 22 $largeImg.css({"top":-t*(zoomNum-1)+"px","left":-l*(zoomNum-1)+"px"}); 23 } 24 }, 25 changeZoom:function(obj,e,delta, deltaX, deltaY) 26 { 27 var $largeImg = obj.find("img"); 28 var currentZoom = obj.data("zoom"); 29 currentZoom = currentZoom=="auto"?$largeImg.width()/obj.width():parseFloat(currentZoom); 30 var zoomStep = obj.data("zoomstep"); 31 zoomStep = zoomStep?parseFloat(zoomStep):0.5; 32 var zoomRange = obj.data("zoomrange"); 33 zoomRange = zoomRange?zoomRange.split(","):"1,4"; 34 var zoomMin = parseFloat(zoomRange[0]),zoomMax = parseFloat(zoomRange[1])>currentZoom?parseFloat(zoomRange[1]):currentZoom; 35 var op = deltaY>0?1:-1; 36 var nextZoom =Math.round((currentZoom+zoomStep*op)*10)/10.0; 37 if(nextZoom >=zoomMin&& nextZoom <=zoomMax) 38 { 39 obj.data("zoom",nextZoom); 40 HoverEx.fn.showZoomState(obj,nextZoom); 41 HoverEx.fn.moveZoom(obj,e); 42 } 43 44 }, 45 showZoomState:function(obj,state) 46 { 47 var $zoomState =obj.find(".he-zoomstate"); 48 if($zoomState.length == 0) 49 { 50 $zoomState = $('<span class="he-zoomstate">'+state+'X</span>').appendTo(obj); 51 } 52 $zoomState.text(state+"X").stop(true,true).fadeIn(300).delay(200).fadeOut(300); 53 }, 54 switchImg:function(slider,type) 55 { 56 var animation = slider.data("animate"); 57 animation = animation?animation:"random"; 58 if(animation =="random") 59 { 60 var animations =["fadeIn","fadeInLeft","fadeInRight","fadeInUp","fadeInDown","rotateIn","rotateInLeft","rotateInRight","rotateInUp","rotateInDown","bounce","bounceInLeft","bounceInRight","bounceInUp","bounceInDown","elasticInLeft","elasticInRight","elasticInUp","elasticInDown","zoomIn","zoomInLeft","zoomInRight","zoomInUp","zoomInDown","jellyInLeft","jellyInRight","jellyInDown","jellyInUp","flipInLeft","flipInRight","flipInUp","flipInDown","flipInV","flipInH"]; 61 animation =animations[Math.floor(Math.random()*animations.length)]; 62 } 63 var $imgs =slider.find("img"); 64 if($imgs.length>1) 65 { 66 if(type>0) 67 { 68 $imgs.eq(0).attr("class","a0").appendTo(slider); 69 $imgs.eq(1).attr("class","a0 "+animation); 70 } 71 else 72 { 73 $imgs.eq($imgs.length-1).attr("class","a0 "+animation).prependTo(slider); 74 $imgs.eq(0).attr("class","a0"); 75 } 76 } 77 } 78 } 79 }; 80 81 $(function(){ 82 $(document).on('mouseenter','.he-wrap',function(){ 83 var $view = $(this).find(".he-view").addClass("he-view-show"); 84 $("[data-animate]",$view).each(function(){ 85 var animate = $(this).data("animate"); 86 $(this).addClass(animate); 87 }); 88 $(this).find(".he-zoom").addClass("he-view-show"); 89 }).on('mouseleave','.he-wrap',function(){ 90 var $view = $(this).find(".he-view").removeClass("he-view-show"); 91 $("[data-animate]",$view).each(function(){ 92 var animate = $(this).data("animate"); 93 $(this).removeClass(animate); 94 }); 95 $(this).find(".he-zoom").removeClass("he-view-show"); 96 }).on('mousewheel','.he-wrap',function(e,delta, deltaX, deltaY){ 97 if($(this).find(".he-sliders").length==1) 98 { 99 var $slider = $(this).find(".he-sliders"); 100 var op = deltaY>0?1:-1; 101 HoverEx.fn.switchImg($slider,op); 102 e.preventDefault(); 103 } 104 else if($(this).find(".he-zoom").length==1) 105 { 106 var $zoom =$(this).find(".he-zoom"); 107 HoverEx.fn.changeZoom($zoom,e,delta,deltaX,deltaY); 108 e.preventDefault(); 109 } 110 }).on('mousemove','.he-zoom',function(e){
vendor: 2,846 bytes, lines 111-208
111 HoverEx.fn.moveZoom($(this),e); 112 }).on('click','.he-pre',function(){ 113 var $slider =$(this).parents(".he-wrap").find(".he-sliders"); 114 HoverEx.fn.switchImg($slider,-1); 115 }).on('click','.he-next',function(){ 116 var $slider =$(this).parents(".he-wrap").find(".he-sliders"); 117 HoverEx.fn.switchImg($slider,1); 118 }); 119 120 121 122 }); 123})(jQuery); 124 125/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net) 126 * Licensed under the MIT License (LICENSE.txt). 127 * 128 * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. 129 * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. 130 * Thanks to: Seamus Leahy for adding deltaX and deltaY 131 * 132 * Version: 3.0.6 133 * 134 * Requires: 1.2.2+ 135 */ 136 137(function($) { 138 139var types = ['DOMMouseScroll', 'mousewheel']; 140 141if ($.event.fixHooks) { 142 for ( var i=types.length; i; ) { 143 $.event.fixHooks[ types[--i] ] = $.event.mouseHooks; 144 } 145} 146 147$.event.special.mousewheel = { 148 setup: function() { 149 if ( this.addEventListener ) { 150 for ( var i=types.length; i; ) { 151 this.addEventListener( types[--i], handler, false ); 152 } 153 } else { 154 this.onmousewheel = handler; 155 } 156 }, 157 158 teardown: function() { 159 if ( this.removeEventListener ) { 160 for ( var i=types.length; i; ) { 161 this.removeEventListener( types[--i], handler, false ); 162 } 163 } else { 164 this.onmousewheel = null; 165 } 166 } 167}; 168 169$.fn.extend({ 170 mousewheel: function(fn) { 171 return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel"); 172 }, 173 174 unmousewheel: function(fn) { 175 return this.unbind("mousewheel", fn); 176 } 177}); 178 179 180function handler(event) { 181 var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0; 182 event = $.event.fix(orgEvent); 183 event.type = "mousewheel"; 184 185 // Old school scrollwheel delta 186 if ( orgEvent.wheelDelta ) { delta = orgEvent.wheelDelta/120; } 187 if ( orgEvent.detail ) { delta = -orgEvent.detail/3; } 188 189 // New school multidimensional scroll (touchpads) deltas 190 deltaY = delta; 191 192 // Gecko 193 if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) { 194 deltaY = 0; 195 deltaX = -1*delta; 196 } 197 198 // Webkit 199 if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; } 200 if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; } 201 202 // Add event and delta to the front of the arguments 203 args.unshift(event, delta, deltaX, deltaY); 204 205 return ($.event.dispatch || $.event.handle).apply(this, args); 206} 207 208})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.