.aplus-v2 .aplus-content-wrapper {
position: relative;
overflow: hidden;
}
.aplus-v2 .container-with-background-image {
width: 100%;
height: 100%;
background-repeat: no-repeat;
background-size: cover;
}
function logShoppableMetrics(moduleName, showsAddToCart) {
if (window.ue && window.ue.count) {
window.ue.count(“aplus:shoppable:” + moduleName + “:addToCart”, showsAddToCart ? 1 : 0);
}
}
From the brand
.aplus-v2 .apm-brand-story-carousel-container {
position: relative;
}
.aplus-v2 .apm-brand-story-carousel-hero-container,
.aplus-v2 .apm-brand-story-carousel-hero-container > div {
position: absolute;
width: 100%;
}
/*
Ensuring the carousel takes only the space it needs.
The sizes need to be set again on the absolutely positioned elements so they can take up space.
*/
.aplus-v2 .apm-brand-story-carousel-container,
.aplus-v2 .apm-brand-story-carousel-hero-container {
height: 625px;
width: 100%;
max-width: 1464px;
margin-left: auto;
margin-right: auto;
overflow: hidden;
}
.aplus-v2 .apm-brand-story-carousel-hero-container,
.aplus-v2 .apm-brand-story-carousel-hero-container > div {
height: 625px;
}
.aplus-v2 .apm-brand-story-carousel.a-carousel-container {
padding: 0px;
}
/*
This centers the carousel vertically on top of the hero image container and after the logo area (125px).
Margin-top = (heroHeight – cardHeight – logoAreaHeight) / 2 + logoAreaHeight
*/
.aplus-v2 .apm-brand-story-carousel .a-carousel-row-inner {
margin-top: 149px;
}
/*
Cards need to have a width set, otherwise they default to 50px or so.
All cards must have the same width. The carousel will resize itself so all cards take the width of the largest card.
The left margin is for leaving a space between each card.
*/
.aplus-v2 .apm-brand-story-carousel .a-carousel-card {
width: 362px;
margin-left: 30px !important;
}
/* styling the navigation buttons so they are taller, flush with the sides, and have a clean white background */
.aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-left,
.aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-right {
padding: 0px;
}
.aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-left .a-button-image,
.aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-right .a-button-image {
border: none;
margin: 0px;
}
.aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-left .a-button-image .a-button-inner,
.aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-right .a-button-image .a-button-inner {
background: #fff;
padding: 20px 6px;
}
.aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-left .a-button-image .a-button-inner {
border-radius: 0px 4px 4px 0px;
}
.aplus-v2 .apm-brand-story-carousel .a-carousel-col.a-carousel-right .a-button-image .a-button-inner {
border-radius: 4px 0px 0px 4px;
}
ASUS Monitors & Displays
-
-
-
-
ROG Gaming Monitors
-
TUF Gaming Monitors
-
-
ProArt Displays
-
-
Portable Displays
-
-
Eye Care Monitors
.aplus-v2 .aplus-content-wrapper {
position: relative;
overflow: hidden;
}
.aplus-v2 .container-with-background-image {
width: 100%;
height: 100%;
background-repeat: no-repeat;
background-size: cover;
}
function logShoppableMetrics(moduleName, showsAddToCart) {
if (window.ue && window.ue.count) {
window.ue.count(“aplus:shoppable:” + moduleName + “:addToCart”, showsAddToCart ? 1 : 0);
}
}
From the manufacturer
ROG Strix OLED XG32UCWMG
(window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js(‘https://m.media-amazon.com/images/I/61rtJ3+GOOL.js?AUIClients/VSEPlayer’);
(window.AmazonUIPageJS ? AmazonUIPageJS : P).load.js(‘https://m.media-amazon.com/images/I/3175HHgX+OL._RC|11KFCxsEshL.js,11uNd0zHc-L.js,51ocjucRF0L.js,41tLmUCnr0L.js,91G7VmlBk7L.js,11cPgPsKKOL.js_.js?AUIClients/Brila’);
-
TrueBlack Glossy OLED technology
The XG32UCWMG features a new TrueBlack Glossy OLED panel with a zero-haze optical layer that presents deep blacks and supersharp visuals under any lighting.
-
Groundbreaking dual-mode display
The XG32UCWMG OLED monitor allows you to switch between stunning 4K @ 165Hz all the way up to a mind-blowing FHD @ 330Hz visuals with just a tap of a hotkey.
-
Advantages of OLED technology
The XG32UCWMG offers exceptional imagery thanks to an extremely 1.5M:1 contrast ratio, delivering the deepest black hues. Plus, the astounding 0.03ms response time ensures supersmooth gameplay.
-
Extreme Low Motion Blur
Exclusive ASUS Extreme Low Motion Blue (ELMB) technology further reduces ghosting and motion blur.
-
Clear Pixel Edge
The ROG WOLED panel also boasts the Clear Pixel Edge algorithm that reduces green and red fringing on text and lines for improved viewing experiences.
P.now(“premium-aplus-13-carousel-1”).execute(“init-pagination-carousel”, function(init) {
if (init) {
return;
}
P.register(“premium-aplus-13-carousel-1”, function() {
return function() {
P.when(“A”, “jQuery”, “a-carousel-framework”, “ready”).execute(“paginate-carousel”, function (A, $, framework) {
const ENTER_KEY_CODE = 13;
const ESCAPE_KEY_CODE = 27;
const LEFT_ARROW_KEY = 37;
const RIGHT_ARROW_KEY = 39;
const HOME_KEY = 36;
const END_KEY = 35;
var moduleId = “1”;
var carouselName = “premium-aplus-13-carousel-1”;
var paginationAction = “aplus-pagination-dot-action-” + moduleId + “-” + carouselName;
var paginationGroup = “#aplus-pagination-group-” + moduleId + “-” + carouselName;
/* If the carousel goes to a new page */
A.on(“a:carousel:”+carouselName+”:change:pageNumber”, function (data) {
A.$(paginationGroup+” .carousel-slider-circle”).removeClass(“aplus-carousel-active”).attr(‘aria-selected’, ‘false’).attr(‘tabindex’, -1)
.eq(data.newValue – 1).addClass(“aplus-carousel-active”).attr(‘aria-selected’, ‘true’).attr(‘tabindex’, 0);
});
function syncPaginationDotsWithCarouselPages(numPages) {
const parentElement = document.querySelector(paginationGroup);
if (parentElement && parentElement.children) {
const children = parentElement.children;
for (let i = 0; i = numPages) {
// If number of dots > num of pages, we should hide other dots
children[i].classList.add(‘aplus-pagination-dot–display-none’);
} else if (children[i].classList.contains(‘aplus-pagination-dot–display-none’)) {
// Reset display of dots if it was hidden before
children[i].classList.remove(‘aplus-pagination-dot–display-none’);
}
}
}
}
framework.onInit(carouselName, function (carousel) {
try {
var totalPages = carousel.getAttr(‘totalPages’);
syncPaginationDotsWithCarouselPages(totalPages);
/* Resize event handler to re-calculate the pagination dots count based on orientation */
window.addEventListener(‘resize’, function() {
carousel.resize();
totalPages = carousel.getAttr(‘totalPages’);
syncPaginationDotsWithCarouselPages(totalPages);
});
A.declarative(paginationAction, ‘click keydown’, function(event){
var isClick = event.type === ‘click’;
var isKeydown = event.type === ‘keydown’;
var isEnter = isKeydown && event.$event.keyCode === ENTER_KEY_CODE;
var isEsc = isKeydown && event.$event.keyCode === ESCAPE_KEY_CODE;
var isLeftArrow = isKeydown && event.$event.keyCode === LEFT_ARROW_KEY;
var isRightArrow = isKeydown && event.$event.keyCode === RIGHT_ARROW_KEY;
var isHome = isKeydown && event.$event.keyCode === HOME_KEY;
var isEnd = isKeydown && event.$event.keyCode === END_KEY;
if (isClick || isEnter) {
var data = event.data;
carousel.gotoPage(data.page);
} else if (isEsc) {
event.$target.blur();
} else if (isLeftArrow || isRightArrow || isHome || isEnd) {
event.$event.preventDefault();
const dots = A.$(paginationGroup + ” .carousel-slider-circle”);
const currentIndex = dots.index(event.$target);
let nextIndex;
if (isLeftArrow) {
nextIndex = currentIndex > 0 ? currentIndex – 1 : dots.length – 1;
} else if (isRightArrow) {
nextIndex = currentIndex < dots.length – 1 ? currentIndex + 1 : 0;
} else if (isHome) {
nextIndex = 0;
} else if (isEnd) {
nextIndex = dots.length – 1;
}
dots.eq(nextIndex).focus();
carousel.gotoPage(nextIndex + 1);
}
});
} catch (e) {
P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');
}
});
});
}
});
});
-
OLED Care Pro: Neo Proximity Sensor
The new Neo Proximity Sensor detects your distance from the monitor and transitions to a black image when you’re away to safeguard the panel from burn-in. Detection distance can also be customized.
-
ASUS OLED Care Advanced custom heatsink
The custom passive heatsink prioritizes heat dissipation. In addition, the monitor’s back cover features top vents that further improve cooling to reduce the risk of burn-in.
-
Pixel cleaning & Screen move
Pixel cleaning helps recalibrate the screen when the monitor has been active for several hours to reduce the risk of burn-in.
Pixel locations are slightly shifted periodically with several levels.
-
Screen Save & Logo Brightness Adjustment
Automatically dims the screen after two minutes of inactivity.
The monitor automatically detects static onscreen logos and reduces their brightness to correct for potential picture-quality issues.
-
Taskbar detection & Target mode
Dynamically detects the taskbar and reduces brightness around it to avoid burn-in.
Dims the entire screen, except for a selected pinned window, which maintains its current brightness setting.
-
Outer dimming control & Global dimming control
Automatically identifies and adjusts the brightest areas of the screen to reduce the risk of burn-in.
Dynamically adjusts the overall brightness of the display to reduce the risk of burn-in.
P.now(“premium-aplus-13-carousel-2”).execute(“init-pagination-carousel”, function(init) {
if (init) {
return;
}
P.register(“premium-aplus-13-carousel-2”, function() {
return function() {
P.when(“A”, “jQuery”, “a-carousel-framework”, “ready”).execute(“paginate-carousel”, function (A, $, framework) {
const ENTER_KEY_CODE = 13;
const ESCAPE_KEY_CODE = 27;
const LEFT_ARROW_KEY = 37;
const RIGHT_ARROW_KEY = 39;
const HOME_KEY = 36;
const END_KEY = 35;
var moduleId = “2”;
var carouselName = “premium-aplus-13-carousel-2”;
var paginationAction = “aplus-pagination-dot-action-” + moduleId + “-” + carouselName;
var paginationGroup = “#aplus-pagination-group-” + moduleId + “-” + carouselName;
/* If the carousel goes to a new page */
A.on(“a:carousel:”+carouselName+”:change:pageNumber”, function (data) {
A.$(paginationGroup+” .carousel-slider-circle”).removeClass(“aplus-carousel-active”).attr(‘aria-selected’, ‘false’).attr(‘tabindex’, -1)
.eq(data.newValue – 1).addClass(“aplus-carousel-active”).attr(‘aria-selected’, ‘true’).attr(‘tabindex’, 0);
});
function syncPaginationDotsWithCarouselPages(numPages) {
const parentElement = document.querySelector(paginationGroup);
if (parentElement && parentElement.children) {
const children = parentElement.children;
for (let i = 0; i = numPages) {
// If number of dots > num of pages, we should hide other dots
children[i].classList.add(‘aplus-pagination-dot–display-none’);
} else if (children[i].classList.contains(‘aplus-pagination-dot–display-none’)) {
// Reset display of dots if it was hidden before
children[i].classList.remove(‘aplus-pagination-dot–display-none’);
}
}
}
}
framework.onInit(carouselName, function (carousel) {
try {
var totalPages = carousel.getAttr(‘totalPages’);
syncPaginationDotsWithCarouselPages(totalPages);
/* Resize event handler to re-calculate the pagination dots count based on orientation */
window.addEventListener(‘resize’, function() {
carousel.resize();
totalPages = carousel.getAttr(‘totalPages’);
syncPaginationDotsWithCarouselPages(totalPages);
});
A.declarative(paginationAction, ‘click keydown’, function(event){
var isClick = event.type === ‘click’;
var isKeydown = event.type === ‘keydown’;
var isEnter = isKeydown && event.$event.keyCode === ENTER_KEY_CODE;
var isEsc = isKeydown && event.$event.keyCode === ESCAPE_KEY_CODE;
var isLeftArrow = isKeydown && event.$event.keyCode === LEFT_ARROW_KEY;
var isRightArrow = isKeydown && event.$event.keyCode === RIGHT_ARROW_KEY;
var isHome = isKeydown && event.$event.keyCode === HOME_KEY;
var isEnd = isKeydown && event.$event.keyCode === END_KEY;
if (isClick || isEnter) {
var data = event.data;
carousel.gotoPage(data.page);
} else if (isEsc) {
event.$target.blur();
} else if (isLeftArrow || isRightArrow || isHome || isEnd) {
event.$event.preventDefault();
const dots = A.$(paginationGroup + ” .carousel-slider-circle”);
const currentIndex = dots.index(event.$target);
let nextIndex;
if (isLeftArrow) {
nextIndex = currentIndex > 0 ? currentIndex – 1 : dots.length – 1;
} else if (isRightArrow) {
nextIndex = currentIndex < dots.length – 1 ? currentIndex + 1 : 0;
} else if (isHome) {
nextIndex = 0;
} else if (isEnd) {
nextIndex = dots.length – 1;
}
dots.eq(nextIndex).focus();
carousel.gotoPage(nextIndex + 1);
}
});
} catch (e) {
P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');
}
});
});
}
});
});
-
Aspect Ratio Control
For competitive gamers who are more familiar with smaller 1080p monitors, the XG32UCWMG can be set to replicate a 24.5-inch (esports mode) or 27-inch display, as well as other visual modes.
-
OLED Anti-Flicker
ROG-exclusive OLED Anti-Flicker technology offers three refresh rate ranges ― High, Mid, Off ― to reduce flicker during frame rate fluctuations and maintain an immersive gaming experience.
-
DisplayWidget Center
Take your monitor to the next level with DisplayWidget Center, a powerful monitor management software designed to help you optimize & personalize your display via a mouse.
-
Auto KVM
Level up streaming setups with the Auto KVM feature and seamlessly control two gaming devices with a single keyboard and mouse, providing a more effortless and integrated multi-devices experience.
-
Uniform brightness
When activated, the exclusive Uniform Brightness setting within the OSD menu decreases peak brightness to keep level consistent for better viewing, even when changing the size of bright white windows.
-
Smooth And Responsive
The XG32UCWMG features NVIDIA G-SYNC compatible and AMD FreeSync Premium Pro technology, ensuring super-smooth, tear-free visuals with low latency.
P.now(“premium-aplus-13-carousel-3”).execute(“init-pagination-carousel”, function(init) {
if (init) {
return;
}
P.register(“premium-aplus-13-carousel-3”, function() {
return function() {
P.when(“A”, “jQuery”, “a-carousel-framework”, “ready”).execute(“paginate-carousel”, function (A, $, framework) {
const ENTER_KEY_CODE = 13;
const ESCAPE_KEY_CODE = 27;
const LEFT_ARROW_KEY = 37;
const RIGHT_ARROW_KEY = 39;
const HOME_KEY = 36;
const END_KEY = 35;
var moduleId = “3”;
var carouselName = “premium-aplus-13-carousel-3”;
var paginationAction = “aplus-pagination-dot-action-” + moduleId + “-” + carouselName;
var paginationGroup = “#aplus-pagination-group-” + moduleId + “-” + carouselName;
/* If the carousel goes to a new page */
A.on(“a:carousel:”+carouselName+”:change:pageNumber”, function (data) {
A.$(paginationGroup+” .carousel-slider-circle”).removeClass(“aplus-carousel-active”).attr(‘aria-selected’, ‘false’).attr(‘tabindex’, -1)
.eq(data.newValue – 1).addClass(“aplus-carousel-active”).attr(‘aria-selected’, ‘true’).attr(‘tabindex’, 0);
});
function syncPaginationDotsWithCarouselPages(numPages) {
const parentElement = document.querySelector(paginationGroup);
if (parentElement && parentElement.children) {
const children = parentElement.children;
for (let i = 0; i = numPages) {
// If number of dots > num of pages, we should hide other dots
children[i].classList.add(‘aplus-pagination-dot–display-none’);
} else if (children[i].classList.contains(‘aplus-pagination-dot–display-none’)) {
// Reset display of dots if it was hidden before
children[i].classList.remove(‘aplus-pagination-dot–display-none’);
}
}
}
}
framework.onInit(carouselName, function (carousel) {
try {
var totalPages = carousel.getAttr(‘totalPages’);
syncPaginationDotsWithCarouselPages(totalPages);
/* Resize event handler to re-calculate the pagination dots count based on orientation */
window.addEventListener(‘resize’, function() {
carousel.resize();
totalPages = carousel.getAttr(‘totalPages’);
syncPaginationDotsWithCarouselPages(totalPages);
});
A.declarative(paginationAction, ‘click keydown’, function(event){
var isClick = event.type === ‘click’;
var isKeydown = event.type === ‘keydown’;
var isEnter = isKeydown && event.$event.keyCode === ENTER_KEY_CODE;
var isEsc = isKeydown && event.$event.keyCode === ESCAPE_KEY_CODE;
var isLeftArrow = isKeydown && event.$event.keyCode === LEFT_ARROW_KEY;
var isRightArrow = isKeydown && event.$event.keyCode === RIGHT_ARROW_KEY;
var isHome = isKeydown && event.$event.keyCode === HOME_KEY;
var isEnd = isKeydown && event.$event.keyCode === END_KEY;
if (isClick || isEnter) {
var data = event.data;
carousel.gotoPage(data.page);
} else if (isEsc) {
event.$target.blur();
} else if (isLeftArrow || isRightArrow || isHome || isEnd) {
event.$event.preventDefault();
const dots = A.$(paginationGroup + ” .carousel-slider-circle”);
const currentIndex = dots.index(event.$target);
let nextIndex;
if (isLeftArrow) {
nextIndex = currentIndex > 0 ? currentIndex – 1 : dots.length – 1;
} else if (isRightArrow) {
nextIndex = currentIndex < dots.length – 1 ? currentIndex + 1 : 0;
} else if (isHome) {
nextIndex = 0;
} else if (isEnd) {
nextIndex = dots.length – 1;
}
dots.eq(nextIndex).focus();
carousel.gotoPage(nextIndex + 1);
}
});
} catch (e) {
P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');
}
});
});
}
});
});
-
Compact and Ergonomic Design
The new ROG Strix OLED series monitors feature a new compact stand that’s 45% smaller than those found on previous-generation XG monitors, freeing up valuable desk space for a keyboard and mouse.
-
Extensive Connectivity
Extensive connectivity options such as DisplayPort 1.4 with Display Stream Compression (DSC), HDMI 2.1, and USB-C with 15-watt Power Delivery for a wide array of multimedia devices.
P.now(“premium-aplus-13-carousel-4”).execute(“init-pagination-carousel”, function(init) {
if (init) {
return;
}
P.register(“premium-aplus-13-carousel-4”, function() {
return function() {
P.when(“A”, “jQuery”, “a-carousel-framework”, “ready”).execute(“paginate-carousel”, function (A, $, framework) {
const ENTER_KEY_CODE = 13;
const ESCAPE_KEY_CODE = 27;
const LEFT_ARROW_KEY = 37;
const RIGHT_ARROW_KEY = 39;
const HOME_KEY = 36;
const END_KEY = 35;
var moduleId = “4”;
var carouselName = “premium-aplus-13-carousel-4”;
var paginationAction = “aplus-pagination-dot-action-” + moduleId + “-” + carouselName;
var paginationGroup = “#aplus-pagination-group-” + moduleId + “-” + carouselName;
/* If the carousel goes to a new page */
A.on(“a:carousel:”+carouselName+”:change:pageNumber”, function (data) {
A.$(paginationGroup+” .carousel-slider-circle”).removeClass(“aplus-carousel-active”).attr(‘aria-selected’, ‘false’).attr(‘tabindex’, -1)
.eq(data.newValue – 1).addClass(“aplus-carousel-active”).attr(‘aria-selected’, ‘true’).attr(‘tabindex’, 0);
});
function syncPaginationDotsWithCarouselPages(numPages) {
const parentElement = document.querySelector(paginationGroup);
if (parentElement && parentElement.children) {
const children = parentElement.children;
for (let i = 0; i = numPages) {
// If number of dots > num of pages, we should hide other dots
children[i].classList.add(‘aplus-pagination-dot–display-none’);
} else if (children[i].classList.contains(‘aplus-pagination-dot–display-none’)) {
// Reset display of dots if it was hidden before
children[i].classList.remove(‘aplus-pagination-dot–display-none’);
}
}
}
}
framework.onInit(carouselName, function (carousel) {
try {
var totalPages = carousel.getAttr(‘totalPages’);
syncPaginationDotsWithCarouselPages(totalPages);
/* Resize event handler to re-calculate the pagination dots count based on orientation */
window.addEventListener(‘resize’, function() {
carousel.resize();
totalPages = carousel.getAttr(‘totalPages’);
syncPaginationDotsWithCarouselPages(totalPages);
});
A.declarative(paginationAction, ‘click keydown’, function(event){
var isClick = event.type === ‘click’;
var isKeydown = event.type === ‘keydown’;
var isEnter = isKeydown && event.$event.keyCode === ENTER_KEY_CODE;
var isEsc = isKeydown && event.$event.keyCode === ESCAPE_KEY_CODE;
var isLeftArrow = isKeydown && event.$event.keyCode === LEFT_ARROW_KEY;
var isRightArrow = isKeydown && event.$event.keyCode === RIGHT_ARROW_KEY;
var isHome = isKeydown && event.$event.keyCode === HOME_KEY;
var isEnd = isKeydown && event.$event.keyCode === END_KEY;
if (isClick || isEnter) {
var data = event.data;
carousel.gotoPage(data.page);
} else if (isEsc) {
event.$target.blur();
} else if (isLeftArrow || isRightArrow || isHome || isEnd) {
event.$event.preventDefault();
const dots = A.$(paginationGroup + ” .carousel-slider-circle”);
const currentIndex = dots.index(event.$target);
let nextIndex;
if (isLeftArrow) {
nextIndex = currentIndex > 0 ? currentIndex – 1 : dots.length – 1;
} else if (isRightArrow) {
nextIndex = currentIndex < dots.length – 1 ? currentIndex + 1 : 0;
} else if (isHome) {
nextIndex = 0;
} else if (isEnd) {
nextIndex = dots.length – 1;
}
dots.eq(nextIndex).focus();
carousel.gotoPage(nextIndex + 1);
}
});
} catch (e) {
P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');
}
});
});
}
});
});
-
Play Smarter With AI Crosshair
Automatically changes the crosshair to a contrasting color to the background so it stands out for more accurate aim.
-
Play Smarter With AI Shadow Boost
Automatically enhances dark areas of the scene to make it easier to spot enemies hiding in dim areas of the map.
-
Play Smarter With AI Visual
Automatically detects what’s onscreen and adjusts to provide the best default or user-preset monitor settings through DisplayWidget Center.
P.now(“premium-aplus-13-carousel-5”).execute(“init-pagination-carousel”, function(init) {
if (init) {
return;
}
P.register(“premium-aplus-13-carousel-5”, function() {
return function() {
P.when(“A”, “jQuery”, “a-carousel-framework”, “ready”).execute(“paginate-carousel”, function (A, $, framework) {
const ENTER_KEY_CODE = 13;
const ESCAPE_KEY_CODE = 27;
const LEFT_ARROW_KEY = 37;
const RIGHT_ARROW_KEY = 39;
const HOME_KEY = 36;
const END_KEY = 35;
var moduleId = “5”;
var carouselName = “premium-aplus-13-carousel-5”;
var paginationAction = “aplus-pagination-dot-action-” + moduleId + “-” + carouselName;
var paginationGroup = “#aplus-pagination-group-” + moduleId + “-” + carouselName;
/* If the carousel goes to a new page */
A.on(“a:carousel:”+carouselName+”:change:pageNumber”, function (data) {
A.$(paginationGroup+” .carousel-slider-circle”).removeClass(“aplus-carousel-active”).attr(‘aria-selected’, ‘false’).attr(‘tabindex’, -1)
.eq(data.newValue – 1).addClass(“aplus-carousel-active”).attr(‘aria-selected’, ‘true’).attr(‘tabindex’, 0);
});
function syncPaginationDotsWithCarouselPages(numPages) {
const parentElement = document.querySelector(paginationGroup);
if (parentElement && parentElement.children) {
const children = parentElement.children;
for (let i = 0; i = numPages) {
// If number of dots > num of pages, we should hide other dots
children[i].classList.add(‘aplus-pagination-dot–display-none’);
} else if (children[i].classList.contains(‘aplus-pagination-dot–display-none’)) {
// Reset display of dots if it was hidden before
children[i].classList.remove(‘aplus-pagination-dot–display-none’);
}
}
}
}
framework.onInit(carouselName, function (carousel) {
try {
var totalPages = carousel.getAttr(‘totalPages’);
syncPaginationDotsWithCarouselPages(totalPages);
/* Resize event handler to re-calculate the pagination dots count based on orientation */
window.addEventListener(‘resize’, function() {
carousel.resize();
totalPages = carousel.getAttr(‘totalPages’);
syncPaginationDotsWithCarouselPages(totalPages);
});
A.declarative(paginationAction, ‘click keydown’, function(event){
var isClick = event.type === ‘click’;
var isKeydown = event.type === ‘keydown’;
var isEnter = isKeydown && event.$event.keyCode === ENTER_KEY_CODE;
var isEsc = isKeydown && event.$event.keyCode === ESCAPE_KEY_CODE;
var isLeftArrow = isKeydown && event.$event.keyCode === LEFT_ARROW_KEY;
var isRightArrow = isKeydown && event.$event.keyCode === RIGHT_ARROW_KEY;
var isHome = isKeydown && event.$event.keyCode === HOME_KEY;
var isEnd = isKeydown && event.$event.keyCode === END_KEY;
if (isClick || isEnter) {
var data = event.data;
carousel.gotoPage(data.page);
} else if (isEsc) {
event.$target.blur();
} else if (isLeftArrow || isRightArrow || isHome || isEnd) {
event.$event.preventDefault();
const dots = A.$(paginationGroup + ” .carousel-slider-circle”);
const currentIndex = dots.index(event.$target);
let nextIndex;
if (isLeftArrow) {
nextIndex = currentIndex > 0 ? currentIndex – 1 : dots.length – 1;
} else if (isRightArrow) {
nextIndex = currentIndex < dots.length – 1 ? currentIndex + 1 : 0;
} else if (isHome) {
nextIndex = 0;
} else if (isEnd) {
nextIndex = dots.length – 1;
}
dots.eq(nextIndex).focus();
carousel.gotoPage(nextIndex + 1);
}
});
} catch (e) {
P.log('Failed to init ' + carouselName + '. Error: ' + e.message, 'FATAL', 'AplusModuleResources');
}
});
});
}
});
});
Product Description
The ROG Strix OLED XG32UCWMG is a 32-inch 4K TrueBlack Glossy WOLED gaming monitor that offers supersharp visuals and boasts a versatile dual-mode feature that enables seamless switching between 4K@240Hz and FHD@480Hz gaming. Featuring the new Neo Proximity Sensor within the ASUS OLED Care Pro suite, the monitor can detect when the user is away and automatically transition to a black screen to guard against panel burn-in. Thanks to a compact stand, the XG32UCWMG takes up minimal desktop space. Plus, it offers users an extensive array of connectivity options, including DisplayPort™ 1.4 (DSC), HDMI® 2.1, and USB-C® with 15-watt Power Delivery.
#productDescription h3 {
margin: 0.75em 0px 0.375em -1px;
}










Reviews
There are no reviews yet.