PageSourceSearch

https://www.crittercontroltriangle.com/wp-content/themes/specular/js/jquery.hoverex.js

js crittercontroltriangle.com collected 2026-10-05 08:07:49 UTC 6,757 bytes, 213 lines download raw bytes

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.