[Search] Dynamic positioning and height

The scroll bar for the search results changes
height according to how many filter options
are displayed above it, without dissapearing
below the bottom of the page.
This commit is contained in:
slhale 2015-08-14 10:19:13 -07:00
parent f38b89a582
commit 26ab9af911
2 changed files with 240 additions and 220 deletions

View File

@ -276,224 +276,234 @@ ul.tree {
padding-right: 5px; padding-right: 5px;
top: 23px; top: 23px;
margin-top: 10px; } margin-top: 10px; }
/* line 37, ../sass/search/_search.scss */ /* line 34, ../sass/search/_search.scss */
.search-holder .search .search-bar { .search-holder .search {
width: 100%; display: flex;
height: 19px; flex-direction: column;
margin-top: 4px; height: 100%; }
position: relative; } /* line 39, ../sass/search/_search.scss */
/* line 47, ../sass/search/_search.scss */ .search-holder .search .search-bar {
.search-holder .search .search-bar .search-input {
position: relative;
top: -4px;
width: 100%; width: 100%;
height: 19px; height: 19px;
padding-right: 16px; margin-top: 4px;
padding-right: 28px; } position: relative;
/* line 60, ../sass/search/_search.scss */ order: 1; }
.search-holder .search .search-bar .search-icon { /* line 50, ../sass/search/_search.scss */
color: #737373; .search-holder .search .search-bar .search-input {
font-size: 12px; position: relative;
margin-left: 3px; top: -4px;
width: 0; width: 100%;
height: 0; height: 19px;
margin-top: -19px; padding-right: 16px;
transition: visibility .15s, opacity .15s, color .2s; } padding-right: 28px; }
/* line 74, ../sass/search/_search.scss */ /* line 63, ../sass/search/_search.scss */
.search-holder .search .search-bar .search-icon.content { .search-holder .search .search-bar .search-icon {
color: #737373;
font-size: 12px;
margin-left: 3px;
width: 0;
height: 0;
margin-top: -19px;
transition: visibility .15s, opacity .15s, color .2s; }
/* line 77, ../sass/search/_search.scss */
.search-holder .search .search-bar .search-icon.content {
visibility: hidden;
opacity: 0; }
/* line 85, ../sass/search/_search.scss */
.search-holder .search .search-bar .search-input:focus + div.search-icon {
visibility: hidden; visibility: hidden;
opacity: 0; } opacity: 0; }
/* line 82, ../sass/search/_search.scss */ /* line 91, ../sass/search/_search.scss */
.search-holder .search .search-bar .search-input:focus + div.search-icon { .search-holder .search .search-bar .search-input:hover + div.search-icon {
visibility: hidden;
opacity: 0; }
/* line 88, ../sass/search/_search.scss */
.search-holder .search .search-bar .search-input:hover + div.search-icon {
color: #a6a6a6; }
/* line 92, ../sass/search/_search.scss */
.search-holder .search .search-bar .clear-icon {
position: absolute;
display: block;
cursor: pointer;
color: #737373;
font-size: 6px;
padding: 6px;
padding-left: 4px;
right: 0px;
top: -3px;
visibility: hidden;
opacity: 0;
transition: visibility .15s, opacity .15s;
right: 16px;
padding-right: 2px; }
/* line 112, ../sass/search/_search.scss */
.search-holder .search .search-bar .clear-icon.content {
visibility: visible;
opacity: 1; }
/* line 122, ../sass/search/_search.scss */
.search-holder .search .search-bar .menu-icon {
position: absolute;
display: block;
cursor: pointer;
color: #737373;
font-size: 6px;
padding: 6px;
padding-left: 4px;
right: 0px;
top: -3px;
transition: color .2s; }
/* line 138, ../sass/search/_search.scss */
.search-holder .search .search-bar .menu-icon:hover {
color: #a6a6a6; } color: #a6a6a6; }
/* line 143, ../sass/search/_search.scss */ /* line 95, ../sass/search/_search.scss */
.search-holder .search .search-bar .search-menu-holder { .search-holder .search .search-bar .clear-icon {
float: right; position: absolute;
margin-top: 17px; display: block;
left: -25px; } cursor: pointer;
/* line 148, ../sass/search/_search.scss */ color: #737373;
.search-holder .search .search-bar .search-menu-holder .search-menu { font-size: 6px;
border-top: 0; } padding: 6px;
padding-left: 4px;
right: 0px;
top: -3px;
visibility: hidden;
opacity: 0;
transition: visibility .15s, opacity .15s;
right: 16px;
padding-right: 2px; }
/* line 115, ../sass/search/_search.scss */
.search-holder .search .search-bar .clear-icon.content {
visibility: visible;
opacity: 1; }
/* line 125, ../sass/search/_search.scss */
.search-holder .search .search-bar .menu-icon {
position: absolute;
display: block;
cursor: pointer;
color: #737373;
font-size: 6px;
padding: 6px;
padding-left: 4px;
right: 0px;
top: -3px;
transition: color .2s; }
/* line 141, ../sass/search/_search.scss */
.search-holder .search .search-bar .menu-icon:hover {
color: #a6a6a6; }
/* line 146, ../sass/search/_search.scss */
.search-holder .search .search-bar .search-menu-holder {
float: right;
margin-top: 17px;
left: -25px; }
/* line 151, ../sass/search/_search.scss */ /* line 151, ../sass/search/_search.scss */
.search-holder .search .search-bar .search-menu-holder .search-menu .search-menu-item { .search-holder .search .search-bar .search-menu-holder .search-menu {
padding-top: 0; border-top: 0; }
padding-bottom: 0; /* line 154, ../sass/search/_search.scss */
padding-left: 4px; .search-holder .search .search-bar .search-menu-holder .search-menu .search-menu-item {
padding-right: 6px; padding-top: 0;
font-size: 0.8em; padding-bottom: 0;
color: #e6e6e6; } padding-left: 4px;
/* line 161, ../sass/search/_search.scss */ padding-right: 6px;
.search-holder .search .search-bar .search-menu-holder .search-menu .search-menu-item .search-menu-checkbox { font-size: 0.8em;
margin-top: 0.3em; color: #e6e6e6; }
padding-left: 0; /* line 164, ../sass/search/_search.scss */
margin-right: 0; .search-holder .search .search-bar .search-menu-holder .search-menu .search-menu-item .search-menu-checkbox {
padding-right: 3px; } margin-top: 0.3em;
/* line 174, ../sass/search/_search.scss */ padding-left: 0;
.search-holder .search .search-bar .search-menu-holder .search-menu .search-menu-item .search-menu-checkbox em:before { margin-right: 0;
color: white; padding-right: 3px; }
background-color: grey; } /* line 177, ../sass/search/_search.scss */
/* line 182, ../sass/search/_search.scss */ .search-holder .search .search-bar .search-menu-holder .search-menu .search-menu-item .search-menu-checkbox em:before {
.search-holder .search .search-bar .search-menu-holder .search-menu .search-menu-item .search-menu-glyph { color: white;
color: #3dcfff; } background-color: grey; }
/* line 186, ../sass/search/_search.scss */ /* line 185, ../sass/search/_search.scss */
.search-holder .search .search-bar .search-menu-holder .search-menu .search-menu-item.special { .search-holder .search .search-bar .search-menu-holder .search-menu .search-menu-item .search-menu-glyph {
font-weight: bold; color: #3dcfff; }
background-color: #666666; } /* line 189, ../sass/search/_search.scss */
/* line 190, ../sass/search/_search.scss */ .search-holder .search .search-bar .search-menu-holder .search-menu .search-menu-item.special {
.search-holder .search .search-bar .search-menu-holder .search-menu .search-menu-item.special .search-menu-label { font-weight: bold;
font-size: 1.1em; } background-color: #666666; }
/* line 199, ../sass/search/_search.scss */ /* line 193, ../sass/search/_search.scss */
.search-holder .search .search-bar .search-menu-holder:after { .search-holder .search .search-bar .search-menu-holder .search-menu .search-menu-item.special .search-menu-label {
position: absolute; font-size: 1.1em; }
top: -6px; /* line 202, ../sass/search/_search.scss */
left: 10px; .search-holder .search .search-bar .search-menu-holder:after {
display: inline-block; position: absolute;
border-right: 6px solid transparent; top: -6px;
border-bottom: 6px solid #5e5e5e; left: 10px;
border-left: 6px solid transparent; display: inline-block;
content: ''; } border-right: 6px solid transparent;
/* line 212, ../sass/search/_search.scss */ border-bottom: 6px solid #5e5e5e;
.search-holder .search .search-bar .menu-icon:hover + div.search-menu-holder { border-left: 6px solid transparent;
visibility: visible; } content: ''; }
/* line 215, ../sass/search/_search.scss */ /* line 215, ../sass/search/_search.scss */
.search-holder .search .search-bar div.search-menu-holder:hover { .search-holder .search .search-bar .menu-icon:hover + div.search-menu-holder {
visibility: visible; } visibility: visible; }
/* line 220, ../sass/search/_search.scss */ /* line 218, ../sass/search/_search.scss */
.search-holder .search .active-filter-display { .search-holder .search .search-bar div.search-menu-holder:hover {
font-size: .6em; visibility: visible; }
height: auto; } /* line 223, ../sass/search/_search.scss */
/* line 224, ../sass/search/_search.scss */ .search-holder .search .active-filter-display {
.search-holder .search .active-filter-display .clear-filters-icon { font-size: .6em;
padding: 4px; margin-bottom: -3px;
margin-left: -4px; order: 2; }
cursor: pointer; /* line 231, ../sass/search/_search.scss */
color: #737373; .search-holder .search .active-filter-display .clear-filters-icon {
font-size: 6px; } padding: 4px;
/* line 234, ../sass/search/_search.scss */ position: relative;
.search-holder .search .active-filter-display .filter-options { margin-left: -4px;
position: relative; top: 0.2em;
margin-left: 10px; cursor: pointer;
top: -8px; } color: #737373;
/* line 241, ../sass/search/_search.scss */ font-size: 6px; }
.search-holder .search .search-scroll { /* line 244, ../sass/search/_search.scss */
top: 25px; .search-holder .search .active-filter-display .filter-options {
overflow-y: auto; position: relative;
padding-right: 5px; margin-left: 10px;
top: auto; top: -8px; }
bottom: auto; /* line 251, ../sass/search/_search.scss */
height: 90%; } .search-holder .search .search-scroll {
/* line 255, ../sass/search/_search.scss */ overflow-y: auto;
.search-holder .search .search-scroll .results .search-result-item { padding-right: 5px;
-moz-transition: background-color 0.25s; top: auto;
-o-transition: background-color 0.25s; height: auto;
-webkit-transition: background-color 0.25s; max-height: 100%;
transition: background-color 0.25s; order: 3;
margin-bottom: 2px;
border-radius: 2px;
padding-top: 4px;
padding-bottom: 2px; }
/* line 269, ../sass/search/_search.scss */
.search-holder .search .search-scroll .results .search-result-item .label {
margin-left: 6px; }
/* line 273, ../sass/search/_search.scss */
.search-holder .search .search-scroll .results .search-result-item .label .title-label {
display: inline-block;
position: absolute;
left: 29px;
right: 5px;
font-size: .8em;
line-height: 17px;
width: auto;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap; }
/* line 295, ../sass/search/_search.scss */
.search-holder .search .search-scroll .results .search-result-item.selected {
background: #005177;
color: #fff; }
/* line 299, ../sass/search/_search.scss */
.search-holder .search .search-scroll .results .search-result-item.selected .view-control {
color: #0099cc; }
/* line 302, ../sass/search/_search.scss */
.search-holder .search .search-scroll .results .search-result-item.selected .label .type-icon {
color: #fff; }
/* line 309, ../sass/search/_search.scss */
.search-holder .search .search-scroll .results .search-result-item:not(.selected):hover {
background: #404040;
color: #cccccc; }
/* line 312, ../sass/search/_search.scss */
.search-holder .search .search-scroll .results .search-result-item:not(.selected):hover .context-trigger {
display: block; }
/* line 315, ../sass/search/_search.scss */
.search-holder .search .search-scroll .results .search-result-item:not(.selected):hover .icon {
color: #33ccff; }
/* line 323, ../sass/search/_search.scss */
.search-holder .search .search-scroll .load-icon {
position: relative; } position: relative; }
/* line 325, ../sass/search/_search.scss */ /* line 265, ../sass/search/_search.scss */
.search-holder .search .search-scroll .load-icon.loading { .search-holder .search .search-scroll .results .search-result-item {
pointer-events: none; -moz-transition: background-color 0.25s;
margin-left: 6px; } -o-transition: background-color 0.25s;
/* line 329, ../sass/search/_search.scss */ -webkit-transition: background-color 0.25s;
.search-holder .search .search-scroll .load-icon.loading .title-label { transition: background-color 0.25s;
font-style: italic; margin-bottom: 2px;
font-size: .9em; border-radius: 2px;
opacity: 0.5; padding-top: 4px;
margin-left: 26px; padding-bottom: 2px; }
line-height: 24px; } /* line 279, ../sass/search/_search.scss */
/* line 339, ../sass/search/_search.scss */ .search-holder .search .search-scroll .results .search-result-item .label {
.search-holder .search .search-scroll .load-icon.loading .wait-spinner {
margin-left: 6px; } margin-left: 6px; }
/* line 344, ../sass/search/_search.scss */ /* line 283, ../sass/search/_search.scss */
.search-holder .search .search-scroll .load-icon:not(.loading) { .search-holder .search .search-scroll .results .search-result-item .label .title-label {
cursor: pointer; } display: inline-block;
/* line 349, ../sass/search/_search.scss */ position: absolute;
.search-holder .search .search-scroll .load-more-button { left: 29px;
margin-top: 5px; right: 5px;
margin-bottom: 5px; font-size: .8em;
position: relative; line-height: 17px;
left: 25%; width: auto;
width: 50%; overflow: hidden;
white-space: nowrap; text-overflow: ellipsis;
height: 20px; white-space: nowrap; }
line-height: 11px; /* line 305, ../sass/search/_search.scss */
font-size: 0.7em; } .search-holder .search .search-scroll .results .search-result-item.selected {
background: #005177;
color: #fff; }
/* line 309, ../sass/search/_search.scss */
.search-holder .search .search-scroll .results .search-result-item.selected .view-control {
color: #0099cc; }
/* line 312, ../sass/search/_search.scss */
.search-holder .search .search-scroll .results .search-result-item.selected .label .type-icon {
color: #fff; }
/* line 319, ../sass/search/_search.scss */
.search-holder .search .search-scroll .results .search-result-item:not(.selected):hover {
background: #404040;
color: #cccccc; }
/* line 322, ../sass/search/_search.scss */
.search-holder .search .search-scroll .results .search-result-item:not(.selected):hover .context-trigger {
display: block; }
/* line 325, ../sass/search/_search.scss */
.search-holder .search .search-scroll .results .search-result-item:not(.selected):hover .icon {
color: #33ccff; }
/* line 333, ../sass/search/_search.scss */
.search-holder .search .search-scroll .load-icon {
position: relative; }
/* line 335, ../sass/search/_search.scss */
.search-holder .search .search-scroll .load-icon.loading {
pointer-events: none;
margin-left: 6px; }
/* line 339, ../sass/search/_search.scss */
.search-holder .search .search-scroll .load-icon.loading .title-label {
font-style: italic;
font-size: .9em;
opacity: 0.5;
margin-left: 26px;
line-height: 24px; }
/* line 349, ../sass/search/_search.scss */
.search-holder .search .search-scroll .load-icon.loading .wait-spinner {
margin-left: 6px; }
/* line 354, ../sass/search/_search.scss */
.search-holder .search .search-scroll .load-icon:not(.loading) {
cursor: pointer; }
/* line 359, ../sass/search/_search.scss */
.search-holder .search .search-scroll .load-more-button {
margin-top: 5px;
margin-bottom: 5px;
position: relative;
left: 25%;
width: 50%;
white-space: nowrap;
height: 20px;
line-height: 11px;
font-size: 0.7em; }

View File

@ -32,7 +32,9 @@
margin-top: 10px; margin-top: 10px;
.search { .search {
//display: block; display: flex;//block;
flex-direction: column;
height: 100%;
.search-bar { .search-bar {
$heightAdjust: 4px; $heightAdjust: 4px;
@ -43,6 +45,7 @@
margin-top: $heightAdjust; margin-top: $heightAdjust;
position: relative; position: relative;
order: 1;
.search-input { .search-input {
position: relative; position: relative;
@ -219,11 +222,18 @@
.active-filter-display { .active-filter-display {
font-size: .6em; font-size: .6em;
height: auto;
// Align bottom correctly
margin-bottom: -3px;
order: 2;
.clear-filters-icon { .clear-filters-icon {
padding: 4px; padding: 4px;
position: relative;
margin-left: -4px; margin-left: -4px;
top: 0.2em;
cursor: pointer; cursor: pointer;
@ -240,15 +250,15 @@
.search-scroll { .search-scroll {
// Spacing away from the search input // Spacing away from the search input
top: 25px; //top: 25px;
overflow-y: auto; overflow-y: auto;
padding-right: $rightPadding; padding-right: $rightPadding;
top: auto; top: auto;
bottom: auto; height: auto;
height: 90%; max-height: 100%;
// It overflows the bottom when active-display-filter order: 3;
// if height is set to 100% position: relative;
.results { .results {