<!DOCTYPE html>
<html lang="zh-Hant-HK">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="icon" type="image/x-icon" href="/favicon.ico">
  <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png">
  <link rel="icon" type="image/png" sizes="192x192" href="/favicon-192.png">
  <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">

  <script async src="https://www.googletagmanager.com/gtag/js?id=G-Z96N8HQGP4"></script>
  <script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','G-Z96N8HQGP4');</script>
  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-WM32S7LZ');</script>

  <title>NBA傳奇教頭艾德曼79歲仙遊 昔日國王華麗進攻成絕響 | BDUK 攻略中心</title>
  <meta name="description" content="NBA傳奇教練里克·艾德曼（Rick Adelman）今日以79歲高齡辭世，這位曾執教沙加緬度國王隊的教頭，以其獨樹一幟的華麗進攻戰術風靡聯盟，為籃壇留下寶貴遺產。">
  <link rel="canonical" href="https://businessdirectory-uk.com/blog/2026-06-03-nba-legend-coach-rick-adelman-passes-away.html">
  <meta property="og:type" content="article">
  <meta property="og:title" content="NBA傳奇教頭艾德曼79歲仙遊 昔日國王華麗進攻成絕響">
  <meta property="og:description" content="NBA傳奇教練里克·艾德曼（Rick Adelman）今日以79歲高齡辭世，這位曾執教沙加緬度國王隊的教頭，以其獨樹一幟的華麗進攻戰術風靡聯盟，為籃壇留下寶貴遺產。">
  <meta property="og:url" content="https://businessdirectory-uk.com/blog/2026-06-03-nba-legend-coach-rick-adelman-passes-away.html">
  <meta property="og:image" content="https://images.pexels.com/photos/35120675/pexels-photo-35120675.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940">
  <meta property="og:locale" content="zh_HK">
  <meta property="og:site_name" content="BDUK">
  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:title" content="NBA傳奇教頭艾德曼79歲仙遊 昔日國王華麗進攻成絕響">
  <meta name="twitter:description" content="NBA傳奇教練里克·艾德曼（Rick Adelman）今日以79歲高齡辭世，這位曾執教沙加緬度國王隊的教頭，以其獨樹一幟的華麗進攻戰術風靡聯盟，為籃壇留下寶貴遺產。">
  <meta name="twitter:image" content="https://images.pexels.com/photos/35120675/pexels-photo-35120675.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940">
  <meta property="article:published_time" content="2026-06-03">
  <meta property="article:modified_time" content="2026-06-03">
  <meta property="article:section" content="體育資訊">

  <script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "BlogPosting",
        "headline": "NBA傳奇教頭艾德曼79歲仙遊 昔日國王華麗進攻成絕響",
        "datePublished": "2026-06-03",
        "dateModified": "2026-06-03",
        "articleSection": "體育資訊",
        "mainEntityOfPage": "https://businessdirectory-uk.com/blog/2026-06-03-nba-legend-coach-rick-adelman-passes-away.html",
        "author": {
          "@type": "Person",
          "@id": "https://businessdirectory-uk.com/about.html#bduk-editor",
          "name": "BDUK 編輯部"
        },
        "publisher": {
          "@type": "Organization",
          "@id": "https://businessdirectory-uk.com/#organization",
          "name": "BDUK",
          "url": "https://businessdirectory-uk.com/",
          "logo": {"@type": "ImageObject", "url": "https://businessdirectory-uk.com/LOGO.png"}
        },
        "description": "NBA傳奇教練里克·艾德曼（Rick Adelman）今日以79歲高齡辭世，這位曾執教沙加緬度國王隊的教頭，以其獨樹一幟的華麗進攻戰術風靡聯盟，為籃壇留下寶貴遺產。",
        "url": "https://businessdirectory-uk.com/blog/2026-06-03-nba-legend-coach-rick-adelman-passes-away.html",
        "inLanguage": "zh-Hant-HK",
        "image": "https://images.pexels.com/photos/35120675/pexels-photo-35120675.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940"
      },
      {
        "@type": "FAQPage",
        "mainEntity": [{"@type":"Question","name":"里克·艾德曼（Rick Adelman）是誰？","acceptedAnswer":{"@type":"Answer","text":"里克·艾德曼是一位已故的美國職業籃球教練，以其在NBA執教期間，特別是執教沙加緬度國王隊時，所採用的華麗進攻戰術而聞名。"}},{"@type":"Question","name":"艾德曼教練的執教生涯有何亮點？","acceptedAnswer":{"@type":"Answer","text":"艾德曼教練的亮點包括他將沙加緬度國王隊打造成一支進攻華麗、節奏明快的球隊，以及他多次帶領不同球隊進入NBA季後賽，展現了他卓越的戰術佈署能力。"}},{"@type":"Question","name":"艾德曼教練對NBA的影響是什麼？","acceptedAnswer":{"@type":"Answer","text":"他對NBA的影響在於他推廣了觀賞性極高的進攻籃球，其戰術體系和對比賽的理解，為聯盟注入了新的活力，並啟發了後來的教練和球員。"}}]
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {"@type": "ListItem", "position": 1, "name": "首頁", "item": "https://businessdirectory-uk.com/"},
          {"@type": "ListItem", "position": 2, "name": "攻略中心", "item": "https://businessdirectory-uk.com/blog.html"},
          {"@type": "ListItem", "position": 3, "name": "NBA傳奇教頭艾德曼79歲仙遊 昔日國王華麗進攻成絕響", "item": "https://businessdirectory-uk.com/blog/2026-06-03-nba-legend-coach-rick-adelman-passes-away.html"}
        ]
      }
    ]
  }
  </script>

  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@700;900&display=swap" rel="stylesheet">
  <style>
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body { font-family: -apple-system,'PingFang HK','Noto Sans TC','Microsoft JhengHei',sans-serif; background: #ffffff; color: #0f172a; line-height: 1.7; }
    :root {
      --cyan: #0891b2; --cyan-dark: #0e7490; --cyan-light: #22d3ee; --cyan-ultra: #67e8f9;
      --bg: #ffffff; --bg-alt: #f0f9ff; --bg-dark: #0c1a2e; --bg-dark2: #0f2744;
      --text: #0f172a; --text-muted: #64748b; --border: #bae6fd;
    }
    a { color: var(--cyan); text-decoration: none; }
    a:hover { color: var(--cyan-dark); }
    img { max-width: 100%; height: auto; display: block; }

    /* HEADER */
    .site-header { background: linear-gradient(90deg,#0c1a2e 0%,#0f2744 100%); border-bottom: 2px solid #0891b2; padding: 12px 20px; display: flex; align-items: center; justify-content: space-between; gap: 10px; position: sticky; top: 0; z-index: 200; }
    .header-nav-a { display: inline-flex; align-items: center; font-size: 13px; font-weight: 700; color: rgba(255,255,255,.75); text-decoration: none; padding: 7px 14px; border-radius: 20px; border: 1px solid rgba(255,255,255,.2); white-space: nowrap; transition: color .2s, border-color .2s; }
    .header-nav-a:hover, .header-nav-a.active { color: #67e8f9; border-color: #22d3ee; }
    .header-nav-group { flex: 1; display: flex; gap: 6px; align-items: center; overflow-x: auto; scrollbar-width: none; padding: 0 4px; }
    .header-nav-group::-webkit-scrollbar { display: none; }
    .btn-sm { background: #0891b2; color: #fff; font-size: 13px; font-weight: 900; padding: 10px 18px; border-radius: 50px; text-decoration: none; white-space: nowrap; flex-shrink: 0; border: 2px solid rgba(255,255,255,.2); box-shadow: 0 4px 16px rgba(8,145,178,.28); transition: box-shadow .2s, transform .15s; }
    .btn-sm:hover { transform: scale(1.03); box-shadow: 0 6px 24px rgba(8,145,178,.4); color: #fff; }
    .hamburger-btn { display: none; flex-direction: column; justify-content: center; align-items: center; gap: 5px; width: 40px; height: 40px; background: none; border: none; cursor: pointer; padding: 9px 8px; flex-shrink: 0; }
    .ham-line { display: block; width: 22px; height: 2px; background: rgba(255,255,255,.85); border-radius: 2px; transition: transform .22s, opacity .15s; transform-origin: center; }
    .hamburger-btn.open .ham-line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .hamburger-btn.open .ham-line:nth-child(2) { opacity: 0; }
    .hamburger-btn.open .ham-line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
    @media(max-width:639px) { .hamburger-btn { display: flex; } .header-nav-group { display: none !important; } }
    .mobile-menu { position: fixed; top: 63px; left: 0; right: 0; background: #0f2744; border-bottom: 2px solid #0891b2; z-index: 198; padding: 6px 0 18px; transform: translateY(-10px); opacity: 0; pointer-events: none; transition: transform .22s, opacity .18s; }
    .mobile-menu.open { transform: translateY(0); opacity: 1; pointer-events: all; }
    .mobile-menu-item { display: block; padding: 14px 24px; font-size: 15px; font-weight: 600; color: rgba(255,255,255,.8); text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.06); transition: color .15s, background .15s; }
    .mobile-menu-item:hover { color: #67e8f9; background: rgba(8,145,178,.1); }
    .mobile-menu-cta-wrap { padding: 14px 20px 0; }
    .mobile-menu-cta { display: block; background: #0891b2; color: #fff; text-align: center; padding: 15px; border-radius: 12px; font-weight: 800; font-size: 17px; text-decoration: none; }

    /* ARTICLE LAYOUT */
    .article-wrap { max-width: 820px; margin: 0 auto; padding: 40px 20px 80px; }
    .breadcrumb { font-size: 12px; color: var(--text-muted); margin-bottom: 28px; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
    .breadcrumb a { color: var(--text-muted); }
    .breadcrumb a:hover { color: var(--cyan); }
    .breadcrumb-sep { margin: 0 2px; }
    .cat-badge { display: inline-block; background: rgba(8,145,178,.12); color: var(--cyan); font-size: 11px; font-weight: 700; padding: 3px 12px; border-radius: 20px; border: 1px solid rgba(8,145,178,.25); margin-bottom: 16px; }
    .article-h1 { font-family: 'Barlow Condensed', sans-serif; font-size: clamp(26px, 5vw, 42px); font-weight: 900; color: #0f172a; line-height: 1.15; margin-bottom: 16px; text-transform: uppercase; }
    .article-byline { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 13px; color: var(--text-muted); margin-bottom: 24px; }
    .article-byline strong { color: #0f172a; }
    .article-byline .sep { color: #cbd5e1; }
    .article-hero { width: 100%; border-radius: 16px; max-height: 420px; object-fit: cover; margin-bottom: 32px; }
    .article-body { font-size: 16px; line-height: 1.8; color: #1e293b; }
    .article-body h2 { font-size: 22px; font-weight: 800; color: #0f172a; margin: 32px 0 12px; padding-bottom: 8px; border-bottom: 2px solid #bae6fd; }
    .article-body h3 { font-size: 18px; font-weight: 700; color: #0f172a; margin: 24px 0 10px; }
    .article-body p { margin-bottom: 16px; }
    .article-body ul, .article-body ol { margin: 12px 0 16px 20px; }
    .article-body li { margin-bottom: 6px; }
    .article-body strong { color: #0f172a; }
    .article-body a { color: var(--cyan); }
    .article-body blockquote { border-left: 3px solid var(--cyan); background: #f0f9ff; padding: 14px 18px; margin: 20px 0; border-radius: 0 10px 10px 0; font-style: italic; color: #334155; }

    /* FAQ */
    .faq-section { margin-top: 48px; padding-top: 32px; border-top: 2px solid #bae6fd; }
    .faq-title { font-size: 20px; font-weight: 800; color: #0f172a; margin-bottom: 20px; }
    .faq-item { border: 1px solid #bae6fd; border-radius: 12px; margin-bottom: 10px; overflow: hidden; }
    .faq-q { font-size: 15px; font-weight: 700; color: #0f172a; padding: 16px 20px; cursor: pointer; display: flex; justify-content: space-between; align-items: center; background: #f8fbff; transition: background .15s; }
    .faq-q:hover { background: #e0f2fe; }
    .faq-q::after { content: '+'; font-size: 20px; color: var(--cyan); flex-shrink: 0; margin-left: 12px; transition: transform .2s; }
    .faq-item.open .faq-q::after { transform: rotate(45deg); }
    .faq-a { display: none; padding: 0 20px 16px; font-size: 14px; color: #334155; line-height: 1.7; }
    .faq-item.open .faq-a { display: block; }

    /* CTA */
    .cta-box { background: linear-gradient(135deg,#0c1a2e 0%,#0f2744 100%); border-radius: 20px; padding: 40px 32px; text-align: center; margin-top: 48px; }
    .cta-box h2 { font-family: 'Barlow Condensed', sans-serif; font-size: clamp(22px, 4vw, 36px); font-weight: 900; color: #fff; text-transform: uppercase; margin-bottom: 10px; }
    .cta-box p { font-size: 14px; color: rgba(255,255,255,.7); margin-bottom: 24px; }
    .btn-cta { display: inline-block; background: #0891b2; color: #fff; font-size: 16px; font-weight: 800; padding: 14px 32px; border-radius: 50px; text-decoration: none; box-shadow: 0 4px 20px rgba(8,145,178,.4); transition: transform .15s, box-shadow .15s; }
    .btn-cta:hover { transform: scale(1.04); box-shadow: 0 8px 32px rgba(8,145,178,.5); color: #fff; }

    /* FOOTER */
    .site-footer { background: linear-gradient(155deg,#071525 0%,#0c1a2e 100%); padding: 48px 24px 32px; }
    .footer-inner { max-width: 900px; margin: 0 auto; }
    .footer-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 32px; margin-bottom: 36px; }
    @media(max-width:600px) { .footer-grid { grid-template-columns: 1fr; gap: 24px; } }
    .footer-brand-name { font-family: 'Barlow Condensed', sans-serif; font-size: 28px; font-weight: 900; color: #67e8f9; margin-bottom: 10px; text-transform: uppercase; }
    .footer-tagline { font-size: 12px; color: rgba(255,255,255,.4); line-height: 1.6; }
    .footer-col-title { font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #67e8f9; margin-bottom: 14px; }
    .footer-links { list-style: none; display: flex; flex-direction: column; gap: 8px; }
    .footer-links li a { font-size: 13px; color: rgba(255,255,255,.4); transition: color .2s; }
    .footer-links li a:hover { color: #67e8f9; }
    .footer-divider { border: none; border-top: 1px solid rgba(255,255,255,.07); margin: 0 0 20px; }
    .footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; font-size: 11px; color: rgba(255,255,255,.3); }
    .footer-bottom a { color: rgba(255,255,255,.3); margin: 0 6px; }
    .footer-bottom a:hover { color: rgba(255,255,255,.6); }
  </style>
</head>
<body>
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WM32S7LZ" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>

<header class="site-header">
  <a href="/index.html" style="display:inline-flex;align-items:center;text-decoration:none;flex-shrink:0;">
    <img src="/LOGO.png" alt="BDUK" style="height:40px;width:auto;max-width:140px;object-fit:contain;" onerror="this.style.display='none'">
  </a>
  <nav class="header-nav-group" aria-label="攻略分類">
    <a href="/blog.html" class="header-nav-a active">攻略中心</a>
    <a href="/blog.html" class="header-nav-a">優惠資訊</a>
    <a href="/guides.html" class="header-nav-a">入門攻略</a>
    <a href="/help.html" class="header-nav-a">幫助中心</a>
    <a href="/about.html" class="header-nav-a">關於我們</a>
  </nav>
  <div style="display:flex;align-items:center;gap:8px;flex-shrink:0;">
    <a href="https://lokguhk.com?p=998307" class="btn-sm" target="_blank" rel="noopener sponsored">領取好禮 🎁</a>
    <button class="hamburger-btn" id="hamburgerBtn" aria-label="選單" aria-expanded="false">
      <span class="ham-line"></span><span class="ham-line"></span><span class="ham-line"></span>
    </button>
  </div>
</header>
<div class="mobile-menu" id="mobileMenu">
  <a href="/blog.html" class="mobile-menu-item">攻略中心</a>
  <a href="/blog.html" class="mobile-menu-item">優惠資訊</a>
  <a href="/guides.html" class="mobile-menu-item">入門攻略</a>
  <a href="/help.html" class="mobile-menu-item">幫助中心</a>
  <a href="/about.html" class="mobile-menu-item">關於我們</a>
  <div class="mobile-menu-cta-wrap">
    <a href="https://lokguhk.com?p=998307" class="mobile-menu-cta" target="_blank" rel="noopener sponsored">立即領取新會員好禮</a>
  </div>
</div>

<main>
  <div class="article-wrap">

    <nav class="breadcrumb" aria-label="導覽路徑">
      <a href="/">首頁</a>
      <span class="breadcrumb-sep">›</span>
      <a href="/blog.html">攻略中心</a>
      <span class="breadcrumb-sep">›</span>
      <span>NBA傳奇教頭艾德曼79歲仙遊 昔日國王華麗進攻成絕響</span>
    </nav>

    <article>
      <header>
        <div class="cat-badge">體育資訊</div>
        <h1 class="article-h1">NBA傳奇教頭艾德曼79歲仙遊 昔日國王華麗進攻成絕響</h1>
        <div class="article-byline">
          <strong>BDUK 編輯部</strong>
          <span class="sep">·</span>
          <time datetime="2026-06-03">2026-06-03</time>
          <span class="sep">·</span>
          <span>閱讀約 4 分鐘</span>
        </div>
      </header>

      <img class="article-hero" src="https://images.pexels.com/photos/35120675/pexels-photo-35120675.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940" alt="NBA傳奇教頭艾德曼79歲仙遊 昔日國王華麗進攻成絕響" loading="eager" onerror="this.style.display='none'">

      <div class="article-body">
        <p>NBA籃壇今日傳來令人扼腕的消息，被譽為「華麗進攻大師」的傳奇教練里克·艾德曼（Rick Adelman）於今日以79歲高齡辭世。艾德曼教練的離世，標誌著一個時代的結束，他獨樹一幟的執教風格和為聯盟帶來的觀賞性，至今仍為無數球迷津津樂道。</p><p>艾德曼教練的職業生涯橫跨數十年，其中最為人稱道的，莫過於他在21世紀初執教沙加緬度國王隊（Sacramento Kings）的輝煌時期。當時的國王隊，在他的調教下，打出了令人賞心悅目的「快打旋風」，以流暢的傳導、快速的轉換進攻和精準的投射，席捲了整個NBA。這支球隊的比賽，彷彿是一場籃球藝術的展現，每一次進攻都充滿了創意和驚喜，讓當時的聯盟為之一亮，也為廣大球迷帶來了無盡的視覺享受。</p><p>在香港，艾德曼教練和他的國王隊同樣擁有龐大的粉絲群。許多本地的籃球迷，當年都是透過電視轉播，緊隨國王隊的比賽步伐。那支由克里斯·韋伯（Chris Webber）、佩賈·史托亞科維奇（Peja Stojaković）和麥克·畢比（Mike Bibby）等球星領軍的國王隊，在艾德曼的戰術體系下，將進攻籃球的魅力發揮得淋漓盡致。他們的比賽節奏明快，球員之間的默契配合，以及各種眼花繚亂的進攻套路，都讓香港球迷看得如癡如醉。許多年輕一輩的球員，更是將這支國王隊視為學習的榜樣，他們的進攻哲學，也對本地籃球的發展產生了一定的影響。</p><p>艾德曼教練的執教理念，強調團隊合作和球員的個人發揮，他善於發掘球員的潛力，並將他們融入到一個高效的體系之中。他對比賽的深刻理解，以及不斷創新的戰術思維，讓他能夠在競爭激烈的NBA中脫穎而出。除了國王隊，他也曾執教過波特蘭拓荒者隊（Portland Trail Blazers）、休士頓火箭隊（Houston Rockets）和沙加緬度國王隊（Sacramento Kings）等球隊，並帶領這些球隊取得了不俗的成績，多次闖入季後賽，展現了他作為一名頂級教練的實力。</p><p>艾德曼教練的離世，不僅是NBA的損失，更是整個籃球界的遺憾。他的執教生涯，為我們留下了無數經典的比賽和難忘的回憶。他所開創的華麗進攻風格，至今仍被許多球隊所借鑒和模仿。他的傳奇，將會繼續在籃球界流傳，激勵著一代又一代的籃球人。</p><p>據悉，艾德曼教練近年來身體狀況一直欠佳，但即使如此，他對籃球的熱愛從未減退。他的離世，也讓許多曾經與他共事過的球員和教練表達了深切的哀悼。他的名字，將永遠被載入NBA的史冊，成為一位偉大的傳奇教練。</p>
      </div>

      <div class="faq-section" id="faq-section" style="display:none;">
        <h2 class="faq-title">常見問題</h2>
        <div id="faq-list"></div>
      </div>

      <div class="cta-box">
        <h2>立即體驗頂級娛樂平台</h2>
        <p>新會員專屬好禮，秒速到帳，港澳正規平台保障，立即領取限時優惠。</p>
        <a href="https://lokguhk.com?p=998307" class="btn-cta" target="_blank" rel="noopener sponsored">立即領取好禮</a>
      </div>
    </article>

  </div>
</main>

<footer class="site-footer">
  <div class="footer-inner">
    <div class="footer-grid">
      <div>
        <div class="footer-brand-name">BDUK</div>
        <p class="footer-tagline">全港最完整娛樂平台攻略庫，涵蓋入款提款教學、優惠攻略及體育資訊。</p>
      </div>
      <div>
        <div class="footer-col-title">內容導覽</div>
        <ul class="footer-links">
          <li><a href="/blog.html">攻略中心</a></li>
          <li><a href="/guides.html">入門攻略</a></li>
          <li><a href="/help.html">幫助中心</a></li>
          <li><a href="/about.html">關於我們</a></li>
        </ul>
      </div>
      <div>
        <div class="footer-col-title">法律聲明</div>
        <ul class="footer-links">
          <li><a href="/privacy.html">私隱政策</a></li>
          <li><a href="/terms.html">使用條款</a></li>
        </ul>
      </div>
    </div>
    <hr class="footer-divider">
    <div class="footer-bottom">
      <span>© <span id="footer-year">2026</span> BDUK. 所有內容僅供參考，請負責任地進行娛樂活動。18+。</span>
      <span>
        <a href="/privacy.html">私隱政策</a>
        <a href="/terms.html">使用條款</a>
      </span>
    </div>
  </div>
</footer>

<script>
(function(){
  var FAQData = [{"@type":"Question","name":"里克·艾德曼（Rick Adelman）是誰？","acceptedAnswer":{"@type":"Answer","text":"里克·艾德曼是一位已故的美國職業籃球教練，以其在NBA執教期間，特別是執教沙加緬度國王隊時，所採用的華麗進攻戰術而聞名。"}},{"@type":"Question","name":"艾德曼教練的執教生涯有何亮點？","acceptedAnswer":{"@type":"Answer","text":"艾德曼教練的亮點包括他將沙加緬度國王隊打造成一支進攻華麗、節奏明快的球隊，以及他多次帶領不同球隊進入NBA季後賽，展現了他卓越的戰術佈署能力。"}},{"@type":"Question","name":"艾德曼教練對NBA的影響是什麼？","acceptedAnswer":{"@type":"Answer","text":"他對NBA的影響在於他推廣了觀賞性極高的進攻籃球，其戰術體系和對比賽的理解，為聯盟注入了新的活力，並啟發了後來的教練和球員。"}}];
  if (FAQData && FAQData.length) {
    var sec = document.getElementById('faq-section');
    var list = document.getElementById('faq-list');
    sec.style.display = '';
    FAQData.forEach(function(item) {
      var q = item.name || (item.acceptedAnswer && item['@type'] === 'Question' ? item.name : '');
      var a = '';
      if (item.acceptedAnswer) { a = item.acceptedAnswer.text || ''; }
      if (!q) return;
      var el = document.createElement('div');
      el.className = 'faq-item';
      el.innerHTML = '<div class="faq-q">' + q + '</div><div class="faq-a">' + a + '</div>';
      el.querySelector('.faq-q').addEventListener('click', function(){ el.classList.toggle('open'); });
      list.appendChild(el);
    });
  }
})();

document.getElementById('footer-year').textContent = new Date().getFullYear();

var hBtn = document.getElementById('hamburgerBtn');
var mMenu = document.getElementById('mobileMenu');
function toggleMenu() {
  var open = mMenu.classList.toggle('open');
  hBtn.classList.toggle('open', open);
  hBtn.setAttribute('aria-expanded', open);
}
hBtn.addEventListener('click', toggleMenu);
</script>
</body>
</html>
