// initialize jwplayer var playerInstance = jwplayer('player');// player dom elements var playerContainerEl = document.querySelector('.player-container');// returns video player position from top of document function getElementOffsetTop(el) { var boundingClientRect = el.getBoundingClientRect(); var bodyEl = document.body; var docEl = document.documentElement; var scrollTop = window.pageYOffset || docEl.scrollTop || bodyEl.scrollTop; var clientTop = docEl.clientTop || bodyEl.clientTop || 0; return Math.round(boundingClientRect.top + scrollTop - clientTop); }// returns the current y scroll position function getScrollTop() { var docEl = document.documentElement; return (window.pageYOffset || docEl.scrollTop) - (docEl.clientTop || 0); }// configure jwplayer instance playerInstance.setup({ autostart: true, playlist: 'https://cdn.jwplayer.com/v2/playlists/mYdavspX', primary: 'html5', setFullscreen: true, width: '100%' });// when jwplayer instance is ready playerInstance.on('ready', function() { var config = playerInstance.getConfig(); var utils = playerInstance.utils; // get height of player element var playerHeight = config.containerHeight; // flag determining whether close has been clicked var closed = true; // CHANGED // flag determing whether player is playing var playing = false; // ADDED // eventhandler for when close button is being pressed document.getElementsByClassName('icon-close')[0].addEventListener('click', () => { closed = true; onScrollViewHandler(); }); playerInstance.on('play', function() { closed = false; playing = true; // ADDED }).on('pause', function () { playing = false; // ADDED }).on('adPlay', function() { closed = false; // ADDED playing = true; // ADDED }).on('adPause', function() { playing = false; // ADDED });// get player element position from top of document var playerOffsetTop = getElementOffsetTop(playerContainerEl);// set player container to match height of actual video element playerContainerEl.style.height = playerHeight + 'px';// below we handle window scroll event without killing performance function onScrollViewHandler() { var minimized = getScrollTop() >= playerOffsetTop;if (closed && minimized) { minimized = false; jwplayer().pause(); playing = false; // ADDED } else if (!minimized && !playing) { closed = true; // ADDED } utils.toggleClass(playerContainerEl, 'player-minimize', minimized); // update the player's size so the controls are adjusted playerInstance.resize(); }// namespace for whether or not we are waiting for setTimeout() to finish var isScrollTimeout = false;// window onscroll event handler window.onscroll = function() { // skip if we're waiting on a scroll update timeout to finish if (isScrollTimeout) return; // flag that a new timeout will begin isScrollTimeout = true; // otherwise, call scroll event view handler onScrollViewHandler(); // set new timeout setTimeout(function() { // reset timeout flag to false (no longer waiting) isScrollTimeout = false; }, 80); };});

With the announcement of Operation Grand Heist, Treyarch has also provided a Roadmap of what else is coming to Black Ops 4 this season.

Focusing on what this Operation has to offer Zombies fans, here’s everything we know so far and when it’s coming. Remember, all this content will be free as it is part of the Operation, not the Black Ops Pass.

Tuesday, February 19th

  • New Gauntlet for Classified – “Death-Con Five”
  • New Perk: Ethereal Razor (increased melee damage and melee kills heal you)
  • Additional Tier Skip for completing Daily Callings
  • Support for Signature Weapons
  • Additional Tier Skip for completing Daily Callings
  • More unannounced content

Thursday, February 21st

  • Support for new Black Market weapons
    • Switchblade X9 – SMG
    • Rampage – Full-auto Shogun

In Season (This content will drop by the end of the season in April)

  • New Gauntlet for Blood of Dead – “Hellcatraz”
  • Host Migration
  • New Elixirs
  • Ability to pause online private games
  • Ability to pause splitscreen games
  • Community-inspired Gauntlet

For players with the Black Ops Pass, a new Zombies experience will release in March and will feature the Chaos crew in Greece.

The Classified map will also be available for standalone purchase for the first time on February 19th.

The full roadmap and blog post can be read here.

comments below
Brooklyn boy, born and raised. @MrBrawl96 everywhere on the World Wide Web.