// 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); };});

Activision and Treyarch have officially announced what’s coming to Call of Duty: Black Ops 4 with the game’s next big Operation, called Operation Grand Heist. Operation Grand Heist kicks off February 19 on PlayStation 4.

Operation Grand Heist includes new content across all modes of play, including MP, Blackout, and Zombies, in Call of Duty: Black Ops 4. Treyarch says they plan to ensure a steady stream of content is released throughout the next few months with this Operation.

Operation Grand Heist Details:

Call of Duty®: Black Ops 4’s Operation Grand Heist marks the return of Outrider as a Specialist, a new Blackout destination, and more to come.

Black Ops Pass holders gain access to 2 new MP maps and the exclusive Cosmic Silverback Blackout Character.

The new Operation Grand Heist brings:

  • New Specialist Specialist: Outrider – Provide overwatch for your crew and eliminate opponents with silent precision using Outrider’s devastating longbow.
  • Ghost Town, a new location for Blackout, a sprawling new destination featuring the rough-and-tough classic map “Outlaw” above ground, and the chilling Zombies map “Buried” below ground.
  • Two New MP Maps for Black Ops Pass Owners
  • New Blackout Character for Black Ops Pass
  • New Characters
  • New Modes:
    • Hot Pursuit
    • One in the Chamber
  • New Vehicles for Blackout
  • New Weapons and Camos
  • New Outfits

Alongside all of the content mentioned in the trailer, Treyarch released a blog post providing a roadmap of what fans can expect in Call of Duty: Black Ops 4 over the next few months.

There will be new features and updates to MP, Zombies, and Blackout coming to the game. Check out the full overview post here.

Trailer:

Operation Grand Heist will go live on February 19 on PlayStation 4 with Game Update 1.13 and comes to Xbox One and PC on February 26. 

comments below