Skip to content

Reading Meter Progress bar

Locked Solved Customisation
15 3 6.5k 1
  • wrote on last edited by
    #1

    Hello @phenomlab

    How do you do this reading-meter-progress bar ?

    e2756c2e-4771-46d4-a337-10bbe9c98b0a-image.png

    Thanks

    😉

  • Hello @phenomlab

    How do you do this reading-meter-progress bar ?

    e2756c2e-4771-46d4-a337-10bbe9c98b0a-image.png

    Thanks

    😉

    wrote on last edited by phenomlab
    #2

    @downpw Add this to your custom JS

    $(window).on('action:ajaxify.end', function (data) {
        // Main progressbar function
        window.onscroll = function () { myFunction() };
        function myFunction() {
            var winScroll = document.body.scrollTop || document.documentElement.scrollTop;
            var height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
            var scrolled = (winScroll / height) * 100;
            document.getElementById("myBar").style.width = scrolled + "%";
        }
    });
    

    Add this into Custom Header

    <div class="reading-meter">
      <div class="reading-meter-progress">
        <div class="reading-meter-progress-bar" id="myBar"></div>
      </div> 
    </div>
    

    Sample CSS

    .reading-meter {
      position: fixed;
      top: 0px !important;
      z-index: 1111;
      width: 100%;
      background-color: #000000;
    }
    
    .reading-meter-progress {
    width: 100%;
    height: 3px;  z-index: 1111;
    background: #ffffff;
    }
    
    .reading-meter-progress-bar {
    height: 3px;
    background-color:#dddddd;
    width: 0%;
    }
    
  • phenomlab phenomlab has marked this topic as solved on
  • wrote on last edited by phenomlab
    #3

    @phenomlab said in Reading Meter Progress bar:

    Add this into Custom Header
    <div class=“reading-meter”>
    <div class=“reading-meter-progress”>
    <div class=“reading-meter-progress-bar” id=“myBar”></div>
    </div>

    Sample CSS
    .reading-meter {
    position: fixed;
    top: 0px !important;
    z-index: 1111;
    width: 100%;
    background-color: #000000;
    }

    .reading-meter-progress {
    width: 100%;
    height: 3px; z-index: 1111;
    background: #ffffff;
    }

    .reading-meter-progress-bar {
    height: 3px;
    background-color:#dddddd;
    width: 0%;
    }

    .reading-meter {
    visibility: hidden;
    }

    .reading-meter.show {
    visibility: visible;
    }

    I allow myself a correction:

    Add this into Custom Header

    <div class="reading-meter">
      <div class="reading-meter-progress">
        <div class="reading-meter-progress-bar" id="myBar"></div>
      </div> 
    </div>
    

    Sample CSS

    .reading-meter {
      position: fixed;
      top: 0px !important;
      z-index: 1111;
      width: 100%;
      background-color: #000000;
    }
    
    .reading-meter-progress {
    width: 100%;
    height: 3px;  z-index: 1111;
    background: #ffffff;
    }
    
    .reading-meter-progress-bar {
    height: 3px;
    background-color:#dddddd;
    width: 0%;
    }
    
  • @phenomlab said in Reading Meter Progress bar:

    Add this into Custom Header
    <div class=“reading-meter”>
    <div class=“reading-meter-progress”>
    <div class=“reading-meter-progress-bar” id=“myBar”></div>
    </div>

    Sample CSS
    .reading-meter {
    position: fixed;
    top: 0px !important;
    z-index: 1111;
    width: 100%;
    background-color: #000000;
    }

    .reading-meter-progress {
    width: 100%;
    height: 3px; z-index: 1111;
    background: #ffffff;
    }

    .reading-meter-progress-bar {
    height: 3px;
    background-color:#dddddd;
    width: 0%;
    }

    .reading-meter {
    visibility: hidden;
    }

    .reading-meter.show {
    visibility: visible;
    }

    I allow myself a correction:

    Add this into Custom Header

    <div class="reading-meter">
      <div class="reading-meter-progress">
        <div class="reading-meter-progress-bar" id="myBar"></div>
      </div> 
    </div>
    

    Sample CSS

    .reading-meter {
      position: fixed;
      top: 0px !important;
      z-index: 1111;
      width: 100%;
      background-color: #000000;
    }
    
    .reading-meter-progress {
    width: 100%;
    height: 3px;  z-index: 1111;
    background: #ffffff;
    }
    
    .reading-meter-progress-bar {
    height: 3px;
    background-color:#dddddd;
    width: 0%;
    }
    
    wrote on last edited by
    #4

    @downpw good spot. Thanks. Amended original post

  • Hello @phenomlab

    How do you do this reading-meter-progress bar ?

    e2756c2e-4771-46d4-a337-10bbe9c98b0a-image.png

    Thanks

    😉

    wrote on last edited by
    #5

    @downpw said in Reading Meter Progress bar:

    Hello @phenomlab

    How do you do this reading-meter-progress bar ?

    e2756c2e-4771-46d4-a337-10bbe9c98b0a-image.png

    Thanks

    😉

    I do like the look of this 👍🏻🤝

  • JAC JAC

    @downpw said in Reading Meter Progress bar:

    Hello @phenomlab

    How do you do this reading-meter-progress bar ?

    e2756c2e-4771-46d4-a337-10bbe9c98b0a-image.png

    Thanks

    😉

    I do like the look of this 👍🏻🤝

    wrote on last edited by
    #6

    @jac thanks !

  • wrote on last edited by
    #7

    @phenomlab

    it’s very great for continuous reading without pagination

  • @phenomlab

    it’s very great for continuous reading without pagination

    wrote on last edited by
    #8

    @downpw yes, it should auto update the progress based on the page length.

  • @downpw yes, it should auto update the progress based on the page length.

    wrote on last edited by
    #9

    @phenomlab liking the look of this although unsure if it was in blue if it would clash with the nav bar, although may fit in well on top of the yellow title block.

  • JAC JAC

    @phenomlab liking the look of this although unsure if it was in blue if it would clash with the nav bar, although may fit in well on top of the yellow title block.

    wrote on last edited by
    #10

    @jac you could use the yellow I suppose ?

  • @jac you could use the yellow I suppose ?

    wrote on last edited by
    #11

    @phenomlab very true, I don’t suppose white would really work out so yellow could be used yes 😁.

  • JAC JAC

    @phenomlab very true, I don’t suppose white would really work out so yellow could be used yes 😁.

    wrote on last edited by
    #12

    @jac said in Reading Meter Progress bar:

    @phenomlab very true, I don’t suppose white would really work out so yellow could be used yes 😁.

    I’m still not at home to do this, I wouldn’t even know the steps to do it I’m afraid 😆.

  • JAC JAC

    @jac said in Reading Meter Progress bar:

    @phenomlab very true, I don’t suppose white would really work out so yellow could be used yes 😁.

    I’m still not at home to do this, I wouldn’t even know the steps to do it I’m afraid 😆.

    wrote on last edited by
    #13

    @jac Steps are here 🙂

  • @jac Steps are here 🙂

    wrote on last edited by
    #14

    @phenomlab said in Reading Meter Progress bar:

    @jac Steps are here 🙂

    Many thanks will hopefully be able to achieve this once home tomorrow!

  • phenomlab phenomlab referenced this topic on
  • phenomlab phenomlab forked this topic on
  • wrote on last edited by
    #15

    For anyone else following this thread, please see
    https://sudonix.com/topic/467/issues-with-progress-bar-on-v3

  • phenomlab phenomlab has marked this topic as solved on
  • phenomlab phenomlab locked this topic on
  • phenomlab phenomlab referenced this topic on

Did this solution help you?
Did you find the suggested solution useful? Support 💗 Sudonix with a coffee ☕
If your organisation needs deeper expertise around infrastructure, security, or technology leadership, learn more about Phenomlab Ltd. Many of the deeper technical guides behind Sudonix are published there.

Related Topics
  • The theme came with space on left side

    Solved WordPress css
    7
    3 Votes
    7 Posts
    2k Views
    Sala
    @phenomlab yes it’s a different theme. The other one was not offering much on editable sidebar. It was like flarum hahah
  • Material View Support for Stock NodeBB

    Unsolved Let's Build It material view javascript css
    51
    4
    15 Votes
    51 Posts
    27k Views
    DownPW
    Oh yes, that’s what’s super cool, I learn something every day. Afterwards I start from so low in JS
  • Issues with Progress Bar on v3

    Solved Customisation
    48
    1
    14 Votes
    48 Posts
    20k Views
    phenomlab
    @Panda You could use the below .page-topic .pagination-block.ready { display: none; }
  • Footer bar add center text

    Solved Customisation css
    41
    1
    8 Votes
    41 Posts
    19k Views
    DownPW
    @phenomlab said in Footer bar add center text: div#console-nav-tab Ah ok test with bottom: 0px !important; idem
  • who is read NodeBB

    Customisation read post nodebb
    6
    0 Votes
    6 Posts
    3k Views
    phenomlab
    @cagatay You should ask in the NodeBB forums. Perhaps reference this post https://discuss.flarum.org/d/23066-who-read
  • hover link effect

    Solved Customisation css link hover
    18
    1
    6 Votes
    18 Posts
    7k Views
    phenomlab
    @DownPW Looking at the underlying code, class start is being added on hover by jQuery in this function document.querySelectorAll(".button-gradient, .button-transparent").forEach((button) => { const style = getComputedStyle(button); const lines = document.createElement("div"); lines.classList.add("lines"); const groupTop = document.createElement("div"); const groupBottom = document.createElement("div"); const svg = createSVG( button.offsetWidth, button.offsetHeight, parseInt(style.borderRadius, 10) ); groupTop.appendChild(svg); groupTop.appendChild(svg.cloneNode(true)); groupTop.appendChild(svg.cloneNode(true)); groupTop.appendChild(svg.cloneNode(true)); groupBottom.appendChild(svg.cloneNode(true)); groupBottom.appendChild(svg.cloneNode(true)); groupBottom.appendChild(svg.cloneNode(true)); groupBottom.appendChild(svg.cloneNode(true)); lines.appendChild(groupTop); lines.appendChild(groupBottom); button.appendChild(lines); button.addEventListener("pointerenter", () => { button.classList.add("start"); }); svg.addEventListener("animationend", () => { button.classList.remove("start"); }); }); }) The CSS for start is below .button-gradient.start .lines svg, .button-transparent.start .lines svg { animation: stroke 0.3s linear; } And this is the corresponding keyframe @keyframes stroke { 30%, 55% { opacity: 1; } 100% { stroke-dashoffset: 5; opacity: 0; } } It’s using both CSS and SVG, so might not be a simple affair to replicate without the SVG files.
  • Quote design CSS

    Solved Customisation css quote
    15
    1
    4 Votes
    15 Posts
    6k Views
    phenomlab
    @DownPW yes, that does make sense actually. I forgot to mention the layout of Sudonix is custom so that would have an impact on the positioning. Good spot
  • NodeBB Design help

    Solved Customisation
    8
    3
    2 Votes
    8 Posts
    4k Views
    phenomlab
    @riekmedia I’ve applied some new CSS to your site. Can you reload the page and try again ? For the record, this is what I added #footer { background: #2d343e; border-top: 4px solid #2d343e; font-size: 0.9em; margin-top: 70px; padding: 80px 0 0; position: relative; clear: both; bottom: 0; left: 0; right: 0; z-index: 1000; margin-left: -15px; margin-right: -338px; } The /categories page seems a bit messed up, so looking at that currently EDIT - issued some override CSS in the CATEGORIES widget <!--- CSS fix for overspill on /categories page - DO NOT DELETE --> <style> #footer { margin-right: -45px; } </style> That should resolve the /categories issue.