renaming messup with svn commit. so re-adding entitycomparison again.
This commit is contained in:
parent
686cd16133
commit
6c9ec68641
39 changed files with 13857 additions and 0 deletions
|
@ -0,0 +1,98 @@
|
|||
/// <reference path="jquery-1.3.2-vsdoc.js"/>
|
||||
/*
|
||||
by Homam Hosseini
|
||||
http://abstractform.wordpress.com
|
||||
bluesnowball@gmail.com
|
||||
|
||||
*/
|
||||
|
||||
|
||||
jQuery.fn.autoEllipsis = function(options) {
|
||||
var get_AutoEllipsisScroller = function(id) {
|
||||
var aeScrollerId = "WingooliAutoEllipsisScroller_" + id
|
||||
if (!document.getElementById(aeScrollerId)) {
|
||||
var div = document.createElement("div");
|
||||
div.id = aeScrollerId + "_Container";
|
||||
div.innerHTML = "<span id=\"" + aeScrollerId + "\" style=\"overflow: visible; position: absolute; top: -2000px; color: orange\"></span>";
|
||||
document.body.appendChild(div);
|
||||
}
|
||||
return document.getElementById(aeScrollerId);
|
||||
};
|
||||
|
||||
var StringEllipsesByMaxLetters = function(element, originalText, maxLettersAllowed) {
|
||||
element.title = "";
|
||||
var text = originalText;
|
||||
if (text == null || text == "") text = element.innerHTML;
|
||||
var maxAllowedLatterIndex = text.length - maxLettersAllowed;
|
||||
if (maxAllowedLatterIndex > 0) {
|
||||
element.title = text;
|
||||
if (originalText == null)
|
||||
originalText = text;
|
||||
element.innerHTML = text.substr(0, maxLettersAllowed - 2) + "…";
|
||||
} else {
|
||||
element.innerHTML = text;
|
||||
}
|
||||
};
|
||||
|
||||
var _this = this;
|
||||
|
||||
var settings = jQuery.extend({}, options);
|
||||
this.each(function(i) {
|
||||
var aeScroller = get_AutoEllipsisScroller(i);
|
||||
saeScroller = $(aeScroller);
|
||||
sthis = $(this);
|
||||
saeScroller.text(sthis.text());
|
||||
|
||||
var origText = sthis.html();
|
||||
|
||||
var element = this;
|
||||
var elementBounds = { width: element.offsetWidth, height: element.offsetHeight };
|
||||
|
||||
var jAeScroller = $(aeScroller);
|
||||
var jElement = $(element);
|
||||
|
||||
var props = ["font-size", "font-weight", "font-family", "font-style", "padding"];
|
||||
|
||||
for (var i = 0; i < props.length; i++) {
|
||||
try {
|
||||
jAeScroller.css(props[i], jElement.css(props[i]));
|
||||
} catch (ex) { }
|
||||
}
|
||||
jElement.css("overflow", "visible");
|
||||
|
||||
|
||||
jAeScroller.width(jElement.width());
|
||||
|
||||
var isIe = (document.all != undefined);
|
||||
var scrollerWidth = jAeScroller.width();
|
||||
var scrollerHeight = jAeScroller.height();
|
||||
var fitText = saeScroller.text();
|
||||
|
||||
while (scrollerHeight > elementBounds.height && fitText != "") {
|
||||
fitText = fitText.substr(0, fitText.length - 2);
|
||||
var autoScrollerInnerHTML = fitText + "…";
|
||||
saeScroller.html(autoScrollerInnerHTML);
|
||||
scrollerHeight = jAeScroller.height();
|
||||
}
|
||||
if (fitText == "") {
|
||||
fitText = origText;
|
||||
saeScroller.html(fitText);
|
||||
jElement.css("whiteSpace", "nowrap");
|
||||
jAeScroller.width("");
|
||||
var scrollerWidth = jAeScroller.width();
|
||||
}
|
||||
|
||||
while (scrollerWidth > elementBounds.width && fitText != "") {
|
||||
fitText = fitText.substr(0, fitText.length - 2);
|
||||
var autoScrollerInnerHTML = fitText + "…";
|
||||
saeScroller.html(autoScrollerInnerHTML);
|
||||
scrollerWidth = jAeScroller.width();
|
||||
}
|
||||
var scrollerHeight = aeScroller.offsetHeight;
|
||||
var r = (Math.ceil(elementBounds.height / scrollerHeight) - 1);
|
||||
r += (r == 0) ? 1 : 0;
|
||||
var maxLettersAllowed = fitText.length * r;
|
||||
|
||||
StringEllipsesByMaxLetters(element, origText, maxLettersAllowed + (r + 1));
|
||||
});
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue