this.updateResultsNav(resultPage);
this.hideableElements.addClass('hidden');
this.resultsNav.removeClass('hidden');
+ $('body').addClass('searchResultsNavActive');
},
closeResultsNav: function() {
this.hideableElements.removeClass('hidden');
this.resultsNav.addClass('hidden');
+ $('body').removeClass('searchResultsNavActive');
},
nextResultsPage: function() {
var currentIndex = this.resultPages.indexOf(fluidbook.currentPage);
if (algo === 'expression') {
return this._findExpression(q, callback);
}
- var words = this.normalizeQuery(q, true);
+ var searchTerms = this.normalizeQuery(q, true);
var res = {};
var terms = [];
var total = 0;
- var doublesPages = [];
+ var doublePages = [];
this.resultPages = [];
- var q, v, k, kk, word, wordata, page, occurences, p;
+ var matchedWord, indexWord, searchTerm, term, page;
var maxPage = this.fluidbook.contentlock.getMaxPage();
- for (kk in words) {
- q = words[kk];
- terms.push(q);
- for (k in INDEX) {
- if (k.length < this.fluidbook.datas.ignoreWordLimit) {
+ for (searchTerm in searchTerms) {
+ term = searchTerms[searchTerm];
+ terms.push(term);
+ for (indexWord in INDEX) {
+ if (indexWord.length < this.fluidbook.datas.ignoreWordLimit) {
continue;
}
- if (algo === 'begins' && k.indexOf(q) !== 0) {
+ if (algo === 'begins' && indexWord.indexOf(term) !== 0) {
continue;
- } else if (algo === 'contains' && k.indexOf(q) === -1) {
+ } else if (algo === 'contains' && indexWord.indexOf(term) === -1) {
continue;
- } else if (algo === 'exact' && k !== q) {
+ } else if (algo === 'exact' && indexWord !== term) {
continue;
}
- v = INDEX[k];
- for (page in v.p) {
- var occurences = v.p[page];
+
+ matchedWord = INDEX[indexWord];
+
+ for (page in matchedWord.p) {
+ var occurrences = matchedWord.p[page];
page = parseInt(page);
if (page > maxPage) {
continue;
page--;
}
- if (doublesPages[page] == null || doublesPages[page] == undefined) {
- doublesPages[page] = [];
+ if (doublePages[page] == null || doublePages[page] == undefined) {
+ doublePages[page] = [];
}
- if (doublesPages[page][kk] == null || doublesPages[page][kk] == undefined) {
- doublesPages[page][kk] = 0;
+ if (doublePages[page][searchTerm] == null || doublePages[page][searchTerm] == undefined) {
+ doublePages[page][searchTerm] = 0;
}
- doublesPages[page][kk] += occurences;
- total += occurences;
+ doublePages[page][searchTerm] += occurrences;
+ total += occurrences;
}
}
}
- var nbwords = words.length;
+ var nbwords = searchTerms.length;
total = 0;
- for (var dpNumber in doublesPages) {
- var doublePageOccurences = doublesPages[dpNumber];
+ for (var dpNumber in doublePages) {
+ var doublePageOccurences = doublePages[dpNumber];
if (Object.keys(doublePageOccurences).length === nbwords || this.fluidbook.datas.searchPageSelectionAlgorithm === 'OR') {
- var occ = 0;
+ var totalOccurrences = 0;
for (var ww in doublePageOccurences) {
- occ += doublePageOccurences[ww];
+ totalOccurrences += doublePageOccurences[ww];
}
- res[dpNumber] = occ;
+ res[dpNumber] = totalOccurrences;
this.resultPages.push(parseInt(dpNumber));
- total += occ;
+ total += totalOccurrences;
}
}
animation.origin = ['50%', '50%'];
}
- var hiddenElements = $("header,footer,#interface,#links a.bookmark");
+ // When the search results nav is active, don't reveal interface elements when zooming out...
+ if (!$('body').hasClass('searchResultsNavActive')) {
- if (this.zoom != 1) {
- if (this.fluidbook.help !== undefined) {
- this.fluidbook.help.hide(); // Hide the help view if it's showing
- }
- $("#shadow").addClass('hidden');
- if (!$('header').hasClass('hidden')) {
- $(hiddenElements).addClass('hidden');
- this.hideInterfaceTimeout = setTimeout(function () {
- $(hiddenElements).hide();
- }, 500);
+ var hiddenElements = $("header,footer,#interface,#links a.bookmark");
+
+ if (this.zoom !== 1) {
+ if (this.fluidbook.help !== undefined) {
+ this.fluidbook.help.hide(); // Hide the help view if it's showing
+ }
+ $("#shadow").addClass('hidden');
+ if (!$('header').hasClass('hidden')) {
+ $(hiddenElements).addClass('hidden');
+ this.hideInterfaceTimeout = setTimeout(function () {
+ $(hiddenElements).hide();
+ }, 500);
+ }
+ } else {
+ clearTimeout(this.hideInterfaceTimeout);
+ $(hiddenElements).show().removeClass('hidden');
+ this.shadowTimeout = setTimeout(function () {
+ $("#shadow").removeClass('hidden');
+ }, 250);
}
- } else {
- clearTimeout(this.hideInterfaceTimeout);
- $(hiddenElements).show().removeClass('hidden');
- this.shadowTimeout = setTimeout(function () {
- $("#shadow").removeClass('hidden');
- }, 250);
}
+
$("#z").transform(animation, {preserve: true});
$this.triggerEvent(((this.zoom === 1) ? 'out' : 'in') + '.start');
return true;
}
-}
\ No newline at end of file
+}
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
font-size: 16px; // Controls size of text and padding
+ @media (max-width: 599px) {
+ max-width: none;
+ left: 0;
+ transform: none;
+ }
+
> * {
display: flex;
align-items: center;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
+ background: none;
border: none;
display: flex;
align-items: center;
}
}
- .searchResultsPrev:after {
- transform: rotate(-45deg);
+ .searchResultsPrev {
+ padding: 0.75em 0.25em 0.75em 0.75em; // Padding to make a more even focus outline
+
+ &:after {
+ transform: rotate(-45deg);
+ }
}
- .searchResultsNext:after {
- transform: rotate(135deg);
+ .searchResultsNext {
+ padding: 0.75em 0.75em 0.75em 0.25em; // Padding to make a more even focus outline
+
+ &:after {
+ transform: rotate(135deg);
+ }
}
.searchResultsNavCounter {