Logo

Sticky Form Actions try to scroll the page

Customer Info:

If you want your invoices addressed to a company. Leave blank to use your full name.
We'll never share your email with anyone else.
.com

Address Details:

Account:

Email will not be publicly displayed. Learn more.

Security:

After you log in, you will be asked for additional information to confirm your identity and protect your account from being compromised. Learn more.
For extra security, this requires you to confirm your email or phone number when you reset your password. Learn more.

    <div class="card card-custom card-sticky" id="kt_page_sticky_card">
     <div class="card-header">
      <div class="card-title">
       <h3 class="card-label">
        Sticky Form Actions <i class="mr-2"></i>
        <small class="">try to scroll the page</small>
       </h3>
      </div>
     </div>
     <div class="card-body">
     ...
     </div>
    </div>
    

    "use strict";

    var KTLayoutStickyCard=function() {
     // Private properties
     var _element;
     var _object;

     // Private functions
     var _init=function() {
      var offset=300;

      if (typeof KTLayoutHeader !=='undefined') {
       offset=KTLayoutHeader.getHeight();
      }

      _object=new KTCard(_element, {
        sticky: {
         offset: offset,
         zIndex: 90,
         position: {
          top: function() {
           var pos=0;
           var body=KTUtil.getBody();

           if (KTUtil.isBreakpointUp('lg')) {
            if (typeof KTLayoutHeader !=='undefined'&& KTLayoutHeader.isFixed()) {
             pos=pos + KTLayoutHeader.getHeight();
            }

            if (typeof KTLayoutSubheader !=='undefined'&& KTLayoutSubheader.isFixed()) {
             pos=pos + KTLayoutSubheader.getHeight();
            }
           }

           else {
            if (typeof KTLayoutHeader !=='undefined'&& KTLayoutHeader.isFixedForMobile()) {
             pos=pos + KTLayoutHeader.getHeightForMobile();
            }
           }

           pos=pos - 1; // remove header border width

           return pos;
          },
          left: function(card) {
           return KTUtil.offset(_element).left;
          },
          right: function(card) {
           var body=KTUtil.getBody();

           var cardWidth=parseInt(KTUtil.css(_element, 'width'));
           var bodyWidth=parseInt(KTUtil.css(body, 'width'));
           var cardOffsetLeft=KTUtil.offset(_element).left;

           return bodyWidth - cardWidth - cardOffsetLeft;
          }
         }
        }
       }
      );

      _object.initSticky();

      KTUtil.addResizeHandler(function() {
        _object.updateSticky();
       }
      );
     }

     // Public methods
     return {
      init: function(id) {
       _element=KTUtil.getById(id);

       if ( !_element) {
        return;
       }

       // Initialize
       _init();
      },

      update: function() {
       if (_object) {
        _object.updateSticky();
       }
      }
     };
    }();

    // Webpack support
    if (typeof module !=='undefined') {
     module.exports=KTLayoutStickyCard;
    }
    

Select A Demo

Demo 1
Demo 2
Demo 3
Demo 4
Demo 5
Demo 6
Demo 7
Demo 8
Demo 9
Demo 10
Demo 11
Demo 12
Demo 13
Demo 14
Demo 15
Demo 16
Demo 17
Demo 18
Demo 19
Demo 20
Demo 21
Demo 22
Demo 23
Demo 24
Demo 25
Demo 26
Demo 27
Demo 28
Demo 29
Demo 30