Skip to content

Page control arrows for PWA

Solved Customisation
27 2 9.3k 1
  • I have not tested them in details yet, but I will let you know about any bugs for sure 👍🏼

    Additionally, is there any reason that they are in the middle but not close to the bottom? That is usually where the fingers will be

  • I have not tested them in details yet, but I will let you know about any bugs for sure 👍🏼

    Additionally, is there any reason that they are in the middle but not close to the bottom? That is usually where the fingers will be

    @crazycells They can be anywhere you’d prefer. You can just change the .arrow.left, .arrow.right class to move to the preferred position. Currently, it’s set at 50%, but can be any value you want to reach the desired position. In this case, it would probably be better to substitute top for bottom and set the position in px to ensure the placement is the same no matter which screen estate you have.

    For example

    .arrow.left, .arrow.right {
        margin-left: 10px;
        margin-right: 10px;
        align-content: center;
        position: fixed;
        bottom: 120px;
    }
    

    That now means the page scroller (the button that appears bottom right) will be in the way, although on thinking about it, we already have a page navigation when you are in the topic, so no point in having another. That would be a minor alteration to the scroll top function to have it not appear on posts.

  • @crazycells They can be anywhere you’d prefer. You can just change the .arrow.left, .arrow.right class to move to the preferred position. Currently, it’s set at 50%, but can be any value you want to reach the desired position. In this case, it would probably be better to substitute top for bottom and set the position in px to ensure the placement is the same no matter which screen estate you have.

    For example

    .arrow.left, .arrow.right {
        margin-left: 10px;
        margin-right: 10px;
        align-content: center;
        position: fixed;
        bottom: 120px;
    }
    

    That now means the page scroller (the button that appears bottom right) will be in the way, although on thinking about it, we already have a page navigation when you are in the topic, so no point in having another. That would be a minor alteration to the scroll top function to have it not appear on posts.

    @phenomlab thanks, yes, I will move them close to the menu bar, but I was asking in case there is a technical detail I was not aware…

  • @phenomlab thanks, yes, I will move them close to the menu bar, but I was asking in case there is a technical detail I was not aware…

    @crazycells No, none that I am aware of - move them to where you’d prefer. In fact, I took your advice and moved them on Sudonix, which uses the CSS class I added in the previous post.

  • @crazycells No, none that I am aware of - move them to where you’d prefer. In fact, I took your advice and moved them on Sudonix, which uses the CSS class I added in the previous post.

    @phenomlab yes, I believe this looks more natural, they are closer to the fingers and on the top of these, it is not blocking any content in the middle of the screen…

  • @phenomlab yes, I believe this looks more natural, they are closer to the fingers and on the top of these, it is not blocking any content in the middle of the screen…

    @crazycells Exactly. i’m going to hire you as a design guru! You have some great ideas on what Sudonix should look like and I’m grateful for any contribution that enhances what I hope is already a good experience.

  • @crazycells Exactly. i’m going to hire you as a design guru! You have some great ideas on what Sudonix should look like and I’m grateful for any contribution that enhances what I hope is already a good experience.

    @phenomlab It is nice to hear that I am able to contribute your website 😄

  • @crazycells They can be anywhere you’d prefer. You can just change the .arrow.left, .arrow.right class to move to the preferred position. Currently, it’s set at 50%, but can be any value you want to reach the desired position. In this case, it would probably be better to substitute top for bottom and set the position in px to ensure the placement is the same no matter which screen estate you have.

    For example

    .arrow.left, .arrow.right {
        margin-left: 10px;
        margin-right: 10px;
        align-content: center;
        position: fixed;
        bottom: 120px;
    }
    

    That now means the page scroller (the button that appears bottom right) will be in the way, although on thinking about it, we already have a page navigation when you are in the topic, so no point in having another. That would be a minor alteration to the scroll top function to have it not appear on posts.

    @phenomlab said in Page control arrows for PWA:

    That now means the page scroller (the button that appears bottom right) will be in the way, although on thinking about it, we already have a page navigation when you are in the topic, so no point in having another.

    Based on the above point made, I have now disabled the scroll to top button inside topics.

  • @phenomlab said in Page control arrows for PWA:

    That now means the page scroller (the button that appears bottom right) will be in the way, although on thinking about it, we already have a page navigation when you are in the topic, so no point in having another.

    Based on the above point made, I have now disabled the scroll to top button inside topics.

    @phenomlab this works great! thanks a lot. And thanks to your JS codes, it is only activated on PWA, not on mobile…

  • @phenomlab this works great! thanks a lot. And thanks to your JS codes, it is only activated on PWA, not on mobile…

    @crazycells Not sure if you are using the scroll-top function, but if you are, I have enhanced the position of the button and re-sized it to match the forward and back arrows as below

    bd290755-5232-4a4c-9801-aa23235c1563-image.png

    The scroll-top button is located on the bottom right.

  • @crazycells Not sure if you are using the scroll-top function, but if you are, I have enhanced the position of the button and re-sized it to match the forward and back arrows as below

    bd290755-5232-4a4c-9801-aa23235c1563-image.png

    The scroll-top button is located on the bottom right.

    @phenomlab yes I used it before but not very frequently… Maybe you should put it above… just because it is more intuitive…
    ^
    < >
    v

  • @phenomlab yes I used it before but not very frequently… Maybe you should put it above… just because it is more intuitive…
    ^
    < >
    v

    @crazycells Ok, but there’s no “scroll-down” 🙂

  • @crazycells Ok, but there’s no “scroll-down” 🙂

    @phenomlab yeah , I know 😄 not necessary, but “up” should be above right/left buttons I guess… that is how people would think…

  • @phenomlab yeah , I know 😄 not necessary, but “up” should be above right/left buttons I guess… that is how people would think…

    @crazycells Good point, thanks.

  • @crazycells Ok, but there’s no “scroll-down” 🙂

    @phenomlab but I guess “up” is on mobile, right? not PWA specific?

  • @phenomlab but I guess “up” is on mobile, right? not PWA specific?

    @crazycells it is, yes - I think I’ll leave it as there is no specific PWA CSS classes I know of. Well, you could use something like the below, but this means multiple CSS files for different operating systems.

    /**
    * Determine the mobile operating system.
    * This function returns one of 'iOS', 'Android', 'Windows Phone', or 'unknown'.
    *
    * @returns {String}
    */
    
    function getMobileOperatingSystem()
    {
      var userAgent = navigator.userAgent || navigator.vendor || window.opera;
      // Windows Phone must come first because its UA also contains "Android"
      if (/windows phone/i.test(userAgent))
      {
        return  "Windows Phone";
      }
    
      if (/android/i.test(userAgent))
      {
        return  "Android";
      }
    
      if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream)
      {
        return  "iOS";
      }
    
      return  "unknown";
      // return “Android” - one should either handle the unknown or fallback to a specific platform, let’s say Android
    }
    

    Once you’re in that rabbit hole, it’s impossible to get out of it.


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
  • NodeBB recent cards customisation

    Solved Customisation nodebb recent cards
    3
    1
    2 Votes
    3 Posts
    878 Views
    @phenomlab thank you very much for the assistance Mark, massively appreciated as always. The great thing about this is it’s all documented for other NodeBB users that come looking for solutions . Looks far better .
  • build nodebb Warning in entrypoint size limit

    Solved Performance nodebb
    2
    0 Votes
    2 Posts
    843 Views
    @eeeee they are nothing to worry about, and can be ignored.
  • NodeBB: The global Search option

    Solved Configure search nodebb
    5
    0 Votes
    5 Posts
    963 Views
    @mventures Yes, exactly. The other icon will restart NodeBB whilst the first icon I referenced will rebuild (recompile) it. The huge strength of NodeBB over Flarum (for example) is that the code is precompiled, and called once at boot. PHP’s code has to repeatedly reload code from source making it much slower.
  • Make logo rotate on page load and hover

    Solved Customisation
    20
    2 Votes
    20 Posts
    4k Views
    @phenomlab grrrrrrr [image: grrr.gif] that simple… Thanks Mark
  • fading in /tags page

    Solved Customisation nodebb
    32
    1
    30 Votes
    32 Posts
    9k Views
    Fix working perfectly
  • is "night mode" shifting the forum several pixels up?

    Solved Configure nodebb
    8
    4 Votes
    8 Posts
    2k Views
    @crazycells hmm. Good point. I actually use my own version of the dark mode plugin, so not entirely sure. However, I think the CSS is probably the same. I’m not at my PC currently but can check and advise later.
  • [NODEBB] Help for my custom CSS

    Solved Customisation nodebb css bugfix
    237
    49 Votes
    237 Posts
    100k Views
    @baris said: You should change your selectors so it doesn’t look at the entire document. You probably only want to apply fancybox to stuff inside the #content element which is what changes when the user navigates around the page. So use $('#content a').... for your selectors then the forum logo in the header won’t be selected. I modified the JS Fancybox code now and this code and it seem better // --------------------------------------------- // Fancybox Media Reader (Without Website Logo) // --------------------------------------------- if (top.location.pathname !== '/login') { $(window).on('action:posts.loaded', function(data) { console.log("Polling DOM for lazyLoaded images to apply Fancybox"); $(document).ready(function() { $('#content a').not('.forum-logo').not(".avatar").not(".emoji").not(".bmac-noanimate").each(function() { $('#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]').addClass("noanimate"); }); }); }); } if (top.location.pathname !== '/login') { $(document).ready(function() { $(window).on('action:ajaxify.end', function(data) { $('#content a').not('.logo').not(".avatar").not(".emoji").not(".bmac-noanimate").each(function() { $('#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]').addClass("noanimate"); data.preventDefault() // Strip out the images contained inside blockquotes as this looks nasty :) $('#content blockquote img').remove(); }); Fancybox.bind( '#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]', { groupAll: true, } ); }); }); } // Chat fancybox - fires when chat module loaded and AJAX calls new chat $(document).ready(function() { $(window).on('action:chat.loaded', function(data) { // >>> Se limiter au contenu principal uniquement <<< $('#content img').not('.forum-logo').not(".avatar").not(".emoji").not(".bmac-noanimate").each(function() { var newHref = $(this).attr("src"); $(this).wrap("<a class='fancybox' href='" + newHref + "'/>"); $('#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]').addClass("noanimate"); data.preventDefault(); // Strip out the images contained inside blockquotes as this looks nasty :) $('#content blockquote img').remove(); }); Fancybox.bind( '#content a[href*=".jpg"], #content a[href*=".jpeg"], #content a[href*=".png"], #content a[href*=".gif"], #content a[href*=".webp"]', { groupAll: true, } ); }); }); For the logo, I must use overflow: visible !important; on [component="brand/logo"] /* --- Logo --- */ [component="brand/logo"] { max-height: 50px; width: auto; height: auto; max-width: 100%; display: block; object-fit: contain; object-position: left center; overflow: visible !important; } Better result !!
  • [NODEBB] Reply Button/arrow answer

    Solved Customisation css nodebb
    25
    4
    4 Votes
    25 Posts
    8k Views
    Topic open https://sudonix.com/topic/207/nodebb-help-for-my-custom-css