aboutsummaryrefslogtreecommitdiff
path: root/p
diff options
context:
space:
mode:
authorGravatar maTh <math-home@web.de> 2022-07-19 12:56:09 +0200
committerGravatar GitHub <noreply@github.com> 2022-07-19 12:56:09 +0200
commit2d807e06b1abffdbc40a60c3623e22e3c6b818c6 (patch)
treeab2178b30434ebd4d8ec911d12ee39a8f2cd0522 /p
parent6352a1dccbac03a9582810e5d284ebac54f24f5b (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.js14
-rw-r--r--p/themes/base-theme/template.css49
-rw-r--r--p/themes/base-theme/template.rtl.css49
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 {