Merge pull request #4255 from Simounet/feat/actions-from-sticky-btn

Feat/actions from sticky btn
This commit is contained in:
Jérémy Benoist 2020-01-21 15:32:41 +01:00 committed by GitHub
commit 7937ed0c20
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 43 additions and 13 deletions

View file

@ -5,6 +5,7 @@
#article {
font-size: 20px;
margin: 0 auto;
padding-bottom: 80px;
max-width: 45em;
article {

View file

@ -131,6 +131,11 @@ nav {
display: none;
}
.entry-nav-top--sticky {
position: sticky;
top: 0;
}
@media (min-width: 993px) {
.button-collapse {
display: none;

View file

@ -17,6 +17,36 @@ import './js/shortcuts/entry';
/* Theme style */
import './css/index.scss';
const stickyNav = () => {
const nav = $('.js-entry-nav-top');
$('[data-toggle="actions"]').click(() => {
nav.toggleClass('entry-nav-top--sticky');
});
};
const articleScroll = () => {
const articleEl = $('#article');
if (articleEl.length > 0) {
$(window).scroll(() => {
const s = $(window).scrollTop();
const d = $(document).height();
const c = $(window).height();
const articleElBottom = articleEl.offset().top + articleEl.height();
const scrollPercent = (s / (d - c)) * 100;
$('.progress .determinate').css('width', `${scrollPercent}%`);
const fixedActionBtn = $('.js-fixed-action-btn');
const toggleScrollDataName = 'toggle-auto';
if ((s + c) > articleElBottom) {
fixedActionBtn.data(toggleScrollDataName, true);
fixedActionBtn.openFAB();
} else if (fixedActionBtn.data(toggleScrollDataName) === true) {
fixedActionBtn.data(toggleScrollDataName, false);
fixedActionBtn.closeFAB();
}
});
}
};
$(document).ready(() => {
// sideNav
$('.button-collapse').sideNav();
@ -36,6 +66,8 @@ $(document).ready(() => {
initFilters();
initExport();
initRandom();
stickyNav();
articleScroll();
const toggleNav = (toShow, toFocus) => {
$('.nav-panel-actions').hide(100);
@ -73,12 +105,4 @@ $(document).ready(() => {
$('.nav-panels').css('background', 'transparent');
return false;
});
$(window).scroll(() => {
const s = $(window).scrollTop();
const d = $(document).height();
const c = $(window).height();
const scrollPercent = (s / (d - c)) * 100;
$('.progress .determinate').css('width', `${scrollPercent}%`);
});
});

View file

@ -8,7 +8,7 @@
<div class="progress">
<div class="determinate"></div>
</div>
<nav class="hide-on-large-only">
<nav class="hide-on-large-only js-entry-nav-top">
<div class="nav-panel-item cyan darken-1">
<ul>
<li>
@ -280,8 +280,8 @@
{{ entry.content | raw }}
</article>
<div class="fixed-action-btn horizontal click-to-toggle hide-on-large-only">
<a class="btn-floating btn-large">
<div class="fixed-action-btn js-fixed-action-btn horizontal click-to-toggle hide-on-large-only">
<a class="btn-floating btn-large" data-toggle="actions">
<i class="material-icons">menu</i>
</a>
<ul>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long