diff options
| author | 2022-07-19 12:56:09 +0200 | |
|---|---|---|
| committer | 2022-07-19 12:56:09 +0200 | |
| commit | 2d807e06b1abffdbc40a60c3623e22e3c6b818c6 (patch) | |
| tree | ab2178b30434ebd4d8ec911d12ee39a8f2cd0522 /p | |
| parent | 6352a1dccbac03a9582810e5d284ebac54f24f5b (diff) | |
Fix/Improved: Slider mobile (#4416)
* add close button, add content slider div
* add &ajax=1#slider to the links
* CSS
* fix showPW functionality
* open slider after received Ajax
* do not show empty slider
* RTL CSS
* fixed code smell
* improved: links prep via JS
* Redirect anchor
* enable #anchors in printuri()
* enable #slider when config was saved
* Active sliding via JS
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Diffstat (limited to 'p')
| -rw-r--r-- | p/scripts/extra.js | 14 | ||||
| -rw-r--r-- | p/themes/base-theme/template.css | 49 | ||||
| -rw-r--r-- | p/themes/base-theme/template.rtl.css | 49 |
3 files changed, 73 insertions, 39 deletions
diff --git a/p/scripts/extra.js b/p/scripts/extra.js index 7be235aa4..4ae0bcdf0 100644 --- a/p/scripts/extra.js +++ b/p/scripts/extra.js @@ -148,16 +148,20 @@ function open_slider_listener(ev) { const a = ev.target.closest('.open-slider'); if (a) { if (!context.ajax_loading) { - location.href = '#slider'; // close menu/dropdown context.ajax_loading = true; - + const slider = document.getElementById('slider'); + const slider_content = document.getElementById('slider-content'); const req = new XMLHttpRequest(); - req.open('GET', a.href + '&ajax=1', true); + slider_content.innerHTML = ''; + slider.classList.add('sliding'); + const ahref = a.href + '&ajax=1#slider'; + req.open('GET', ahref, true); req.responseType = 'document'; req.onload = function (e) { - const slider = document.getElementById('slider'); + location.href = '#slider'; // close menu/dropdown + slider.classList.add('active'); slider.scrollTop = 0; - slider.innerHTML = this.response.body.innerHTML; + slider_content.innerHTML = this.response.body.innerHTML; context.ajax_loading = false; slider.dispatchEvent(freshrssSliderLoadEvent); }; diff --git a/p/themes/base-theme/template.css b/p/themes/base-theme/template.css index 7bcc6cdf5..dba74c210 100644 --- a/p/themes/base-theme/template.css +++ b/p/themes/base-theme/template.css @@ -1510,14 +1510,17 @@ br { right: 0; overflow: auto; border-left: 1px solid #aaa; - transition: width 200ms linear; z-index: 100; } -#slider:target { +#slider.active:target { width: 750px; } +#slider.sliding { + transition: width 200ms linear; +} + #close-slider { position: fixed; top: 0; bottom: 0; @@ -1525,7 +1528,7 @@ br { cursor: pointer; } -#slider:target + #close-slider { +#slider.active:target + #close-slider { background: rgba(0, 0, 0, 0.2); font-size: 0; left: 0; @@ -1536,7 +1539,7 @@ br { display: none; } -#slider:target + #close-slider img { +#slider.active:target + #close-slider img { padding: 0.5rem; display: inline-block; position: absolute; @@ -1545,6 +1548,13 @@ br { filter: grayscale(100%) brightness(2.5); } +#slider-content .loader { + height: 90vh; + background-image: url('loader.gif'); + background-repeat: no-repeat; + background-position: center; +} + /*=== SLIDESHOW */ /*==============*/ .slides { @@ -1709,6 +1719,7 @@ input:checked + .slide-container .properties { .nav-login, .nav_menu .search, .aside .toggle_aside, +#slider .toggle_aside, .nav_menu .toggle_aside, .configure .dropdown-header-close { display: none; @@ -1780,6 +1791,19 @@ input:checked + .slide-container .properties { display: none; } + .aside .toggle_aside, + #panel .close, + .dropdown-menu .toggle_aside, + #slider .toggle_aside { + background: #f6f6f6; + display: block; + width: 100%; + height: 50px; + border-bottom: 1px solid #ddd; + line-height: 50px; + text-align: center; + } + .form-group { margin-bottom: 10px; } @@ -1950,9 +1974,7 @@ input:checked + .slide-container .properties { height: 30px; } - #slider.active { - left: 0; - top: 50px; + #slider.active:target { width: 100%; } @@ -1960,21 +1982,14 @@ input:checked + .slide-container .properties { display: initial; } - #close-slider.active img { + #slider.active:target #close-slider img { display: initial; position: initial; filter: initial; } - #close-slider.active { - background: #f6f6f6; - display: block; - width: 100%; - height: 50px; - z-index: 10; - text-align: center; - line-height: 50px; - border-bottom: 1px solid #ddd; + #slider.active:target + #close-slider { + display: none; } .stat.half { diff --git a/p/themes/base-theme/template.rtl.css b/p/themes/base-theme/template.rtl.css index 3f3336696..dda1468bc 100644 --- a/p/themes/base-theme/template.rtl.css +++ b/p/themes/base-theme/template.rtl.css @@ -1510,14 +1510,17 @@ br { left: 0; overflow: auto; border-right: 1px solid #aaa; - transition: width 200ms linear; z-index: 100; } -#slider:target { +#slider.active:target { width: 750px; } +#slider.sliding { + transition: width 200ms linear; +} + #close-slider { position: fixed; top: 0; bottom: 0; @@ -1525,7 +1528,7 @@ br { cursor: pointer; } -#slider:target + #close-slider { +#slider.active:target + #close-slider { background: rgba(0, 0, 0, 0.2); font-size: 0; right: 0; @@ -1536,7 +1539,7 @@ br { display: none; } -#slider:target + #close-slider img { +#slider.active:target + #close-slider img { padding: 0.5rem; display: inline-block; position: absolute; @@ -1545,6 +1548,13 @@ br { filter: grayscale(100%) brightness(2.5); } +#slider-content .loader { + height: 90vh; + background-image: url('loader.gif'); + background-repeat: no-repeat; + background-position: center; +} + /*=== SLIDESHOW */ /*==============*/ .slides { @@ -1709,6 +1719,7 @@ input:checked + .slide-container .properties { .nav-login, .nav_menu .search, .aside .toggle_aside, +#slider .toggle_aside, .nav_menu .toggle_aside, .configure .dropdown-header-close { display: none; @@ -1780,6 +1791,19 @@ input:checked + .slide-container .properties { display: none; } + .aside .toggle_aside, + #panel .close, + .dropdown-menu .toggle_aside, + #slider .toggle_aside { + background: #f6f6f6; + display: block; + width: 100%; + height: 50px; + border-bottom: 1px solid #ddd; + line-height: 50px; + text-align: center; + } + .form-group { margin-bottom: 10px; } @@ -1950,9 +1974,7 @@ input:checked + .slide-container .properties { height: 30px; } - #slider.active { - right: 0; - top: 50px; + #slider.active:target { width: 100%; } @@ -1960,21 +1982,14 @@ input:checked + .slide-container .properties { display: initial; } - #close-slider.active img { + #slider.active:target #close-slider img { display: initial; position: initial; filter: initial; } - #close-slider.active { - background: #f6f6f6; - display: block; - width: 100%; - height: 50px; - z-index: 10; - text-align: center; - line-height: 50px; - border-bottom: 1px solid #ddd; + #slider.active:target + #close-slider { + display: none; } .stat.half { |
