Preloader

    Framework7 has a nice preloader indicator. Preloader is made with SVG and animated with CSS so it can be easily resized.

    Layout is pretty simple:

    MD theme uses more complex preloader layout as it has more complex animation. Usually if it is inside of page or created withing some API methods F7 will add this additional inner layout automatically. But if you will add it manually using, lets say, direct DOM manipulation then you may need to add full layout which is required for MD theme:

    1. <div class="preloader">
    2. <span class="preloader-inner">
    3. <span class="preloader-inner-gap"></span>
    4. <span class="preloader-inner-left">
    5. <span class="preloader-inner-half-circle"></span>
    6. </span>
    7. <span class="preloader-inner-right">
    8. <span class="preloader-inner-half-circle"></span>
    9. </span>
    10. </span>
    11. </div>

    MD theme also supports special color-multi color to make preloader multi-color.

    1. <!-- Red preloader -->
    2. <div class="preloader color-red"></div>
    3. <!-- Green preloader -->
    4. <div class="preloader color-green"></div>
    5. <!-- Multicolor preloader (MD theme only) -->
    6. <div class="preloader color-multi"></div>

    It is also possible to call special Preloader overlay which is useful if you need to block user actions until something is loaded. This kind of preloader will appear in front of app and block any user actions behind it.

    Let’s look at related app methods to work with Preloader overlay

    app.preloader.hide()- hide Preloader overlay

    For example:

    Opening Preloader overlay will also add with-modal-preloader class to element.

    1. <div class="block block-strong align-items-stretch text-align-center">
    2. <div class="col-25">
    3. <div class="preloader"></div>
    4. </div>
    5. <div class="col-25" style="background: #222">
    6. <div class="preloader color-white"></div>
    7. </div>
    8. <!-- Large preloaders -->
    9. <div class="col-25">
    10. <div class="preloader" style="width: 44px; height: 44px"></div>
    11. </div>
    12. <div class="col-25" style="background: #222">
    13. <div class="preloader color-white" style="width: 44px; height: 44px"></div>
    14. </div>
    15. </div>
    16. </div>
    1. <div class="block-title">Color Preloaders</div>
    2. <div class="block block-strong">
    3. <div class="row">
    4. <div class="col-25">
    5. <div class="preloader color-red"></div>
    6. </div>
    7. <div class="col-25">
    8. <div class="preloader color-green"></div>
    9. <div class="preloader color-orange"></div>
    10. </div>
    11. <div class="col-25">
    12. <div class="preloader color-blue"></div>
    13. </div>
    14. </div>
    15. </div>
    1. <div class="block-title">Preloader Modals</div>
    2. <div class="block block-strong">
    3. <p>With <b>app.preloader.show()</b> you can show small overlay with preloader indicator.</p>
    4. <p>
    5. <a class="button button-raised open-preloader-indicator">Open Small Indicator</a>
    6. </p>
    7. </div>
    1. var app = new Framework7();
    2. var $$ = Dom7;
    3. $$('.open-preloader-indicator').on('click', function () {
    4. app.preloader.show();
    5. setTimeout(function () {
    6. app.preloader.hide();
    7. }, 3000);
    8. });