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 $(".he-wrap").live({ 83 mouseenter:function(){ 84 var $view = $(this).find(".he-view").addClass("he-view-show"); 85 $("[data-animate]",$view).each(function(){ 86 var animate = $(this).data("animate"); 87 $(this).addClass(animate); 88 }); 89 $(this).find(".he-zoom").addClass("he-view-show"); 90 }, 91 mouseleave:function(){ 92 var $view = $(this).find(".he-view").removeClass("he-view-show"); 93 $("[data-animate]",$view).each(function(){ 94 var animate = $(this).data("animate"); 95 $(this).removeClass(animate); 96 }); 97 $(this).find(".he-zoom").removeClass("he-view-show"); 98 }, 99 mousewheel:function(e,delta, deltaX, deltaY){ 100 if($(this).find(".he-sliders").length==1) 101 { 102 var $slider = $(this).find(".he-sliders"); 103 var op = deltaY>0?1:-1; 104 HoverEx.fn.switchImg($slider,op); 105 e.preventDefault(); 106 } 107 else if($(this).find(".he-zoom").length==1) 108 { 109 var $zoom =$(this).find(".he-zoom"); 110 HoverEx.fn.changeZoom($zoom,e,delta,deltaX,deltaY); 111 e.preventDefault(); 112 } 113 } 114 }); 115 $(".he-zoom").live({mousemove:function(e){ 116 HoverEx.fn.moveZoom($(this),e); 117 }}); 118 $(".he-pre").live("click",function(){ 119 var $slider =$(this).parents(".he-wrap").find(".he-sliders"); 120 HoverEx.fn.switchImg($slider,-1); 121 }); 122 $(".he-next").live("click",function(){ 123 var $slider =$(this).parents(".he-wrap").find(".he-sliders"); 124 HoverEx.fn.switchImg($slider,1); 125 }); 126 127 }); 128})(jQuery); 129 130/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net) 131 * Licensed under the MIT License (LICENSE.txt). 132 * 133 * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. 134 * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. 135 * Thanks to: Seamus Leahy for adding deltaX and deltaY 136 * 137 * Version: 3.0.6 138 * 139 * Requires: 1.2.2+ 140 */ 141 142(function($) { 143 144var types = ['DOMMouseScroll', 'mousewheel']; 145 146if ($.event.fixHooks) { 147 for ( var i=types.length; i; ) { 148 $.event.fixHooks[ types[--i] ] = $.event.mouseHooks; 149 } 150} 151 152$.event.special.mousewheel = { 153 setup: function() { 154 if ( this.addEventListener ) { 155 for ( var i=types.length; i; ) { 156 this.addEventListener( types[--i], handler, false ); 157 } 158 } else { 159 this.onmousewheel = handler; 160 } 161 }, 162 163 teardown: function() { 164 if ( this.removeEventListener ) { 165 for ( var i=types.length; i; ) { 166 this.removeEventListener( types[--i], handler, false ); 167 } 168 } else { 169 this.onmousewheel = null; 170 } 171 } 172}; 173 174$.fn.extend({ 175 mousewheel: function(fn) { 176 return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel"); 177 }, 178 179 unmousewheel: function(fn) { 180 return this.unbind("mousewheel", fn); 181 } 182}); 183 184 185function handler(event) { 186 var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0; 187 event = $.event.fix(orgEvent); 188 event.type = "mousewheel"; 189 190 // Old school scrollwheel delta 191 if ( orgEvent.wheelDelta ) { delta = orgEvent.wheelDelta/120; } 192 if ( orgEvent.detail ) { delta = -orgEvent.detail/3; } 193 194 // New school multidimensional scroll (touchpads) deltas 195 deltaY = delta; 196 197 // Gecko 198 if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) { 199 deltaY = 0; 200 deltaX = -1*delta; 201 } 202 203 // Webkit 204 if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; } 205 if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; } 206 207 // Add event and delta to the front of the arguments 208 args.unshift(event, delta, deltaX, deltaY); 209 210 return ($.event.dispatch || $.event.handle).apply(this, args); 211} 212 213})(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.