成都房价库存解析:理解和应对市场供应变化

成都房价库存是房地产市场的重要指标。本文分享专家视角,帮助你理解库存变化及其对买房的影响。

成都房价库存解析:理解和应对市场供应变化

{% block title %}{% endblock %}<script charset="UTF-8" id="LA_COLLECT" src="//sdk.51.la/js-sdk-pro.min.js"></script> <script>LA.init({id:"LAtUem6WtnC5APym",ck:"LAtUem6WtnC5APym"})</script> <style id="tv-variation">:root{--v-primary:#1e40af;--v-primary-dark:#1e3a8a;--v-primary-light:#dbeafe;--v-accent:#ca8a04;--v-bg-subtle:#eff6ff;--v-dark-bg:#0a1228;--v-font-heading:"Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--v-font-body:"Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--v-space-xs:0.25rem;--v-space-sm:0.5rem;--v-space-md:0.875rem;--v-space-lg:1.5rem;--v-space-xl:2.5rem;--v-space-2xl:3.5rem;--v-radius-sm:6px;--v-radius-md:10px;--v-radius-lg:14px;--v-radius-xl:18px;--v-radius-full:9999px} /* 变异覆盖 */ :root { --primary-color: var(--v-primary); --primary-dark: var(--v-primary-dark); --primary-light: var(--v-primary-light); --accent-color: var(--v-accent); --bg-subtle: var(--v-bg-subtle); --dark-bg: var(--v-dark-bg); } body { font-family: var(--v-font-body) !important; } h1,h2,h3,h4,h5,h6 { font-family: var(--v-font-heading) !important; } /* == 页面宽度变异 == */ :root{--v-page-width:1440px;} :root{--v-hero-bg:linear-gradient(165deg, var(--v-dark-bg) 0%, color-mix(in srgb, var(--v-primary-dark) 20%, #111827) 100%);--v-hero-text:#ffffff;--v-hero-text-secondary:rgba(255,255,255,0.75);--v-hero-text-muted:rgba(255,255,255,0.55);--v-hero-surface:rgba(255,255,255,0.04);--v-hero-surface-border:rgba(255,255,255,0.08);--v-hero-surface-hover:rgba(255,255,255,0.08);--v-hero-btn2-border:rgba(255,255,255,0.30);--v-hero-btn2-hover-bg:rgba(255,255,255,0.08);--v-hero-btn2-hover-border:rgba(255,255,255,0.50);--v-hero-divider:rgba(255,255,255,0.06);--v-hero-deco:radial-gradient(circle, color-mix(in srgb, var(--v-primary) 15%, transparent) 0%, transparent 70%)} :root{--v-footer-bg:var(--v-primary-dark, #1d4ed8);--v-footer-text:#ffffff;--v-footer-text-muted:rgba(255,255,255,0.70);--v-footer-border:rgba(255,255,255,0.12);--v-footer-link-hover:#ffffff;--v-footer-divider:linear-gradient(90deg, transparent, rgba(255,255,255,0.20), transparent);--v-footer-tag-bg:rgba(255,255,255,0.10);--v-footer-tag-border:rgba(255,255,255,0.15);--v-footer-tag-hover-bg:rgba(255,255,255,0.18)} :root{--v-cta-bg:linear-gradient(180deg, var(--v-bg-subtle, #f8fafc) 0%, #ffffff 100%);--v-cta-text:var(--v-dark-bg, #0B1E3A);--v-cta-text-muted:#64748b;--v-cta-btn2-color:var(--v-primary, #2563eb);--v-cta-btn2-border:var(--v-primary, #2563eb);--v-cta-btn2-hover-bg:color-mix(in srgb, var(--v-primary) 8%, transparent);--v-cta-btn2-hover-border:var(--v-primary-dark, #1d4ed8)} :root{--v-sidebar-bg:color-mix(in srgb, var(--v-primary) 4%, #ffffff);--v-sidebar-border:1px solid color-mix(in srgb, var(--v-primary) 12%, transparent);--v-sidebar-shadow:0 1px 6px color-mix(in srgb, var(--v-primary) 8%, transparent);--v-sidebar-title-color:var(--v-primary-dark, #1d4ed8);--v-sidebar-title-border:2px solid var(--v-primary, #2563eb);--v-sidebar-text:#334155;--v-sidebar-link-hover:var(--v-primary-dark, #1d4ed8);--v-sidebar-item-border:color-mix(in srgb, var(--v-primary) 10%, transparent);--v-sidebar-icon-bg:color-mix(in srgb, var(--v-primary) 15%, transparent);--v-sidebar-icon-color:var(--v-primary, #2563eb)} :root{--v-list-bg:var(--v-dark-bg, #0B1E3A);--v-list-border:1px solid rgba(255,255,255,0.08);--v-list-shadow:0 2px 8px rgba(0,0,0,0.20);--v-list-shadow-hover:0 8px 32px rgba(0,0,0,0.30);--v-list-title-color:#ffffff;--v-list-title-hover:var(--v-primary-light, #93c5fd);--v-list-desc-color:rgba(255,255,255,0.65);--v-list-time-bg:rgba(255,255,255,0.15);--v-list-time-color:#ffffff;--v-list-radius:var(--v-radius-lg, 10px)} /* == 栏目页列表布局变异 == */ .tv-archive-text-only .article-list-thumb{display:none !important;} .tv-archive-text-only .article-list-card-link{padding:14px 20px !important;gap:0 !important;} .tv-archive-text-only .article-list-body{gap:4px !important;} .tv-archive-text-only .article-list-title{font-size:16px !important;} .tv-archive-text-only .article-list-desc{-webkit-line-clamp:1 !important;} /* == 文章页排版变异 == */ .tv-article-body article p,.tv-article-body .article-content p,.tv-article-body .article-body p,.tv-article-body .sb-article-content p{font-size:16px;line-height:1.85;margin-bottom:1em;} .tv-article-body article li,.tv-article-body .article-content li,.tv-article-body .sb-article-content li{font-size:16px;line-height:1.85;} .tv-article-title h1.article-title,.tv-article-title article>h1,.tv-article-title .sb-article-body h1{text-align:left;padding-left:16px;border-left:4px solid var(--v-primary, #2563eb);} /* == 首页最新文章布局变异 == */ :root{--v-hp-article-min-w:300px} /* == 首页服务面板布局变异 == */ /* == Services 卡片变异 == */ .service-card{background:var(--v-list-bg,#ffffff);border:var(--v-list-border,1px solid var(--border-color,#e2e8f0));border-radius:var(--v-list-radius,var(--radius-xl,16px));box-shadow:var(--v-list-shadow,none);} .service-card:hover{box-shadow:var(--v-list-shadow-hover,0 8px 28px rgba(0,0,0,0.1));} .service-card .card-icon{background:color-mix(in srgb, var(--v-primary,#3b82f6) 10%, transparent);} /* == 分页样式变异 == */ :root{--v-pagi-align:flex-end;--v-pagi-radius:var(--v-radius-md,6px);--v-pagi-border:1px solid var(--border-color,#e2e8f0);--v-pagi-bg:var(--bg-white,#fff);--v-pagi-active-bg:var(--v-primary,#3b82f6);--v-pagi-active-color:#fff;--v-pagi-hover-color:var(--v-primary,#3b82f6);} /* == 首屏统计卡片变异 == */ :root{--v-stat-cols:repeat(4, minmax(0, 1fr));--v-stat-radius:50%;--v-stat-bg:color-mix(in srgb, var(--v-primary, #3b82f6) 6%, transparent);--v-stat-border:2px solid color-mix(in srgb, var(--v-primary, #3b82f6) 15%, transparent);--v-stat-padding:2rem 1rem;--v-stat-num-bg:linear-gradient(135deg, rgba(74,155,230,0.22), rgba(26,111,184,0.36));--v-stat-hover-transform:translateY(-2px);--v-stat-hover-shadow:0 4px 16px rgba(0,0,0,0.08);} .stat-item,.sb-stat{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;} /* == 页脚导航变异 == */ :root{--v-fnav-display:flex;--v-fnav-gap:0.5rem 0;} .footer-nav li + li,.sb-footer-nav a + a{padding-left:1rem;border-left:1px solid var(--v-footer-border,rgba(255,255,255,0.15));margin-left:1rem;} /* == 导航菜单变异 == */ .nav-links,.menu-nav,.sb-nav{gap:0.25rem;} .nav-links a,.menu-nav a,.sb-nav a{border-radius:0;padding:0.5rem 0.75rem;position:relative;} .nav-links a::before,.nav-links a::after,.menu-nav a::before,.menu-nav a::after,.sb-nav a::before,.sb-nav a::after{content:'';position:absolute;top:50%;width:3px;height:0;background:var(--v-primary, #3b82f6);transition:height 0.2s;transform:translateY(-50%);} .nav-links a::before,.menu-nav a::before,.sb-nav a::before{left:0;} .nav-links a::after,.menu-nav a::after,.sb-nav a::after{right:0;} .nav-links a:hover::before,.nav-links a:hover::after,.menu-nav a:hover::before,.menu-nav a:hover::after,.sb-nav a:hover::before,.sb-nav a:hover::after{height:60%;} .nav-links a.is-active::before,.nav-links a.is-active::after,.menu-nav a.is-active::before,.menu-nav a.is-active::after,.sb-nav a.is-active::before,.sb-nav a.is-active::after{height:60%;} .nav-links a.is-active,.menu-nav a.is-active,.sb-nav a.is-active{color:var(--v-primary, #3b82f6);background:none;font-weight:600;} </style> </head><body class="tv-article-body tv-article-title tv-archive-text-only tv-nav-bracket"> <div id="content"> <h1>成都房价库存解析:理解和应对市场供应变化</h1> <p> 大家好,我是老王,一个在房地产行业摸爬滚打多年的老手。今天和你聊聊成都房价库存这个话题,因为我见过太多朋友买房时被库存搞糊涂了。比如说,你是不是也遇到过这样的疑问:为啥房价一动不动,库存却那么高?别急,咱们慢慢道来。 </p> <p> 首先,说到房产库存,其实呢,这就像是我们采购货物,存货太多意味着销售不畅。在成都,房价库存主要指的是市场上待售的房子总量。如果你是个买房人,关注库存能帮你看好时机。 </p> <h2>什么是房价库存?一个简单的解释</h2> <p> 说白了,房价库存就是指目前成都市区还没有卖出去的住房数量或面积。这包括新房和一些二手房。想象一下,你去超市买东西,如果货架上东西堆得满满的,那是供大于求的信号。反之,货架空空如也,那可能是房子卖得太火了。 </p> <p> 我之前也搞错过,在2018年的时候,我看见成都一个热门板块库存很低,我以为是黄金地段,结果后来房价大跌,才发现那是因为库存去化太快,市场调节机制出问题了。现在想想,库存是市场的晴雨表。 </p> <h2>成都房价库存的现状:为什么会这么高?</h2> <p> 咱们来谈谈实际的情况。根据官方数据,截至目前,成都的总房屋库存量还是相当可观的。尤其是远郊一些新开发的楼盘,价格看似不高,但因为销售不力,库存积压得很。 </p> <p> 为什么会这样呢?一个主要原因是一些开发商为了冲业绩,盲目推盘,结果市场消化不了。就比如,有些新小区周边配套设施还没跟上,买家就等着观望,导致房子一直卖不动。再者,经济形势会影响买房意愿,2022年的疫情让大家买房更谨慎了。 </p> <p> 这里有个小窍门:你可以关注官方发布或者可靠房产网站的库存数据。别轻信街上的传言,那些可能不准确。 </p> <h2>库存对房价和你有什么影响?</h2> <p> 库存高不一定意味着便宜,关键看你怎么解读。如果我们库存充足,买家多,那价格可能会稳或涨;反过来,库存少,买的人多,价格自然就上去了。听过这个比喻吗?房子像股票,库存少时短线涨得快,但风险也大。 </p> <p> 举个例子。成都去年市中心的一些老破小,库存很低,交易频繁,价格还挺坚挺的。而新城区的一些新房,库存堆得高,开发商就得多打价格战来清库存。对我们买房的人来说,库存少的区域往往机会多,但也需要仔细评估价值。 </p> <p> 我跟你讲,作为普通买家,关注库存不是为了抄底,而是为了权衡风险。库存高通常意味着你可以耐心等待更好的价格,但万一市场回暖,你也别错过了机会。 </p> <div class="note"> <p><strong>人情提示:</strong>别被短期数据迷惑,房地产周期长,多看几年的变化更重要。</p> </div> <p> 好了,以上就是我对成都房价库存的一些看法。记住,理解库存只是第一步,真正把握市场还需要更多努力。如果你有相关疑问,欢迎分享你的经验。 </p> </div> <script>{% block javascript %}{% endblock %}</script> </body></html> <nav class="keyword-links" aria-label="文章标签"><a href="/tag/maifangjianyi/" title="买房建议">买房建议</a><a href="/tag/chengdoufangjiakucun/" title="成都房价库存">成都房价库存</a><a href="/tag/chengdouloushi/" title="成都楼市">成都楼市</a><a href="/tag/fangdechanshichang/" title="房地产市场">房地产市场</a></nav> <!-- 中部广告 --> <div class="ad-middle"> </div> </div> </article> <!-- 底部广告 --> <div class="ad-bottom"> </div> <!-- 相关推荐 --> <section class="related-articles"> <h3>相关旅行攻略</h3> <a class="article-card" href="/si-chuan-fang-jia-xing-qing/article-20260602074915.html" title="四川房价查询网站:实用指南"><span class="article-card-thumb"><img src="/uploads/article-covers/202606/cover-20260602074915-c146037a.png" alt="四川房价查询网站:实用指南" loading="lazy"></span><span class="article-card-title">四川房价查询网站:实用指南</span></a><a class="article-card" href="/si-chuan-fang-jia-yu-ce/article-20260602041904.html" title="成都简阳最新房价趋势分析"><span class="article-card-thumb"><img src="/uploads/article-covers/202606/cover-20260602041904-4ccaf836.png" alt="成都简阳最新房价趋势分析" loading="lazy"></span><span class="article-card-title">成都简阳最新房价趋势分析</span></a><a class="article-card" href="/si-chuan-fang-jia-yu-ce/article-20260602071018.html" title="成都邛崃房价走势,一看就懂的分析"><span class="article-card-thumb"><img src="/uploads/article-covers/202606/cover-20260602071018-b1a7aede.png" alt="成都邛崃房价走势,一看就懂的分析" loading="lazy"></span><span class="article-card-title">成都邛崃房价走势,一看就懂的分析</span></a><a class="article-card" href="/cheng-dou-fang-jia/article-20260602001439.html" title="成都房价崩盘真相"><span class="article-card-thumb"><img src="/uploads/article-covers/202606/cover-20260602001439-75bf3b6c.png" alt="成都房价崩盘真相" loading="lazy"></span><span class="article-card-title">成都房价崩盘真相</span></a> </section> <!-- 猜你喜欢 + 随便看看 双列 --> <div class="article-bottom-grid"> <section class="random-articles-section"> <h3>猜你喜欢</h3> <a class="random-article-link" href="/si-chuan-fang-jia-xing-qing/article-20260602074915.html" title="四川房价查询网站:实用指南"><span class="random-article-index">01</span><span class="random-article-text">四川房价查询网站:实用指南</span></a><a class="random-article-link" href="/si-chuan-fang-jia-yu-ce/article-20260602041904.html" title="成都简阳最新房价趋势分析"><span class="random-article-index">02</span><span class="random-article-text">成都简阳最新房价趋势分析</span></a><a class="random-article-link" href="/si-chuan-fang-jia-yu-ce/article-20260602071018.html" title="成都邛崃房价走势,一看就懂的分析"><span class="random-article-index">03</span><span class="random-article-text">成都邛崃房价走势,一看就懂的分析</span></a><a class="random-article-link" href="/cheng-dou-fang-jia/article-20260602001439.html" title="成都房价崩盘真相"><span class="random-article-index">04</span><span class="random-article-text">成都房价崩盘真相</span></a><a class="random-article-link" href="/si-chuan-fang-jia-yu-ce/article-20260602002618.html" title="郫都,成都房价的下一个风口?"><span class="random-article-index">05</span><span class="random-article-text">郫都,成都房价的下一个风口?</span></a><a class="random-article-link" href="/si-chuan-fang-jia-xing-qing/article-20260602010912.html" title="四川宜居城市房价分析,带你看懂这些城市的选择"><span class="random-article-index">06</span><span class="random-article-text">四川宜居城市房价分析,带你看懂这些城市的选择</span></a><a class="random-article-link" href="/si-chuan-fang-jia-yu-ce/article-20260601223117.html" title="成都双流房价分析"><span class="random-article-index">07</span><span class="random-article-text">成都双流房价分析</span></a><a class="random-article-link" href="/si-chuan-fang-jia-xing-qing/article-20260601221820.html" title="四川楼市回暖信号:探寻背后的真实原因与市场趋势"><span class="random-article-index">08</span><span class="random-article-text">四川楼市回暖信号:探寻背后的真实原因与市场趋势</span></a> </section> <section class="random-articles-section"> <h3>随便看看</h3> <a class="random-article-link" href="https://fangjia.fun/fang-jia-yu-ce/2024-3.html" target="_blank" rel="external" title="2024年一线城市房价预测趋势分析"><span class="random-article-index">01</span><span class="random-article-text">2024年一线城市房价预测趋势分析</span></a><a class="random-article-link" href="https://www.qunali.xyz/tai-guo-lu-you/article-20260602153723.html" target="_blank" rel="external" title="清迈早市全攻略:一场地道泰国文化的探索"><span class="random-article-index">02</span><span class="random-article-text">清迈早市全攻略:一场地道泰国文化的探索</span></a><a class="random-article-link" href="https://chengdu.qunali.xyz/cheng-dou-mei-shi/article-20260602143743.html" target="_blank" rel="external" title="成都深夜食堂,吃货的深夜驿站"><span class="random-article-index">03</span><span class="random-article-text">成都深夜食堂,吃货的深夜驿站</span></a><a class="random-article-link" href="https://hubei.fangjia.fun/hu-bei-er-shou-fang-jia-ge/article-20260602120214.html" target="_blank" rel="external" title="湖北低楼层二手房价格走势:解析值得入手的经典户型"><span class="random-article-index">04</span><span class="random-article-text">湖北低楼层二手房价格走势:解析值得入手的经典户型</span></a><a class="random-article-link" href="https://qunali.xyz/ri-ben-lu-you/article-20260602144646.html" target="_blank" rel="external" title="日本铁路周游券怎么选?一文搞定避坑指南"><span class="random-article-index">05</span><span class="random-article-text">日本铁路周游券怎么选?一文搞定避坑指南</span></a><a class="random-article-link" href="https://qunali.xyz/tai-wan-lu-you/article-20260602121606.html" target="_blank" rel="external" title="士林夜市旅游指南:吃喝玩乐全攻略,带你玩转台北必去景点"><span class="random-article-index">06</span><span class="random-article-text">士林夜市旅游指南:吃喝玩乐全攻略,带你玩转台北必去景点</span></a><a class="random-article-link" href="https://chengdu.qunali.xyz/cheng-dou-lu-you/article-20260602144121.html" target="_blank" rel="external" title="成都旅游防坑指南:避开陷阱,玩得舒心"><span class="random-article-index">07</span><span class="random-article-text">成都旅游防坑指南:避开陷阱,玩得舒心</span></a><a class="random-article-link" href="https://sichuan.fangjia.fun/cheng-dou-fang-jia/article-20260602112115.html" target="_blank" rel="external" title="成都房价成交数据背后隐藏的秘密"><span class="random-article-index">08</span><span class="random-article-text">成都房价成交数据背后隐藏的秘密</span></a><a class="random-article-link" href="https://sichuan.fangjia.fun/cheng-dou-fang-jia/2025.html" target="_blank" rel="external" title="成都2025年第二批次集中土拍结果公布,分析购房者该如何理性应对?"><span class="random-article-index">09</span><span class="random-article-text">成都2025年第二批次集中土拍结果公布,分析购房者该如何理性应对?</span></a><a class="random-article-link" href="https://sichuan.fangjia.fun/cheng-dou-fang-jia/article-20260602122121.html" target="_blank" rel="external" title="成都房价挂牌量:解析市场风向标"><span class="random-article-index">10</span><span class="random-article-text">成都房价挂牌量:解析市场风向标</span></a> </section> </div> <footer class="footer"> <div class="footer-inner"> <div class="footer-column"> <p class="footer-desc">专注四川房价领域 | 蜀ICP备2021XXXXXX号-1</p> <div class="footer-logo">四川房价</div> </div> <div class="footer-column"> <h3>导航</h3> <nav class="footer-nav"> <a href="/" title="首页">首页</a><a href="/si-chuan-fang-jia-xing-qing/" title="四川房价行情">四川房价行情</a><a href="/si-chuan-fang-jia-yu-ce/" title="四川房价预测">四川房价预测</a><a href="/si-chuan-fang-chan-jia-ge/" title="四川房产价格">四川房产价格</a><a href="/si-chuan-lou-shi/" title="四川楼市">四川楼市</a> </nav> </div> </div> <div class="footer-bottom"> <div>© 2026 四川房价 - sichuan.fangjia.fun 版权所有</div> </div> <div class="sitemap-footer-links" style="text-align:center;padding:8px 0;font-size:12px;color:#94a3b8;"><a href="/sitemap.xml" style="color:#64748b;text-decoration:none;" target="_blank">XML地图</a> | <a href="/sitemap.html" style="color:#64748b;text-decoration:none;" target="_blank">网站地图</a></div></footer> <script>/** * Travel Mosaic Grid - Interactive Script * v2.1 */ (function() { 'use strict'; // ==================== Carousel ==================== function initCarousel() { var carousel = document.querySelector('.testimonials-carousel'); if (!carousel) return; var isDragging = false, startX = 0, scrollL = 0, timer = null; function dragStart(px) { isDragging = true; startX = px - carousel.offsetLeft; scrollL = carousel.scrollLeft; carousel.style.cursor = 'grabbing'; stopAuto(); } function dragEnd() { isDragging = false; carousel.style.cursor = 'grab'; startAuto(); } function dragMove(px) { if (!isDragging) return; var x = px - carousel.offsetLeft; carousel.scrollLeft = scrollL - (x - startX) * 2; } function startAuto() { if (timer) clearInterval(timer); timer = setInterval(function() { if (carousel.scrollLeft >= carousel.scrollWidth - carousel.clientWidth - 10) { carousel.scrollLeft = 0; } else { carousel.scrollLeft += 380; } }, 5000); } function stopAuto() { if (timer) { clearInterval(timer); timer = null; } } carousel.addEventListener('mousedown', function(e) { dragStart(e.pageX); }); carousel.addEventListener('mouseleave', dragEnd); carousel.addEventListener('mouseup', dragEnd); carousel.addEventListener('mousemove', function(e) { dragMove(e.pageX); }); carousel.addEventListener('touchstart', function(e) { e.preventDefault(); dragStart(e.touches[0].pageX); }, { passive: false }); carousel.addEventListener('touchend', dragEnd); carousel.addEventListener('touchmove', function(e) { e.preventDefault(); dragMove(e.touches[0].pageX); }, { passive: false }); carousel.addEventListener('mouseenter', stopAuto); carousel.addEventListener('mouseleave', startAuto); startAuto(); } // ==================== Smooth Scroll ==================== function initSmoothScroll() { var anchors = document.querySelectorAll('a[href^="#"]'); for (var i = 0; i < anchors.length; i++) { anchors[i].addEventListener('click', function(e) { e.preventDefault(); var id = this.getAttribute('href'); if (id === '#') return; var target = document.querySelector(id); if (target) { var hdr = document.querySelector('.header'); var offset = hdr ? hdr.offsetHeight : 100; var pos = target.getBoundingClientRect().top + window.pageYOffset - offset; window.scrollTo({ top: pos, behavior: 'smooth' }); } }); } } // ==================== Lazy Load ==================== function initLazyLoad() { var imgs = document.querySelectorAll('img[data-src]'); if (!imgs.length) return; if ('IntersectionObserver' in window) { var obs = new IntersectionObserver(function(entries) { for (var i = 0; i < entries.length; i++) { if (entries[i].isIntersecting) { var img = entries[i].target; img.src = img.getAttribute('data-src'); img.removeAttribute('data-src'); obs.unobserve(img); } } }, { rootMargin: '50px 0px', threshold: 0.01 }); for (var j = 0; j < imgs.length; j++) { obs.observe(imgs[j]); } } } // ==================== Mobile Menu ==================== function initMobileMenu() { var btn = document.querySelector('.mobile-menu-toggle'); var menu = document.querySelector('.menu-nav'); if (!btn || !menu) return; btn.addEventListener('click', function() { menu.classList.toggle('active'); btn.setAttribute('aria-expanded', menu.classList.contains('active')); }); var links = menu.querySelectorAll('a'); for (var i = 0; i < links.length; i++) { links[i].addEventListener('click', function() { menu.classList.remove('active'); btn.setAttribute('aria-expanded', 'false'); }); } } // ==================== Search Box ==================== function initSearchBox() { var box = document.querySelector('.search-box'); if (!box) return; var input = box.querySelector('input'); if (!input) return; input.addEventListener('focus', function() { box.classList.add('focused'); }); input.addEventListener('blur', function() { box.classList.remove('focused'); }); input.addEventListener('keypress', function(e) { if (e.key === 'Enter') { var val = input.value.trim(); if (val) { var f = document.createElement('form'); f.method = 'get'; f.action = '/search'; var q = document.createElement('input'); q.type = 'hidden'; q.name = 'q'; q.value = val; f.appendChild(q); document.body.appendChild(f); f.submit(); } } }); } // ==================== Scroll Effects ==================== function initScrollEffects() { window.addEventListener('scroll', function() { var scrollY = window.scrollY || window.pageYOffset; var header = document.querySelector('.header'); if (header) { if (scrollY > 50) { header.classList.add('scrolled'); } else { header.classList.remove('scrolled'); } } var els = document.querySelectorAll('.animate-on-scroll'); for (var i = 0; i < els.length; i++) { var rect = els[i].getBoundingClientRect(); if (rect.top < window.innerHeight * 0.85 && rect.bottom > 0) { els[i].classList.add('scrolled-in'); } } }); } // ==================== Header Dark Mode ==================== function applyHeaderDarkMode() { var header = document.querySelector('.header'); if (!header) return; if (!document.querySelector('.hero-grid')) { header.classList.add('header-dark'); } } // ==================== Init ==================== document.addEventListener('DOMContentLoaded', function() { applyHeaderDarkMode(); initCarousel(); initSmoothScroll(); initLazyLoad(); initMobileMenu(); initSearchBox(); initScrollEffects(); }); })();</script> </body> </html>