SmorgonFC VS FCTorpedoZhodino
2025.11.18 19:00
Liga Champions UEFA
La Liga
Liga Super Tiongkok
Ligue 1
Fußball-Bundesliga
Serie A
Liga Profesional Saudi
Liga Champions AFC
AFC Champions League 2
Piala FA Tiongkok
Liga J1 Jepang
A-League Australia
K League 1
MLS Amerika Serikat
Liga Satu Tiongkok
Liga Dua Tiongkok
Liga Eropa UEFA
Asosiasi Basket Nasional
Asosiasi Bola Basket Tiongkok
Asosiasi Bola Basket Nasional Wanita
Liga G NBA
CBA Club Cup
Asosiasi Atletik Perguruan Tinggi Nasional
Piala Antarbenua FIBA

${`${data[i].time.getMonth() + 1}`.padStart(2, "0")}-${`${data[i].time.getDate()}`.padStart(2, "0")}
`; $el.setAttribute("data-date", String(data[i].time.getTime())); date.querySelector(".date_wrapper").appendChild($el); } date_event.dispatchEvent(new Event("anchor")); date_event.dispatchEvent(new Event("update")); }); date_event.addEventListener("update", async () => { const $controller = new AbortController(); const now = new Date().setHours(12, 0, 0, 0); let $active = data.map((v) => v.time.getTime()).reduce((p, c) => (Math.max(now, p) - Math.min(now, p)) > (Math.max(now, c) - Math.min(now, c)) ? c : p, 0); let $competition = 0; let $sport = 0; let $keyword = ""; if (tabs) { const tabs_item = tabs?.querySelectorAll(".tabs_item"); for (let i = tabs_item.length - 1; i >= 0; i--) { if (tabs_item[i].classList.contains("is_active")) { $competition = Number(tabs_item[i].getAttribute("data-id")); $sport = Number(tabs_item[i].getAttribute("data-type")); $keyword = String(tabs_item[i].getAttribute("data-keyword")).toLowerCase(); } } } if (date) { const date_item = date.querySelectorAll(".date_item"); for (let i = date_item.length - 1; i >= 0; i--) { if (date_item[i].classList.contains("is_active") && data.map((v) => v.time.getTime()).includes(Number(date_item[i].getAttribute("data-date")))) { $active = Number(date_item[i].getAttribute("data-date")); } } } const list_wrapper_item = document.getElementById("list").querySelector(".list_wrapper"); for (let i = list_wrapper_item.childNodes.length - 1; i >= 0; i--) list_wrapper_item.childNodes[i].parentNode.removeChild(list_wrapper_item.childNodes[i]); controller.abort(); controller = $controller; while (loading) { await new Promise((resolve) => window.requestAnimationFrame(resolve)); } const item = $("#list > .list_wrapper").children(`[data-date="${$(".date_item.is_active", date).data("date")}"]`); if (item.length) { const top = item.offset().top; document.removeEventListener("scroll", update_scroll); const scrollEnd = () => { if (window.pageYOffset === top) { window.removeEventListener("scroll", scrollEnd); document.addEventListener("scroll", update_scroll); } } window.addEventListener("scroll", scrollEnd); window.scrollTo({ top, behavior: "smooth" }); } const list_data = data.filter((v) => v.time.getTime() === $active).map((v) => { const list = v.MatchLiveList.filter(({ sportId, competitionId }) => (($competition === 0 || competitionId === $competition) && ($sport === 0 || sportId === $sport))); let end = 0 // const is_current_day = v.time.toDateString() === new Date().toDateString(); if (list.length) { const max = Math.min(...list.map((v) => v.matchTs.getTime())) + (3.6e+6 * 4); while (list[end] && list[end].matchTs.getTime() { const $controller = new AbortController(); const now = new Date().setHours(12, 0, 0, 0); let $active = data.map((v) => v.time.getTime()).reduce((p, c) => (Math.max(now, p) - Math.min(now, p)) > (Math.max(now, c) - Math.min(now, c)) ? c : p, 0); let $competition = 0; let $sport = 0; let $keyword = ""; if (tabs) { const tabs_item = tabs?.querySelectorAll(".tabs_item"); for (let i = tabs_item.length - 1; i >= 0; i--) { if (tabs_item[i].classList.contains("is_active")) { $competition = Number(tabs_item[i].getAttribute("data-id")); $sport = Number(tabs_item[i].getAttribute("data-type")); $keyword = String(tabs_item[i].getAttribute("data-keyword")).toLowerCase(); } } } if (date) { const date_item = date.querySelectorAll(".date_item"); for (let i = date_item.length - 1; i >= 0; i--) { if (date_item[i].classList.contains("is_active") && data.map((v) => v.time.getTime()).includes(Number(date_item[i].getAttribute("data-date")))) { $active = Number(date_item[i].getAttribute("data-date")); } } } const list_wrapper_item = document.getElementById("list").querySelector(".list_wrapper"); for (let i = list_wrapper_item.childNodes.length - 1; i >= 0; i--) list_wrapper_item.childNodes[i].parentNode.removeChild(list_wrapper_item.childNodes[i]); controller.abort(); controller = $controller; while (loading) { await new Promise((resolve) => window.requestAnimationFrame(resolve)); } const list_data = data.filter((v) => v.time.getTime() === $active).map((v, i) => { const list = v.MatchLiveList.filter(({ sportId, competitionId }) => (($competition === 0 || competitionId === $competition) && ($sport === 0 || sportId === $sport))); return { ...v, MatchLiveList: list.slice(0, detail[i]), length: list.length } }); await update($controller, list_data); }); /**/ $.ajax({ method: "GET", url: "/getMatchListJsonp?days=7", dataType: "json", }).done(({ matchLiveList }) => { const map = new Map(); const weekdays = ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu']; for (let i = 0; i { const time = new Date(k); return { weekday: weekdays[time.getDay()], time, MatchLiveList: v } }) ); tabs_event.dispatchEvent(new Event("update")); }) /**/ });
Liga Utama Inggris
Serie A
Ligue 1
Fußball-Bundesliga
La Liga
Arsenal11/3/236
ManchesterCity11/1/434
AstonVilla10/3/333
Chelsea8/4/428
Joe Murphy7/5/426
ManchesterUnited7/5/426
Liverpool8/2/626
Sunderland7/5/426
Everton7/3/624
Dennis Grote6/5/523
TottenhamHotspur6/4/622
NewcastleUnited6/4/622
BournemouthAFC5/6/521
Fulham6/2/820
Brentford6/2/820
NottinghamForest5/3/818
LeedsUnited4/4/816
WestHamUnited3/4/913
Burnley3/1/1210
WolverhamptonWanderers0/2/142
Asosiasi Basket Nasional
Asosiasi Bola Basket Tiongkok
Netherlands2/00%
Senegal2/10%
Ecuador1/10%
Qatar0/30%