diff --git a/packages/web/components/templates/article/Article.tsx b/packages/web/components/templates/article/Article.tsx index 91ef82161..d8b2de3d5 100644 --- a/packages/web/components/templates/article/Article.tsx +++ b/packages/web/components/templates/article/Article.tsx @@ -119,12 +119,24 @@ export function Article(props: ArticleProps): JSX.Element { const youtubePlayer = document.getElementById('_omnivore_youtube_video') const updateScroll = () => { - console.log('scroll y: ', window.scrollY, youtubePlayer) + const YOUTUBE_PLACEHOLDER_ID = 'omnivore-youtube-placeholder' + const youtubePlaceholder = document.getElementById(YOUTUBE_PLACEHOLDER_ID) if (youtubePlayer) { - if (window.scrollY > 200) { + if (window.scrollY > 400) { + if (!youtubePlaceholder) { + var rect = youtubePlayer.getBoundingClientRect() + var placeholder = document.createElement('div') + placeholder.setAttribute('id', YOUTUBE_PLACEHOLDER_ID) + placeholder.style.width = rect.width + 'px' + placeholder.style.height = rect.height + 'px' + youtubePlayer.parentNode?.insertBefore(placeholder, youtubePlayer) + } youtubePlayer.classList.add('is-sticky') } else { + if (youtubePlaceholder) { + youtubePlayer.parentNode?.removeChild(youtubePlaceholder) + } youtubePlayer.classList.remove('is-sticky') } } diff --git a/packages/web/styles/articleInnerStyling.css b/packages/web/styles/articleInnerStyling.css index 3550d0e82..dcd048cd3 100644 --- a/packages/web/styles/articleInnerStyling.css +++ b/packages/web/styles/articleInnerStyling.css @@ -664,4 +664,10 @@ -webkit-transform: none; transform: none; } -} \ No newline at end of file +} + +.youtubeplaceholder { + border: 2px dashed #aaa; + box-sizing: border-box; +} +