跳到主要内容

OUR GROUP
색상반전 아이콘

反转颜色

화면 확대 아이콘

放大

화면 축소 아이콘

缩小

100

실감나는 전투의 매력에 흠뻑 빠지다

GLOBAL NO.1 FPS크로스파이어

크로스파이어는 중국, 브라질, 베트남에서 온라인 게임 1위를 차지하며 놀라운 글로벌 성과를 거두고 있습니다.

온라인 게임을 넘어 다양한
콘텐츠를 통해 더 많은 사람들에게 새로운 즐거움을 선사합니다.

 archive이미지
  • 800万人

    동시 접속자 수
    800만 명

  • 80个国家

    전 세계 80개국
    서비스

  • 11亿人

    온라인+모바일 유저
    11억 명

  • 147亿美元

    누적매출 118억 달러
    (2020.10 기준)

완벽한 연출력

실감나는 전투의 매력에
흠뻑 빠지다

‘큰 힘에는 큰 책임이 따른다.’ 전 세계 사람들에게 방어와 자선을 제공하기 위해 싸우는 국제적 용병주식 회사 Global Risk

억압받는 모든 사람들을 해방시키기 위해 투쟁하며 절대 멈추지 않는 단체 Black List

극강의 몰입감

다양한 특수 부대 컨셉의
캐릭터와 개성을 살린 무기

실존하는 특수부대와 독특한 컨셉의 신규 부대를 제공하여 게임의 재미를 한층 살려주는 것은 물론,

완벽한 밸런스를 기반으로 한 크로스파이어만의 개성을 살린 방대한 무기를 제공하여, 다양한 매치에서 최적의 무기를 사용할 수 있습니다.

풍성한 플레이

다양한 모드와 맵으로
풍성한 즐거움

풍부하고 다양한 110종 이상의 모드와 맵을 제공하여 유저들의 성향에 맞는 게임 플레이가 가능합니다.

특히 고스트 매치는 보이지 않는 상대와 전투를 펼치는 독특한 모드로써, 색다른 긴장감을 느낄 수 있습니다.

GO TO WEBSITE

INDEX

Soundtrack - Star Light Island

/* ========================================================= Game 페이지 키보드 포커스 흐름 패치 (ES5 즉시실행) ... ========================================================= */ (function () { // 페이지가 게임 상세가 아니면 종료 function $(sel, root) { return (root || document).querySelector(sel); } function $all(sel, root) { return (root || document).querySelectorAll(sel); } function ensureTabbable(el) { if (!el) return el; var n = el.nodeName.toLowerCase(); var native = (n === "a" && el.hasAttribute("href")) || n === "button" || n === "input" || n === "select" || n === "textarea"; if (!native && !el.hasAttribute("tabindex")) el.setAttribute("tabindex", "0"); return el; } function isGamePage() { return !!$(".game_nav_wrapper"); } if (!isGamePage()) return; // 공통 이동 function goSkip() { var s = getNodes().skipLink; if (s) { ensureTabbable(s); try { s.focus(); } catch (_) {} } } // 본문 루트 후보(gnb 스크립트가 포커스를 주는 대상과 동일 계열) function getContentRoot() { return ( document.querySelector("[data-scroll-container]") || document.querySelector(".locomotive") || document.querySelector(".locomotive_inner") || document.querySelector("#main") || document.querySelector("#content") || document.querySelector("main") || null ); } // 노드 캐시 function getNodes() { return { skipLink: $(".skip-nav a"), content: getContentRoot(), sound: $("#sound"), // game_sound 토글 대상 website: $(".website_anchor"), navName: $(".game_nav_name"), navList: $(".game_nav_list"), navWrapper: $(".game_nav"), navItems: $all(".game_nav_list .nav_list_item a"), infoWrap: $(".game_section_info"), infoLinks: $all(".game_section_info a[href]"), gameSound: $("#game_sound"), }; } function getNavFocusables() { var n = getNodes(); if (!n.navList) return []; return n.navList.querySelectorAll( 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])' ); } // nav 리스트 열고/닫기(높이 기반, game.js 호버 동작을 키보드로 재현) function openNavList() { var n = getNodes(); if (!n.navList) return; var prev = n.navList.style.height; n.navList.style.height = "auto"; var h = n.navList.getBoundingClientRect().height; n.navList.style.height = prev || "0px"; n.navList.style.height = h + "px"; } function closeNavList() { var n = getNodes(); if (n.navList) n.navList.style.height = "0px"; } // 1) 본문 루트에 포커스가 들어오면 → #sound로 강제 이관 (레이스 완전 차단) var redirectedOnceFlag = false; function moveFocusToSoundChain() { var n = getNodes(); var first = n.sound || n.website || n.navName; if (!first) return false; ensureTabbable(first); first.focus(); return document.activeElement === first; } document.addEventListener( "focusin", function (e) { var n = getNodes(); if (!n.content) return; if (e.target === n.content && !redirectedOnceFlag) { redirectedOnceFlag = true; setTimeout(function () { moveFocusToSoundChain(); setTimeout(function () { redirectedOnceFlag = false; }, 600); }, 0); } }, true ); var __soundClickGuard = false; function triggerSoundToggle() { var n = getNodes(); if (!n.sound || __soundClickGuard) return; __soundClickGuard = true; // game.js의 위임 클릭을 1회만 발생 if (typeof n.sound.click === "function") n.sound.click(); else if (window.jQuery) window.jQuery(n.sound).trigger("click"); // 아주 짧게 가드 유지 후 해제 (같은 키 입력으로 생길 수 있는 추가 click 무시) setTimeout(function () { __soundClickGuard = false; }, 50); } // 2) #sound → website_anchor → nav_name(열기) → nav_items 순회 function bindLinearFlow() { var n = getNodes(); if (n.gameSound) { ensureTabbable(n.gameSound); n.gameSound.addEventListener("keydown", function (e) { var isEnter = e.key === "Enter" || e.keyCode === 13; var isSpace = e.key === " " || e.key === "Spacebar" || e.keyCode === 32; if (isEnter || isSpace) { e.preventDefault(); e.stopPropagation(); triggerSoundToggle(); } }); } // sound (#sound) 에서 Enter/Space → 토글, Tab → website_anchor (없으면 nav_name) // (둘 다 없으면 info 첫 링크 → 없으면 skip-nav) if (n.sound) { ensureTabbable(n.sound); n.sound.addEventListener("keydown", function (e) { var isEnter = e.key === "Enter" || e.keyCode === 13; var isSpace = e.key === " " || e.key === "Spacebar" || e.keyCode === 32; if (isEnter || isSpace) { e.preventDefault(); e.stopPropagation(); triggerSoundToggle(); return; } if (e.key === "Tab" && !e.shiftKey) { var to = getNodes().website || getNodes().navName; if (to) { e.preventDefault(); ensureTabbable(to); to.focus(); } else { var info = getNodes().infoLinks; if (info && info.length) { e.preventDefault(); closeNavList(); ensureTabbable(info[0]); info[0].focus(); } else { // game_info 자체가 없으면 즉시 skip-nav e.preventDefault(); goSkip(); } } } }); } // website_anchor ↔ sound / nav_name if (n.website) { ensureTabbable(n.website); n.website.addEventListener("keydown", function (e) { if (e.key === "Tab" && !e.shiftKey) { var to = getNodes().navName; if (to) { e.preventDefault(); openNavList(); ensureTabbable(to); to.focus(); } } else if (e.key === "Tab" && e.shiftKey) { var back = getNodes().sound; if (back) { e.preventDefault(); ensureTabbable(back); back.focus(); } } }); } // nav_name 포커스 시 목록 열기, Tab → 첫 nav item if (n.navName) { ensureTabbable(n.navName); n.navName.addEventListener("focus", function () { openNavList(); }); n.navName.addEventListener("keydown", function (e) { if (e.key === "Enter" || e.keyCode === 13) openNavList(); if (e.key === "Tab" && !e.shiftKey) { var items = getNodes().navItems; if (items && items.length) { e.preventDefault(); ensureTabbable(items[0]); items[0].focus(); } } else if (e.key === "Tab" && e.shiftKey) { var back = getNodes().website || getNodes().sound; if (back) { e.preventDefault(); closeNavList(); ensureTabbable(back); back.focus(); } } }); } // nav items: 첫 아이템 Shift+Tab ← nav_name, 마지막 → info 첫 링크 (없으면 skip-nav) var items = n.navItems; if (items && items.length) { var first = items[0]; var last = items[items.length - 1]; first.addEventListener("keydown", function (e) { if (e.key === "Tab" && e.shiftKey) { e.preventDefault(); var back = getNodes().navName || getNodes().website || getNodes().sound; if (back) { ensureTabbable(back); back.focus(); } } }); last.addEventListener("keydown", function (e) { if (e.key === "Tab" && !e.shiftKey) { var info = getNodes().infoLinks; if (info && info.length) { e.preventDefault(); closeNavList(); ensureTabbable(info[0]); info[0].focus(); } else { // nav 마지막인데 game_info 없으면 skip-nav e.preventDefault(); closeNavList(); goSkip(); } } }); } // 추가 보강: 네비 내부 '마지막 포커스'에서 Tab 시 강제 탈출 if (n.navList) { n.navList.addEventListener("keydown", function (e) { if (e.key === "Tab" && !e.shiftKey) { var navFocusables = getNavFocusables(); if ( navFocusables.length && document.activeElement === navFocusables[navFocusables.length - 1] ) { var infoFirst = getNodes().infoLinks && getNodes().infoLinks[0]; if (infoFirst) { e.preventDefault(); closeNavList(); infoFirst.focus(); } else { e.preventDefault(); closeNavList(); goSkip(); } } } }); } } // 3) game_info a들 순회 후 → skip-nav 복귀 function bindInfoFlow() { var n = getNodes(); var links = n.infoLinks; // game_info에 링크가 없으면 바로 skip-nav로 if (!links || !links.length) { goSkip(); return; } // 첫 링크 Shift+Tab → nav_items 마지막 links[0].addEventListener("keydown", function (e) { if (e.key === "Tab" && e.shiftKey) { var items = getNodes().navItems; if (items && items.length) { e.preventDefault(); ensureTabbable(items[items.length - 1]); items[items.length - 1].focus(); } } }); // 마지막 링크 Tab → skip-nav links[links.length - 1].addEventListener("keydown", function (e) { if (e.key === "Tab" && !e.shiftKey) { e.preventDefault(); goSkip(); } }); } // DOM 변경 대비: 네비/정보 영역에 변경이 생기면 재바인딩 var _navObserver, _infoObserver; function observeAndRebind() { var n = getNodes(); if (n.navList && !_navObserver) { _navObserver = new MutationObserver(function () { bindLinearFlow(); }); _navObserver.observe(n.navList, { childList: true, subtree: true, attributes: false, }); } if (n.infoWrap && !_infoObserver) { _infoObserver = new MutationObserver(function () { bindInfoFlow(); }); _infoObserver.observe(n.infoWrap, { childList: true, subtree: true, attributes: false, }); } } // 4) DOM 준비 후 바인딩 function ready(fn) { if (document.readyState === "loading") document.addEventListener("DOMContentLoaded", fn); else setTimeout(fn, 0); } ready(function () { closeNavList(); bindLinearFlow(); bindInfoFlow(); observeAndRebind(); }); })(); -->