123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- (function($) {
- Drupal.behaviors.moduleFilterDynamicPosition = {
- attach: function(context) {
- var $window = $(window);
- $('#module-filter-wrapper', context).once('dynamic-position', function() {
- // Move the submit button just below the tabs.
- $('#module-filter-tabs').append($('#module-filter-submit'));
- var positionSubmit = function() {
- var $tabs = $('#module-filter-tabs');
- var $submit = $('#module-filter-submit', $tabs);
- // Vertical movement.
- var bottom = $tabs.offset().top + $tabs.outerHeight();
- if ($submit.hasClass('fixed-bottom')) {
- bottom += $submit.height();
- }
- if (bottom >= $window.height() + $window.scrollTop()) {
- $submit.addClass('fixed fixed-bottom');
- $tabs.css('padding-bottom', $submit.height());
- }
- else {
- $submit.removeClass('fixed fixed-bottom');
- $tabs.css('padding-bottom', 0);
- }
- // Horizontal movement.
- if ($submit.hasClass('fixed-bottom') || $submit.hasClass('fixed-top')) {
- var left = $tabs.offset().left - $window.scrollLeft();
- if (left != $submit.offset().left - $window.scrollLeft()) {
- $submit.css('left', left);
- }
- }
- };
- // Control the positioning.
- $window.scroll(positionSubmit);
- $window.resize(positionSubmit);
- var moduleFilter = $('input[name="module_filter[name]"]').data('moduleFilter');
- moduleFilter.element.bind('moduleFilter:adjustHeight', positionSubmit);
- moduleFilter.adjustHeight();
- });
- }
- };
- })(jQuery);
|