Shorter css paths in navigation

This commit is contained in:
Maximilian Krög
2020-02-15 01:46:36 +01:00
parent b46b250d75
commit ee8ec6f03a
3 changed files with 24 additions and 31 deletions

View File

@@ -54,12 +54,13 @@ $(function () {
const search = (function () {
const $nav = $('.navigation');
const $navList = $nav.find('.list');
const $navList = $nav.find('.navigation-list');
const navListNode = $navList.get(0);
let $classItems;
let $members;
let stateClass = (function () {
$nav.removeClass('search-started searching');
$nav.addClass('search-empty');
$navList.removeClass('search-started searching');
$navList.addClass('search-empty');
return 'search-empty';
})();
let manualToggles = {};
@@ -72,7 +73,6 @@ $(function () {
.replace(/-/g, '~');
const $currentItem = $navList.find('.item[data-longname="' + longname + '"]:eq(0)');
$currentItem.prependTo($navList);
$currentItem.addClass('item-current toggle-manual-show');
return {
$nav: $nav,
$navList: $navList,
@@ -87,9 +87,8 @@ $(function () {
},
changeStateClass: function (newClass) {
if (newClass !== stateClass) {
const navNode = $nav.get(0);
navNode.classList.remove(stateClass);
navNode.classList.add(newClass);
navListNode.classList.remove(stateClass);
navListNode.classList.add(newClass);
stateClass = newClass;
}
},
@@ -238,9 +237,7 @@ $(function () {
// Search Items
searchInput.addEventListener('input', queueSearch);
if (searchInput.value) {
doSearch(searchInput.value);
}
// Toggle when click an item element
search.$nav.on('click', '.toggle', function (e) {
@@ -264,7 +261,7 @@ $(function () {
var height = $(window).height();
var $el = $('.navigation');
$el.height(height).find('.list').height(height - 133);
$el.height(height).find('.navigation-list').height(height - 133);
};
$(window).on('resize', _onResize);

View File

@@ -124,7 +124,7 @@ li {
color: #fff;
border-color: #555;
}
.navigation .list {
.navigation .navigation-list {
padding: 10px 15px 0 15px;
position: relative;
overflow: auto;
@@ -195,37 +195,33 @@ li {
/* search state */
/* show all classes when search is empty */
.navigation.search-empty li.item {
.navigation-list.search-empty .item {
display: block;
}
/* hide all members by default when search is empty */
.navigation.search-empty li.item .member-list {
.navigation-list.search-empty .item .member-list {
display: none;
}
/* expand all members when one character is entered in the search field */
.navigation.search-started li.item,
.navigation.search-started .member-list,
.navigation.search-started .member-list li {
/* expand all members when input in search field available but too short to search */
.navigation-list.search-started li,
.navigation-list.search-started .member-list {
display: block;
}
/* when more than one character is entered hide everything that is not a match */
.navigation.searching li.item,
.navigation.searching .member-list,
.navigation.searching .member-list li {
/* when searching hide everything that is not a match */
.navigation-list.searching li,
.navigation-list.searching .member-list {
display: none;
}
.navigation.searching li.item.match,
.navigation.searching .member-list.match,
.navigation.searching .member-list li.match {
.navigation-list.searching .match {
display: block;
}
/* allow user to hide / show members */
.navigation .item.toggle-manual-show .member-list,
.navigation .item.toggle-manual-show li {
.navigation-list .item.toggle-manual-show li,
.navigation-list .item.toggle-manual-show .member-list {
display: block!important;
}
.navigation:not(.searching) .item.toggle-manual-hide .member-list,
.navigation:not(.searching) .item.toggle-manual-hide li {
.navigation-list:not(.searching) .item.toggle-manual-hide li,
.navigation-list:not(.searching) .item.toggle-manual-hide .member-list {
display: none!important;
}

View File

@@ -36,11 +36,11 @@ function listContent(item, title, listItemPrinter) {
}
}
?>
<div class="navigation search-empty">
<div class="navigation">
<div class="search">
<input id="search" type="text" class="form-control input-sm" placeholder="Search Documentation">
</div>
<ul class="list"><?js
<ul class="navigation-list search-empty"><?js
this.nav.forEach(function (item) { ?>
<li class="item" data-longname="<?js= item.longname ?>" data-name="<?js= item.prettyname.toLowerCase() ?>">
<span class="title">