diff options
author | Filipa Lacerda <filipa@gitlab.com> | 2018-06-07 15:00:55 +0000 |
---|---|---|
committer | Filipa Lacerda <filipa@gitlab.com> | 2018-06-07 15:00:55 +0000 |
commit | b8dbbfd2c664d95bf459609eb6c006a0f8cfb118 (patch) | |
tree | 8ceff434f0662b627c61810f441fbc863f3e37b9 | |
parent | 75ee50f85f3e93bbd2583d00656029513beef90a (diff) | |
download | gitlab-ce-revert-dd6aade3.tar.gz |
Revert "Merge branch '46833-sticky-polyfill' into 'master'"revert-dd6aade3
This reverts merge request !19324
-rw-r--r-- | app/assets/javascripts/init_changes_dropdown.js | 2 | ||||
-rw-r--r-- | app/assets/javascripts/job.js | 11 | ||||
-rw-r--r-- | app/assets/javascripts/lib/utils/sticky.js | 23 |
3 files changed, 11 insertions, 25 deletions
diff --git a/app/assets/javascripts/init_changes_dropdown.js b/app/assets/javascripts/init_changes_dropdown.js index 5c5a6e01848..09cca1dc7d9 100644 --- a/app/assets/javascripts/init_changes_dropdown.js +++ b/app/assets/javascripts/init_changes_dropdown.js @@ -1,5 +1,5 @@ import $ from 'jquery'; -import { stickyMonitor } from './lib/utils/sticky'; +import stickyMonitor from './lib/utils/sticky'; export default (stickyTop) => { stickyMonitor(document.querySelector('.js-diff-files-changed'), stickyTop); diff --git a/app/assets/javascripts/job.js b/app/assets/javascripts/job.js index fc13f467675..e76bae08699 100644 --- a/app/assets/javascripts/job.js +++ b/app/assets/javascripts/job.js @@ -1,6 +1,6 @@ import $ from 'jquery'; import _ from 'underscore'; -import { polyfillSticky } from './lib/utils/sticky'; +import StickyFill from 'stickyfilljs'; import axios from './lib/utils/axios_utils'; import { visitUrl } from './lib/utils/url_utility'; import bp from './breakpoints'; @@ -70,7 +70,14 @@ export default class Job extends LogOutputBehaviours { } initAffixTopArea() { - polyfillSticky(this.$topBar); + /** + If the browser does not support position sticky, it returns the position as static. + If the browser does support sticky, then we allow the browser to handle it, if not + then we use a polyfill + */ + if (this.$topBar.css('position') !== 'static') return; + + StickyFill.add(this.$topBar); } scrollToBottom() { diff --git a/app/assets/javascripts/lib/utils/sticky.js b/app/assets/javascripts/lib/utils/sticky.js index 15a4dd62012..098afcfa1b4 100644 --- a/app/assets/javascripts/lib/utils/sticky.js +++ b/app/assets/javascripts/lib/utils/sticky.js @@ -1,5 +1,3 @@ -import StickyFill from 'stickyfilljs'; - export const createPlaceholder = () => { const placeholder = document.createElement('div'); placeholder.classList.add('sticky-placeholder'); @@ -30,16 +28,7 @@ export const isSticky = (el, scrollY, stickyTop, insertPlaceholder) => { } }; -/** - * Create a listener that will toggle a 'is-stuck' class, based on the current scroll position. - * - * - If the current environment does not support `position: sticky`, do nothing. - * - * @param {HTMLElement} el The `position: sticky` element. - * @param {Number} stickyTop Used to determine when an element is stuck. - * @param {Boolean} insertPlaceholder Should a placeholder element be created when element is stuck? - */ -export const stickyMonitor = (el, stickyTop, insertPlaceholder = true) => { +export default (el, stickyTop, insertPlaceholder = true) => { if (!el) return; if (typeof CSS === 'undefined' || !(CSS.supports('(position: -webkit-sticky) or (position: sticky)'))) return; @@ -48,13 +37,3 @@ export const stickyMonitor = (el, stickyTop, insertPlaceholder = true) => { passive: true, }); }; - -/** - * Polyfill the `position: sticky` behavior. - * - * - If the current environment supports `position: sticky`, do nothing. - * - Can receive an iterable element list (NodeList, jQuery collection, etc.) or single HTMLElement. - */ -export const polyfillSticky = (el) => { - StickyFill.add(el); -}; |