/** * @file * A Backbone view for the body element. */ (function ($, Drupal, Backbone) { Drupal.toolbar.BodyVisualView = Backbone.View.extend(/** @lends Drupal.toolbar.BodyVisualView# */{ /** * Adjusts the body element with the toolbar position and dimension changes. * * @constructs * * @augments Backbone.View */ initialize() { this.listenTo(this.model, 'change:activeTray ', this.render); this.listenTo(this.model, 'change:isFixed change:isViewportOverflowConstrained', this.isToolbarFixed); }, isToolbarFixed() { // When the toolbar is fixed, it will not scroll with page scrolling. const isViewportOverflowConstrained = this.model.get('isViewportOverflowConstrained'); $('body').toggleClass('toolbar-fixed', (isViewportOverflowConstrained || this.model.get('isFixed'))); }, /** * @inheritdoc */ render() { $('body') // Toggle the toolbar-tray-open class on the body element. The class is // applied when a toolbar tray is active. Padding might be applied to // the body element to prevent the tray from overlapping content. .toggleClass('toolbar-tray-open', !!this.model.get('activeTray')); }, }); }(jQuery, Drupal, Backbone));