Skip to content
This repository has been archived by the owner on Jun 14, 2020. It is now read-only.

Commit

Permalink
Few reposition clean ups and optimizations
Browse files Browse the repository at this point in the history
  • Loading branch information
Craga89 committed Apr 26, 2011
1 parent faa87ad commit 27379ac
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 52 deletions.
2 changes: 1 addition & 1 deletion dist/jquery.qtip.css
Expand Up @@ -9,7 +9,7 @@
* http://en.wikipedia.org/wiki/MIT_License
* http://en.wikipedia.org/wiki/GNU_General_Public_License
*
* Date: Tue Apr 26 13:30:25 2011 +0100
* Date: Tue Apr 26 13:49:46 2011 +0100
*/

/* Fluid class for determining actual width in IE */
Expand Down
50 changes: 26 additions & 24 deletions dist/jquery.qtip.js
Expand Up @@ -9,7 +9,7 @@
* http://en.wikipedia.org/wiki/MIT_License
* http://en.wikipedia.org/wiki/GNU_General_Public_License
*
* Date: Tue Apr 26 13:30:25 2011 +0100
* Date: Tue Apr 26 13:49:46 2011 +0100
*/

"use strict"; // Enable ECMAScript "strict" operation for this function. See more: http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/
Expand Down Expand Up @@ -1159,27 +1159,16 @@ function QTip(target, options, id, attr)
}
};



// Cache our viewport details
viewport = !viewport ? FALSE : {
elem: viewport,
height: viewport[ (viewport[0] === window ? 'h' : 'outerH') + 'eight' ](),
width: viewport[ (viewport[0] === window ? 'w' : 'outerW') + 'idth' ](),
scrollLeft: viewport.scrollLeft(),
scrollTop: viewport.scrollTop(),
offset: viewport.offset() || { left:0, top: 0 }
};

// Check if mouse was the target
if(target === 'mouse') {
// Force left top to allow flipping
at = { x: 'left', y: 'top' };

// Use cached event if one isn't available for positioning
event = event && (event.type === 'resize' || event.type === 'scroll') ? cache.event :
!adjust.mouse && cache.origin ? cache.origin :
adjust.mouse || !event || !event.pageX ? { pageX: MOUSE.pageX, pageY: MOUSE.pageY } : event;
!adjust.mouse && cache.origin ? cache.origin :
MOUSE && (adjust.mouse || !event || !event.pageX) ? { pageX: MOUSE.pageX, pageY: MOUSE.pageY } :
event;

// Use event coordinates for position
position = { top: event.pageY, left: event.pageX };
Expand All @@ -1206,8 +1195,8 @@ function QTip(target, options, id, attr)

if(target[0] === window) {
position = {
top: !fixed || PLUGINS.iOS ? viewport.scrollTop : 0,
left: !fixed || PLUGINS.iOS ? viewport.scrollLeft : 0
top: !fixed || PLUGINS.iOS ? viewport.scrollTop() : 0,
left: !fixed || PLUGINS.iOS ? viewport.scrollLeft() : 0
};
}
}
Expand All @@ -1216,7 +1205,7 @@ function QTip(target, options, id, attr)
else if(target.is('area') && PLUGINS.imagemap) {
position = PLUGINS.imagemap(target, at);
}
else if(target[0].namespaceURI == 'http://www.w3.org/2000/svg' && PLUGINS.svg) {
else if(target[0].namespaceURI === 'http://www.w3.org/2000/svg' && PLUGINS.svg) {
position = PLUGINS.svg(target, at);
}

Expand All @@ -1243,16 +1232,29 @@ function QTip(target, options, id, attr)
position.left += adjust.x + (my.x === 'right' ? -elemWidth : my.x === 'center' ? -elemWidth / 2 : 0);
position.top += adjust.y + (my.y === 'bottom' ? -elemHeight : my.y === 'center' ? -elemHeight / 2 : 0);

// Calculate collision offset values
if(posOptions.viewport.jquery && target[0] !== window && target[0] !== docBody) {
// Calculate collision offset values if viewport positioning is enabled
if(viewport.jquery && target[0] !== window && target[0] !== docBody &&
readjust.vertical+readjust.horizontal !== 'nonenone')
{
// Cache our viewport details
viewport = {
elem: viewport,
height: viewport[ (viewport[0] === window ? 'h' : 'outerH') + 'eight' ](),
width: viewport[ (viewport[0] === window ? 'w' : 'outerW') + 'idth' ](),
scrollLeft: viewport.scrollLeft(),
scrollTop: viewport.scrollTop(),
offset: viewport.offset() || { left:0, top: 0 }
};

// Adjust position based onviewport and adjustment options
position.adjusted = {
left: readjust.horizontal !== 'none' ? readjust.left(position.left) : 0,
top: readjust.vertical !== 'none' ? readjust.top(position.top) : 0
};
}
else {
position.adjusted = { left: 0, top: 0 };
}

//Viewport adjustment is disabled, set values to zero
else { position.adjusted = { left: 0, top: 0 }; }

// Set tooltip position class
tooltip.attr('class', function(i, val) {
Expand All @@ -1262,7 +1264,7 @@ function QTip(target, options, id, attr)

// Call API method
callback.originalEvent = $.extend({}, event);
tooltip.trigger(callback, [self, position, viewport.elem]);
tooltip.trigger(callback, [self, position, viewport.elem || viewport]);
if(callback.isDefaultPrevented()){ return self; }
delete position.adjusted;

Expand Down
4 changes: 2 additions & 2 deletions dist/jquery.qtip.min.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions dist/jquery.qtip.pack.js

Large diffs are not rendered by default.

48 changes: 25 additions & 23 deletions src/core.js
Expand Up @@ -1116,27 +1116,16 @@ function QTip(target, options, id, attr)
}
};



// Cache our viewport details
viewport = !viewport ? FALSE : {
elem: viewport,
height: viewport[ (viewport[0] === window ? 'h' : 'outerH') + 'eight' ](),
width: viewport[ (viewport[0] === window ? 'w' : 'outerW') + 'idth' ](),
scrollLeft: viewport.scrollLeft(),
scrollTop: viewport.scrollTop(),
offset: viewport.offset() || { left:0, top: 0 }
};

// Check if mouse was the target
if(target === 'mouse') {
// Force left top to allow flipping
at = { x: 'left', y: 'top' };

// Use cached event if one isn't available for positioning
event = event && (event.type === 'resize' || event.type === 'scroll') ? cache.event :
!adjust.mouse && cache.origin ? cache.origin :
adjust.mouse || !event || !event.pageX ? { pageX: MOUSE.pageX, pageY: MOUSE.pageY } : event;
!adjust.mouse && cache.origin ? cache.origin :
MOUSE && (adjust.mouse || !event || !event.pageX) ? { pageX: MOUSE.pageX, pageY: MOUSE.pageY } :
event;

// Use event coordinates for position
position = { top: event.pageY, left: event.pageX };
Expand All @@ -1163,8 +1152,8 @@ function QTip(target, options, id, attr)

if(target[0] === window) {
position = {
top: !fixed || PLUGINS.iOS ? viewport.scrollTop : 0,
left: !fixed || PLUGINS.iOS ? viewport.scrollLeft : 0
top: !fixed || PLUGINS.iOS ? viewport.scrollTop() : 0,
left: !fixed || PLUGINS.iOS ? viewport.scrollLeft() : 0
};
}
}
Expand All @@ -1173,7 +1162,7 @@ function QTip(target, options, id, attr)
else if(target.is('area') && PLUGINS.imagemap) {
position = PLUGINS.imagemap(target, at);
}
else if(target[0].namespaceURI == 'http://www.w3.org/2000/svg' && PLUGINS.svg) {
else if(target[0].namespaceURI === 'http://www.w3.org/2000/svg' && PLUGINS.svg) {
position = PLUGINS.svg(target, at);
}

Expand All @@ -1200,16 +1189,29 @@ function QTip(target, options, id, attr)
position.left += adjust.x + (my.x === 'right' ? -elemWidth : my.x === 'center' ? -elemWidth / 2 : 0);
position.top += adjust.y + (my.y === 'bottom' ? -elemHeight : my.y === 'center' ? -elemHeight / 2 : 0);

// Calculate collision offset values
if(posOptions.viewport.jquery && target[0] !== window && target[0] !== docBody) {
// Calculate collision offset values if viewport positioning is enabled
if(viewport.jquery && target[0] !== window && target[0] !== docBody &&
readjust.vertical+readjust.horizontal !== 'nonenone')
{
// Cache our viewport details
viewport = {
elem: viewport,
height: viewport[ (viewport[0] === window ? 'h' : 'outerH') + 'eight' ](),
width: viewport[ (viewport[0] === window ? 'w' : 'outerW') + 'idth' ](),
scrollLeft: viewport.scrollLeft(),
scrollTop: viewport.scrollTop(),
offset: viewport.offset() || { left:0, top: 0 }
};

// Adjust position based onviewport and adjustment options
position.adjusted = {
left: readjust.horizontal !== 'none' ? readjust.left(position.left) : 0,
top: readjust.vertical !== 'none' ? readjust.top(position.top) : 0
};
}
else {
position.adjusted = { left: 0, top: 0 };
}

//Viewport adjustment is disabled, set values to zero
else { position.adjusted = { left: 0, top: 0 }; }

// Set tooltip position class
tooltip.attr('class', function(i, val) {
Expand All @@ -1219,7 +1221,7 @@ function QTip(target, options, id, attr)

// Call API method
callback.originalEvent = $.extend({}, event);
tooltip.trigger(callback, [self, position, viewport.elem]);
tooltip.trigger(callback, [self, position, viewport.elem || viewport]);
if(callback.isDefaultPrevented()){ return self; }
delete position.adjusted;

Expand Down

0 comments on commit 27379ac

Please sign in to comment.