const chePhoto = 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/teisensei.png'; function isMobile() { return window.innerWidth <= 768; } let currentModalId = null; let currentBsId = null; // Sakura animation function createSakuraPetals() { const hero = document.getElementById('hero'); for (let i = 0; i < 20; i++) { const petal = document.createElement('div'); petal.className = 'sakura-petal'; petal.style.left = Math.random() * 100 + '%'; petal.style.animationDuration = (Math.random() * 6 + 10) + 's'; petal.style.animationDelay = (Math.random() * 15) + 's'; hero.appendChild(petal); } } createSakuraPetals(); // Scroll effects window.addEventListener('scroll', function() { const header = document.getElementById('header'); const stickyBar = document.getElementById('stickyBar'); const backToTop = document.getElementById('backToTop'); if (window.scrollY > 100) { header.classList.add('scrolled'); stickyBar.classList.add('visible'); } else { header.classList.remove('scrolled'); stickyBar.classList.remove('visible'); } if (window.scrollY > 600) { backToTop.classList.add('visible'); } else { backToTop.classList.remove('visible'); } }); // Product Data const tabData = { cosme: { title: '彩妝・美容', products: [ { id: 21, slug: 'eclore-whitening', name: '3D蛋殼生物磷灰石潔牙粉・藥用牙膏', brand: 'eclore', price: 1595, priceNote: '潔牙粉25g ¥1,595 / 藥用牙膏90g ¥1,595', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/eclore-whitening-powder-tube-jars.jpg', label: 'type-hot', labelText: '話題', plan: 'platinum', isMultiProduct: true, subProducts: [ { name: '藥用3D蛋殼生物磷灰石牙膏', nameJp: '薬用3Dホワイトニングペースト', size: '90g', price: 1595 }, { name: '3D蛋殼生物磷灰石潔牙粉', nameJp: '3Dホワイトニングパウダー', size: '25g', price: 1595 } ], originalUrl: 'https://droral.jp/3dpowder/', tip: 'Dr.Oral 3D WHITE口腔亮白護理系列,採用奈米級3D蛋殼生物磷灰石,協助吸附牙齒表面污漬,維持清新亮白印象。牙粉蛋殼生物磷灰石含量高達40%,搭配多種潔淨與保濕成分,', tipFull: 'Dr.Oral 3D WHITE口腔亮白護理系列,採用奈米級3D蛋殼生物磷灰石,協助吸附牙齒表面污漬,維持清新亮白印象。牙粉蛋殼生物磷灰石含量高達40%,搭配多種潔淨與保濕成分,日常刷牙即可兼顧清潔與口腔保養。另有薬用牙膏款,輔助維持牙齦健康,是重視自然系亮白護理者的人氣選擇。', column: 'https://www.japankuru.com/tw/shopping/263339/', hasVideo: true, videoId: '73ffThRqZ9M', voices: [ { initial: 'S', name: 'sacuraisho', attr: '40多歲・家庭主婦', text: '裡面還添加了「3D蛋殼羥基磷灰石」這個成分,感覺蠻特別的,就想說一定要試試看。', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.facebook.com/sacuralin/posts/pfbid0QxLhS5ZfpA6oHoehXyCF7su7pb3T3SYKaBwFJuoKfD8BHA1HTiTAZhVLqb7Wshwvl' }, { initial: 'C', name: 'Chiu-wei Liu', attr: '30多歲・上班族', text: '在日本各大藥妝店與生活雜貨店(像是 Loft)都是長期熱銷的人氣商品,非常值得入手試試!', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.facebook.com/chiuwei.liu/posts/pfbid0ewzUBFK6pEgAMYUVe5FRLVdt3St55bXp98PGjRHcBk8EXD9Z9TuQC4UJ2LQS6kGPl' }, { initial: '蔡', name: '蔡徐嘉', attr: '30多歲・上班族', text: '刷完之後會有一種清新乾淨的感覺,睡覺的時候連帶覺得自己呼吸到的空氣都更清新了', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.facebook.com/hsuchia.tsai/posts/pfbid02yRT7QQ7och2zu1Zj6ffmBgDVFQAwMnnXztZ7WPeye1c6QYYSSHCWFZWvzGBvbELkl' }, { initial: 'C', name: 'Chih Lin Kung', attr: '30多歲・留學生', text: '另外我也很喜歡潔牙粉的設計。粉末非常細緻,搭配牙刷使用時可以更深入清潔牙齒表面。', date: '2026.03', color: '#009688', snsUrl: 'https://www.instagram.com/p/DV98gOREhkk/?img_index=1' }, { initial: 'L', name: 'lori7906', attr: '30多歲・上班族', text: '使用完牙齒整體感覺非常光滑,早上起床時口臭也比以前變淡許多~', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DV8qTpIj8qt/?img_index=1' }, { initial: 'K', name: 'Kelly', attr: '30多歲・上班族', text: '我自己本身的牙齒白到牙醫問我是不是做過美白牙齒😂 但真的完全沒有,是因為用對了牙膏!', date: '2026.03', color: '#795548', snsUrl: 'https://www.instagram.com/p/DV8oDEjiULt/?img_index=1' }, { initial: 'W', name: 'Wei Wei', attr: '30多歲・上班族', text: '最近換了這組日本的 Dr.Oral 藥用美白牙膏跟潔牙粉,目前用下來覺得很對我的胃。', date: '2026.03', color: '#607D8B', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid0E6xomLfbTaGgPKNcAs1HHVKMNY9JDspMALoBt2EpF3Nsz1FvMixWyMejYecgfRazl&id=100001466739903&locale=ja_JP' }, { initial: 'K', name: 'Kelly Lau', attr: '20多歲・上班族', text: '如果你也是茶飲或咖啡重度愛好者,真的很推薦試試看這款牙粉,效果真的比想像中還好!', date: '2026.03', color: '#4CAF50', snsUrl: 'https://www.facebook.com/story.php?story_fbid=26286331127664089&id=100001416789118&mibextid=wwXIfr&rdid=e5mww2xKSLxbbedj#' }, { initial: 'Ko', name: 'Kobayashi Celine', attr: '40多歲・自由工作者', text: '粉末很細緻,用牙刷沾一點刷牙🪥 刷完牙齒真的會有那種很乾淨、很清爽、牙齒滑滑的感覺', date: '2026.03', color: '#FF9800', snsUrl: 'https://www.instagram.com/p/DV7cpPSDx_i/?igsh=MW1mMWV3M2RyZjhvYQ%3D%3D&img_index=1' }, { initial: '新', name: '新日一成', attr: '40多歲・個人創業者', text: '對於像我這種每天咖啡不離手的中年男士來說,能同時做到美白、預防蛀牙、減少口臭、保持清新口氣,真的很加分。', date: '2026.03', color: '#2196F3', snsUrl: 'https://www.facebook.com/hu.wei.7/posts/pfbid09YZjzgTDsqonnDkJ3iaqePpkRuohDPszUWWvjmiYkGuxha1K5sGSJvNXR65bs58ol' } ], voiceCount: 10 }, { id: 26, slug: 'cure-white-clear-gel', name: 'Cure White Clear Gel 四效去角質凝膠', brand: 'Cure', price: 2750, priceNote: '200g ¥2,500(含稅 ¥2,750)', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/cure-white-clear-gel-wooden-bucket.jpg', label: 'type-exclusive', labelText: '日本限定', plan: 'gold', originalUrl: 'https://www.4cs-cure.co.jp/shop/products/cure-014?srsltid=AfmBOoo6jS-5VU8neJerfFrM_Iqb-WzPzOuJzf7OW07YM2EbVTT0d-Wa', tip: 'Cure「White Clear Gel四效去角質凝膠」是每週保養必備的美肌橡皮擦,溫和去除老廢角質,同時提亮膚色、滋潤保濕並預防痘痘。', tipFull: 'Cure「White Clear Gel四效去角質凝膠」是每週保養必備的美肌橡皮擦,溫和去除老廢角質,同時提亮膚色、滋潤保濕並預防痘痘。含水溶性胎盤素與甘草酸二鉀等薬用成分,加上多種草本保濕精華,使用後肌膚光滑透亮,後續保養吸收加成,也適合初階與敏弱肌膚,每週2次即可維持最佳膚況。', column: 'https://www.japankuru.com/tw/shopping/257656/', hasVideo: true, videoId: 'lYlS9VmR0ZI', voices: [ { initial: 'J', name: 'ジャリンリン', attr: '30多歲・上班族', text: '最近保養桌上多了一瓶默默很有存在感的——Cure 藥用去角質凝膠。', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.facebook.com/jialing.shies/posts/pfbid0MeEmLeRhTFejHHzq9GqPdk3pE74GF4KX728oCFtCiQnq3kob7uLbNWETgRc8WRmKl' }, { initial: '苦', name: '苦逼留學生的碎念', attr: '30多歲・上班族', text: '最近覺得背長很多小顆粒 剛好來用看看這個去角質凝膠', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid02wsZc68pNckakhU2Asx9RtDjFJCZJV3LLDSnq73DfpZsTF9igXoUWNQETjuGnqaMPl&id=100052568835647&rdid=KQIqDkaFmpOrt5e2#' }, { initial: '3', name: '31803', attr: '40多歲・家庭主婦', text: '最近用到一罐還蠻好用的去角質', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.facebook.com/osakapleb/posts/pfbid031dSJnTWkiVFXNPMjjsxHTTZxCeUWc7Ucu3CPtypNrzCGqemwuttv38DntxxyQmfql' }, { initial: 'C', name: 'Chiu-wei Liu', attr: '30多歲・上班族', text: '這次是介紹Cure這款 去角質Gel,洗澡的時候一起去角質 超方便!!!!', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/chiuwei.liu/posts/pfbid0ff3vdZyZAUFPUP4ZBZjTcGpQXkxXTvmPoNwphHN5D6dgtPF2jLWuRXCaHGZrxPhRl' }, { initial: 'R', name: 'Rebecca528', attr: '30多歲・上班族', text: '我自己其實已經默默用到 第三罐了。', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DV063CPj2B-/' } ], voiceCount: 5 } ] }, medicine: { title: '醫藥品', products: [ { id: 4, slug: 'pabron-gold-a', name: '百保能GOLD A (パブロンゴールドA) 綜合感冒藥', brand: '大正製藥', price: 2057, priceNote: '130錠・28包 ¥2,057 / 210錠・44包 ¥3,025', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/teisensei_pabron_golda.jpg', label: 'type-exclusive', labelText: '日本限定', plan: 'platinum', originalUrl: 'https://brand.taisho.co.jp/pabron/', tip: '大正製藥「PABRON百保能」為創立近百年的經典綜合感冒藥品牌,主以呼吸道黏膜防禦為設計理念。紅金「GOLD A」含乙醯胺酚,適合多症狀初期緩解;', tipFull: '大正製藥「PABRON百保能」為創立近百年的經典綜合感冒藥品牌,主以呼吸道黏膜防禦為設計理念。紅金「GOLD A」含乙醯胺酚,適合多症狀初期緩解;藍金版「Pro-X」,採用布洛芬作為退燒止痛成分(限15歲以上使用)。兩款皆針對咳嗽、喉痛、鼻塞等症狀設計,是臺日人氣家庭常備藥熱門選擇。\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: 'https://www.japankuru.com/tw/shopping/264144/', hasVideo: false, voices: [ { initial: '花', name: '花森米米', attr: '30多歲・自由工作者', text: 'パブロンゴールドA,是在日本很常見的家庭常備藥之一。', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.instagram.com/p/DV5MG-mEqyl/' }, { initial: '辛', name: '辛宜靜', attr: '30多歲・上班族', text: '只要有任何感冒前兆都可以喝一包,讓我的突發感冒可以先壓壓。', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.facebook.com/kid0804/posts/pfbid02LoRRVmigQ33XsvCQBKUtQe8hNhpq5QJR5kQP8nyrQrtJcMYmNsq1moy5oHFgJGFQl' }, { initial: '日', name: '日本零食好吃驚', attr: '30多歲・上班族', text: '這是我們家中必備的「感冒藥」,可以用來緩解各式各樣的感冒症狀,真的太全能太好用了!', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.instagram.com/p/DVntk4BGpdZ/?img_index=1' } ], voiceCount: 3 }, { id: 5, slug: 'pabron-ace-prox', name: '百保能Pro-X (パブロンエースPro-X) 感冒藥', brand: '大正製藥', price: 1518, priceNote: '18錠・6包 ¥1,518 / 36錠・12包 ¥2,178', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/column-pabron-aceprox-back-label.jpg', label: 'type-exclusive', labelText: '日本限定', plan: 'platinum', originalUrl: 'https://brand.taisho.co.jp/pabron/', tip: '大正製藥「PABRON百保能」為創立近百年的經典綜合感冒藥品牌,主以呼吸道黏膜防禦為設計理念。藍金版「Pro-X」採用布洛芬作為退燒止痛成分(限15歲以上使用)。', tipFull: '大正製藥「PABRON百保能」為創立近百年的經典綜合感冒藥品牌,主以呼吸道黏膜防禦為設計理念。紅金「GOLD A」含乙醯胺酚,適合多症狀初期緩解;藍金版「Pro-X」,採用布洛芬作為退燒止痛成分(限15歲以上使用)。兩款皆針對咳嗽、喉痛、鼻塞等症狀設計,是臺日人氣家庭常備藥熱門選擇。\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: 'https://www.japankuru.com/tw/shopping/264144/', hasVideo: false, voices: [ { initial: 'S', name: 'Sharon Hsieh', attr: '20多歲・上班族', text: '裡面含有能幫助改善 喉嚨痛、咳嗽與發炎 的成分,能在感冒初期就好好對應各種不舒服的症狀。', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.facebook.com/sharonxhsieh/posts/pfbid02YsaPMn7pxzBi9SsateQtua66EGeUfetxHbuEUUNSf75VSSm5YRnLSU1W1coLfZ4Fl' }, { initial: '林', name: '林桑的日本遊記', attr: '40多歲・上班族', text: '這款是日本大正製藥的產品,在日本算是滿有名的老品牌,很多人逛藥妝店應該都看過!', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.instagram.com/p/DV3QDCtkqiZ/?img_index=1' }, { initial: '如', name: '如月ゆな', attr: '30多歲・上班族', text: '我最喜歡它的錠劑設計,完全沒有粉末感冒藥常見的那種苦味。', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.instagram.com/p/DVdNKKrklYv/?igsh=c251N3UxZW1zZWI4&img_index=1' }, { initial: '李', name: '李映宣', attr: '20多歲・上班族', text: '粉末型的綜合感冒藥,一包一包分好,其實還蠻方便的。', date: '2026.03', color: '#607D8B', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid031SjxEMnTAgBnoYGh9oHU9G4GPoLuYcfjHdtDdTwEUAuSeY6r7iso9htZ8PaadJf3l&id=100001498612711' }, { initial: 'I', name: 'Iru Chin', attr: '30多歲・自由工作者', text: '其實最早的パブロン是止咳藥,之後才演變為感冒藥💊,我都拿來當家裡常備藥。', date: '2026.03', color: '#4CAF50', snsUrl: 'https://www.facebook.com/natsuki.chin.7/posts/pfbid06VY12vPT9e52fifhschY4BJUbrKL6iBPkkgTePfGV7JAxiJmQTRgmeMgTVpNW9oQl' }, { initial: '新', name: '新日一成', attr: '40多歲・個人創業者', text: '如果是像我一樣,常常一感冒就先從喉嚨痛開始的人,這款真的可以放在家裡備著。', date: '2026.03', color: '#FF9800', snsUrl: 'https://www.facebook.com/hu.wei.7/posts/pfbid0kVwaP1MQ8PtaWQ8UypMGDDea1G1kBMniiFtbGV5pvBNwxDGuGbvgHh3urtq7vvsVl' }, { initial: 'S', name: 'Shizuku Chu', attr: '30多歲・上班族', text: '製藥老牌廠商的藥,值得信賴而且我個人是覺得蠻有效果又好吞還不會愛睡覺~', date: '2026.03', color: '#2196F3', snsUrl: 'https://www.facebook.com/story.php?story_fbid=35337702805828358&id=100000462608255&mibextid=wwXIfr&rdid=3EvRqFa0oMasAJ7w#' } ], voiceCount: 7 }, { id: 20, slug: 'kenei-magnesium-oxide', name: '健榮製藥 氧化鎂E便秘藥', brand: '健榮製藥', price: 680, priceNote: '40錠 ¥680 / 90錠 ¥1,200 / 180錠 ¥2,200 / 360錠 ¥4,000', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/kenei-product-detail-1-2048x1536.jpg', label: 'type-hot', labelText: '新話題', plan: 'platinum', originalUrl: 'https://www.kenei-pharm.com/ebenpi/', tip: '健榮製藥-氧化鎂E便秘藥,日本藥妝店常見的非刺激性便秘藥。採用國產氧化鎂透過滲透壓機制增加腸道水分,協助軟化糞便,較不易引發腹痛與依賴性。', tipFull: '健榮製藥-氧化鎂E便秘藥,日本藥妝店常見的非刺激性便秘藥。採用國產氧化鎂透過滲透壓機制增加腸道水分,協助軟化糞便,較不易引發腹痛與依賴性。速崩技術錠劑,搭配微甜檸檬風味,提升適口性,接受度較高。成人可依體質調整劑量,輕巧包裝方便攜帶,是慢性便秘管理的選擇之一。非刺激性瀉藥效果較溫和,是日本藥妝店便秘藥的新話題,也是慢性便秘管理的新選擇。', column: 'https://www.japankuru.com/tw/shopping/263178/', hasVideo: true, videoId: '9m6r4sCWBrw', voices: [ { initial: 'W', name: 'Wei Wei', attr: '30多歲・上班族', text: '最近日本開始回溫,出門小旅行的機會變多。我發現他們家出的旅行裝(隨身包)真的是大救星!', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid02vNkKin39zi89gjSKPA7NNozyURvonfkLDmYBLkwa2gtLBPyd3Dq3uPLJ5cEU64LFl&id=100001466739903' }, { initial: '新', name: '新日一成', attr: '40多歲・個人創業者', text: '家裡有個小一的孩子,有時候因為飲食不均衡或水喝太少,也會有便便不順的情況。這種溫和型的產品,家裡備著就很安心。', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.facebook.com/hu.wei.7/posts/pfbid0E938bxNDG3zkg2dqYHL981CiDUmiF1EtrEToUrom28V9gagqfhE45KG2LY1gbuwKl' }, { initial: 'S', name: 'Sharon Hsieh', attr: '20多歲・上班族', text: '現在我的行李裡,有個專門裝藥的小袋子,裡面除了胃藥和感冒藥之外,也多放了這個腸胃的小備品。', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.facebook.com/sharonxhsieh/posts/pfbid028tT3vj9iSgPR5E8JZ9hmmk8bRwA6cDhBwSiSMkN9j1tYc8YNkkuSNCkYM5BMY4vDl' }, { initial: '李', name: '李映宣', attr: '20多歲・上班族', text: '偶爾不太順的時候用,可以讓狀態慢慢回到正常,也不會有太強烈的不適感', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid02fT9dv8vmFpenvA1giybBKXNwW56UyLg92QEHBhrNfG8pw6554SnvrMF8JrYNNdZsl&id=100001498612711' }, { initial: '優', name: '優妮帶你遊大阪不踩雷', attr: '30多歲・上班族', text: '旅行裝放包包超方便,真的就是那種「欸我有帶,心就定一半」的安心感', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DVU-hr4krds/?img_index=1' }, { initial: '日', name: '日本零食好吃驚', attr: '30多歲・上班族', text: '這款產品的核心成分是氧化鎂,不是那種強行刺激腸道的瀉藥,而是透過「吸收水分」來軟化便便', date: '2026.03', color: '#795548', snsUrl: 'https://www.instagram.com/p/DV4zkhXD7Kb/?img_index=1' }, { initial: 'C', name: 'Chih Lin Kun', attr: '30多歲・留學生', text: '實際服用後覺得錠劑大小適中,吞服也很方便', date: '2026.03', color: '#607D8B', snsUrl: 'https://www.instagram.com/p/DV9-_pyki69/?img_index=1' }, { initial: 'P', name: 'pudding🍮', attr: '30多歲・上班族', text: '它與市面上強迫腸胃蠕動的瀉藥完全不同,這種不絞痛、溫和的排便體驗,真的非常實用。', date: '2026.03', color: '#4CAF50', snsUrl: 'https://www.instagram.com/p/DV8zHNnkhwb/' }, { initial: 'S', name: 'shark_dosa', attr: '20多歲・上班族', text: '像我這種飲食一亂掉、腸胃就容易出狀況的人,看到這種實用型常備藥真的會默默記下來。', date: '2026.03', color: '#FF9800', snsUrl: 'https://www.instagram.com/p/DV8pTwsD1kM/?img_index=1' }, { initial: '蔡', name: '蔡昀臻', attr: '20多歲・上班族', text: '身為外食族,有的時候工作壓力大,肚子總是卡卡的,這時就需要這個好幫手', date: '2026.03', color: '#2196F3', snsUrl: 'https://www.facebook.com/story.php?story_fbid=26081505711511890&id=100002374528664&mibextid=wwXIfr&rdid=KbFxdcK1fawc7zq3#' } ], voiceCount: 10 }, { id: 23, slug: 'oronine-h-ointment', name: 'Oronine H軟膏', brand: '大塚製藥', price: 385, priceNote: '11g軟管裝 ¥385 / 50g軟管裝 ¥770', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/oronine_portrait_under_1mb.jpg', label: 'type-exclusive', labelText: 'PR', plan: 'basic', isPR: true, originalUrl: 'https://www.otsuka.co.jp/ohn/', tip: '「PR」大塚製藥-Oronine H應急軟膏,在日長銷73年的家庭常備外傷用藥。含葡萄糖酸氯己定溶液,適用擦傷、乾裂、輕微燙傷及痤瘡等。11g與50g兩種尺寸,方便隨身攜帶。', tipFull: '第2類医薬品「PR」\n身邊有很多日本朋友跟我說,發跡於四國・徳島縣的「Oronine H軟膏」根本就是他們童年回憶的一部分。因為許多人的家中都會常備有這一瓶,只要調皮搗蛋擦傷,或是粗心大意不小心被燙到,甚至是冬天皮膚乾裂時,家人就會拿出這罐軟膏。不過也有11公克和50公克的條裝版本,方便攜帶可以放在包包作為隨身應急藥膏。\n\n「Oronine H軟膏」主要含有葡萄糖酸氯己定溶液(Chlorhexidine Gluconate),這是廣泛用於殺菌、消毒的有效成分。除了可以用於擦傷、刀傷、裂傷、乾裂、以及輕微燙傷等部位之外,亦可依適應症使用於痤瘡與粉刺等皮膚狀況。\n\n
📋 名稱 オロナインH軟膏
🏷 醫藥分類 第2類医薬品
✅ 適應症 擦傷・裂傷・乾裂・輕微燙傷・痤瘡・粉刺
\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: null, hasVideo: false, voices: [], voiceCount: 0 }, { id: 25, slug: 'taisho-gaichoyaku-k', name: '大正胃腸藥K', brand: '大正製藥', price: 1670, priceNote: '16包/70錠 ¥1,670 / 24包/110錠 ¥2,299 / 38包/190錠 ¥3,388 / 50包/230錠 ¥4,054', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/taisho-gaichoyaku-k-man-holding-1.jpg', label: 'type-exclusive', labelText: '日本限定', plan: 'basic', originalUrl: 'https://www.catalog-taisho.com/category/05/001/01082/', tip: '大正製藥-大正胃腸藥K,兼顧敏弱胃調理,幫助消化與舒緩緊張胃。獨家結合「安中散」與「芍藥甘草湯」,應對消化不良到壓力大引起的胃部不適。日本上班族高人氣家庭常備藥。', tipFull: '日本藥妝店裡陳列的眾多胃腸藥當中,誕生於1978年的大正漢方胃腸藥也是眾多日本人推崇的經典家庭常備藥。獨家結合能夠促進胃腸消化機能的「安中散」,以及舒緩胃部緊張狀態的「芍藥甘草湯」,能夠應對消化不良到壓力大引起的胃部不適,不少忙碌的日本上班族的抽屜或包包當中,都可見到這款長銷多年的胃腸藥。\n說到「大正胃腸藥K」,則是日本藥妝通才知道的大正漢方胃腸藥「芍薬甘草湯增量版」!同樣是5歲以上就可服用,但「芍藥甘草湯」的添加劑量則是從140毫克增量至170毫克!\n\n名稱:大正胃腸薬K\n醫藥分類:第2類医薬品\n適應症:胃痛、胃脹、胃炎、胃部不適、食慾不振、打嗝、腹痛、胸口灼熱、噁心、胃酸過多、腹部膨脹感\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: null, hasVideo: false, voices: [ { initial: 'R', name: 'RUBY Lee', attr: '20多歲・上班族', text: '我自己覺得用起來算是比較溫和,不會有太強烈的刺激感,但又可以慢慢讓腸胃舒服一點。', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid032mWxeYHKL1JKqorutHXjhPozw197trNdT61mfuyEBSwYgsBv9vNSk189kSEYypvol&id=100001498612711' }, { initial: '劉', name: '劉采蓉', attr: '30多歲・留學生', text: '裡面結合了「安中散」(針對胃痛、胃酸過多)以及「芍藥甘草湯」(偏鎮痛作用),整體是比較溫和的調理型胃藥。', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.facebook.com/teresa.liu.1293/posts/pfbid09ukmjszJhKUuMKEdoPNAo5Qz9wpjXtjN9kidRJ5cpnpRQs2JUNyykRFkYSf9eWZGl' }, { initial: 'P', name: 'purple', attr: '30多歲・上班族', text: '最喜歡的是它的微粒設計,顆粒非常細,小小的很好入口,也很容易溶於水。', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.instagram.com/p/DVk6NJvmWOu/?img_index=1' }, { initial: 'S', name: 'Sharon Hsieh', attr: '20多歲・上班族', text: '最近開始養成一個習慣—— 出國或回台灣一定會帶胃藥。', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/sharonxhsieh/posts/pfbid02CMHbUCU9sm7cG5pFfBS6suNG1CRewaphiA58r61JT3JJmqwMvQ7y8Z6GqwqCUCp7l' }, { initial: '花', name: '花森米米', attr: '30多歲・自由工作者', text: '獨立包裝,隨身攜帶方便,在外如果突然胃不舒服,就能馬上吃一包', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DV5MYIhEkKm/?img_index=1' } ], voiceCount: 5 } ] }, health: { title: '健康食品・食品', products: [ { id: 22, slug: 'naishidown-visceral-fat', name: 'NAISHI-DOWN減脂錠', brand: '井藤漢方製藥', price: 1980, priceNote: '60粒 ¥1,980', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/naishidown-ito-kampo-visceral-fat-supplement.jpg', label: 'type-hot', labelText: '話題', plan: 'gold', originalUrl: 'https://www.itohkampo.co.jp/products/101140039.html', tip: '井藤漢方「NAISHI-DOWN減脂錠」為一款採用黑薑由來多甲氧基黃酮(PMF)為關鍵成分的日本機能性表示食品。具備有助於BMI偏高者輔助減少腹部脂肪的機能性。', tipFull: '井藤漢方「NAISHI-DOWN減脂錠」為一款採用黑薑由來多甲氧基黃酮(PMF)為關鍵成分的日本機能性表示食品。黑薑由來的多甲氧基黃酮,在日本有研究報告指出,具備「有助於BMI偏高者輔助減少腹部脂肪(包含內臟脂肪與皮下脂肪)」的機能性。同時,也有報告指出在日常生活的基礎能量代謝下,幫助脂肪更有效率被消耗。每日建議攝取兩粒。草本氣味較弱,適合作為飲食控制期間的日常代謝輔助選擇。', column: 'https://www.japankuru.com/tw/shopping/263542/', hasVideo: true, videoId: 'i2f4VD2aeVs', voices: [ { initial: '新', name: '新日一成', attr: '40多歲・個人創業者', text: '對像我這種 BMI大概24以上、開始擔心肚子越來越大的中年族群,確實會比較有感覺', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.facebook.com/hu.wei.7/posts/pfbid0XzgFB6A6q2rUkE7rXSBuYYYN7fYZvNWYqojqrp25jnsSkjhNXPV67cYKVYvtE8HYl' }, { initial: 'K', name: 'Kobayashi Celine', attr: '40多歲・自由工作者', text: '很適合BMI24以上未滿30,在意體態與健康數值的人。', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.instagram.com/p/DV7X9uzD5uq/?igsh=MWgwa2p4OHZwMWhtNA%3D%3D&img_index=1' }, { initial: '花', name: '花森米米', attr: '30多歲・自由工作者', text: '這款在日本藥妝店一直很有討論度的內脂輕,真的很適合像我們這種生活忙碌、沒時間(懶得)運動的人', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.instagram.com/p/DV5MsQwkjrK/?img_index=1' }, { initial: 'A', name: 'Aya Mikazuki', attr: '30多歲・上班族', text: '最近開始更在意體態跟健康數值,發現其實「日常生活」也可以成為管理的一部分', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/vminqi/posts/pfbid021mkEcYvhezJeCkuCabH8mm2jCSbRxoLx3wBZU6tkNU5nfCoGXK77yDh8f3QbNoRql' }, { initial: '優', name: '優妮帶你遊大阪不踩雷', attr: '30多歲・上班族', text: '2月跟妹妹暢遊九州一路大吃,回到日常照鏡子,我真的開始在意腹部線條+健康數值…所以最近把井藤漢方製藥內脂輕加進我的日常保養清單。', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DVU_IsDkh7a/?img_index=1' } ], voiceCount: 5 }, { id: 24, slug: 'lipovitan-dx', name: '力保美達DX(リポビタンDX)', brand: '大正製藥', price: 1650, priceNote: '30錠 ¥1,650 / 90錠 ¥4,268 / 180錠 ¥6,468 / 270錠 ¥8,668', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/lipovitan-dx-man-holding-window.jpg', label: 'type-hot', labelText: '話題', plan: 'basic', originalUrl: 'https://www.taisho-direct.jp/simages/lp/adfm/LDXA.html', tip: '大正製藥-Lipovitan力保美達DX,日本元氣補充飲的錠劑版本。含牛磺酸500mg+維生素B群+助眠胺基酸「甘胺酸」,抗疲勞同時輔助改善淺眠等狀況。指定医薬部外品。', tipFull: '日本元氣補充飲系列的錠劑版本。改善疲勞同時兼顧睡眠情況。\n\n誕生於1960年代的力保美達,堪稱是日本元氣補充飲的先鋒,至今仍有許多日本上班族習慣「喝了再上」。力保美達的靈魂核心成分「牛磺酸」是胺基酸的一種,廣為人知的消除疲勞作用成分。\n\n錠劑版本的「力保美達DX」,是近幾年異軍突起的抗疲B群人氣新選擇。每日建議攝取的3粒當中,不僅含有500毫克的牛磺酸和維生素B群,還搭配助眠系胺基酸「甘胺酸」,超級適合忙碌的現代人用來抵抗疲勞,同時輔助隨年齡增加而出現的難以入睡、淺眠或不易醒來等狀況。\n\n名稱:LIPOVITAN DX\n醫藥分類:指定医薬部外品\n效能、效果:恢復及預防疲勞/改善難以入睡・淺睡・難以睡醒/維持及改善體力、身體抵抗力及集中力\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', tipFull: '誕生於1960年代的力保美達,堪稱是日本元氣補充飲的先鋒,至今仍有許多日本上班族習慣「喝了再上」。力保美達的靈魂核心成分「牛磺酸」是胺基酸的一種,廣為人知的消除疲勞作用成分。\n錠劑版本的「力保美達DX」,是近幾年異軍突起的抗疲B群人氣新選擇。每日建議攝取的3粒當中,不僅含有500毫克的牛磺酸和維生素B群,還搭配助眠系胺基酸「甘胺酸」,超級適合忙碌的現代人用來抵抗疲勞,同時輔助隨年齡增加而出現的難以入睡、淺眠或不易醒來等狀況。\n\n名稱:LIPOVITAN DX\n醫藥分類:指定医薬部外品\n效能、效果:恢復及預防疲勞/改善難以入睡・淺睡・難以睡醒/維持及改善體力、身體抵抗力及集中力\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: null, hasVideo: false, voices: [ { initial: '林', name: '林桑的日本遊記', attr: '40多歲・上班族', text: '這款是日本大正製藥的產品,在日本藥妝店其實滿常看到的!', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.instagram.com/p/DV54EL0EuHH/?img_index=1' }, { initial: '優', name: '優妮帶你遊大阪不踩雷', attr: '30多歲・上班族', text: '它沒咖啡因,加上睡眠支持成分グリシン、以及生藥シゴカ,所以我最常是「晚餐後~睡前」那段時間吃', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.instagram.com/p/DVU6niYEi4V/?img_index=1' }, { initial: '劉', name: '劉采蓉', attr: '30多歲・留學生', text: '我自己是在覺得有點累、或是壓力比較大、比較忙的時候會吃', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.facebook.com/teresa.liu.1293/posts/pfbid0zpGbKmihEmwSD4TSVE6Cqi7Zmb8hGt3nf36QMmoF3UAwRM92Z6ZSFtaTNyAZvpBql' }, { initial: 'S', name: 'Shanyu Lin', attr: '40多歲・家庭主婦', text: '同時改善睡眠問題,感覺根本就是我現在狀況設計的救星。', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/sacuralin/posts/pfbid02dJYFqBrcUBvnDoey24oD1prWWecrBedDWbEGYtZuSxPzQYfqNbwEBt5CggoRYiNLl' }, { initial: 'P', name: 'purple', attr: '30多歲・上班族', text: '我自己蠻喜歡的一點是它沒有咖啡因☕️❌ 所以就算是睡前也可以吃,不用擔心影響睡眠。', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DV8K6MombB5/?img_index=1' } ], voiceCount: 5 } ] }, daily: { title: '日用品', products: [ { id: 30, slug: 'pelack-t-throat', name: 'PELACK-T喉嚨消炎錠a', brand: '第一三共', price: 1430, priceNote: '18錠 ¥1,430 / 36錠 ¥2,640 / 54錠 ¥3,410', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/pelack-T3.png', label: 'type-exclusive', labelText: '日本限定', plan: 'gold', originalUrl: 'https://www.daiichisankyo-hc.co.jp/site_pelack/', tip: 'PELACK-T喉嚨消炎錠a為日本第三類醫藥品,主成分傳明酸(Tranexamic Acid)可透過抑制纖維蛋白溶解反應,降低發炎相關物質活性,協助改善喉嚨紅腫與疼痛不適。建議於症狀初期使用,有助於控制不適感。除喉嚨疼痛外,也可作為口內炎期間的輔助對症用藥。', tipFull: 'PELACK-T喉嚨消炎錠a為日本第三類醫藥品,主成分傳明酸(Tranexamic Acid)可透過抑制纖維蛋白溶解反應,降低發炎相關物質活性,協助改善喉嚨紅腫與疼痛不適。建議於症狀初期使用,有助於控制不適感。除喉嚨疼痛外,也可作為口內炎期間的輔助對症用藥。\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: 'https://www.japankuru.com/tw/shopping/264456/', hasVideo: true, videoId: '41SH1U8NWH8', voices: [ { initial: '劉', name: '劉采蓉', attr: '30多歲・留學生', text: '對於需要長時間講話、或是喉嚨容易反覆不舒服的人來說,真的蠻實用的', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/teresa.liu.1293/posts/pfbid0givUT7EP7QLWkFTW4e8aQ8696Ms1PNvEARQnds9WnbFMBFrai6upXhQhSZ9SVvRl' }, { initial: '青', name: '青醬的日本小確幸', attr: '40多歲・上班族', text: '這款在日本算是知名度很高的喉嚨藥,很多人只要覺得「喉嚨怪怪的」,就會先吃。', date: '2026.03', color: '#4CAF50', snsUrl: 'https://www.facebook.com/chinchaninjp/posts/pfbid0Gy5KviNi4fT48Ghew3NemnGabWbLFN3C1cKZd7HviUSMeL79VekTyx2FsAx79diQl' }, { initial: 'H', name: 'HimiKo', attr: '20多歲・自由工作者', text: '是許多需要頻繁用嗓音工作者的護身符♪', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.instagram.com/p/DWE8pMTAXn2/?img_index=1' }, { initial: 'W', name: 'Wei Wei', attr: '30多歲・上班族', text: '這款在旅遊圈被封為「喉嚨痛神藥」真的不是開玩笑', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid034dxkuKTKXHqMpSkihYcV9hbU8YzV37nnmfs1nsUW64L46kX46p8ey49hL32Bk7ttl&id=100001466739903' }, { initial: 'フ', name: 'ファン ナwナ', attr: '40多歲・上班族', text: '不含容易讓人想睡的成分,白天要上班或外出時吃也比較安心', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.instagram.com/p/DVnbtNcEqMS/?igsh=MXRpdWRieTcwenl5cg%3D%3D' }, { initial: 'Y', name: 'Yu Shan', attr: '40多歲・上班族', text: '最近喉嚨乾乾又有點痛,吃了之後真的有明顯緩解', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DWOOZVokVXZ/?img_index=1' }, { initial: '呂', name: '呂明怡', attr: '20多歲・上班族', text: '有時候換季、講話太多,或是感覺喉嚨開始乾乾痛痛的時候,我就會想到它', date: '2026.03', color: '#795548', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid0MdUXQAhgKAhCgtc6D3bd9f7GFxa3dfeBbMr5GXZAgAKrMCgYpyt6hit7T6oM8AFNl&id=100002589505586' }, { initial: '花', name: '花森米米', attr: '30多歲・自由工作者', text: '如果有喉嚨不舒服或容易嘴破的困擾,有來日本逛藥妝時也可以參考看看', date: '2026.03', color: '#607D8B', snsUrl: 'https://www.instagram.com/p/DVsxPd6kgIF/' }, { initial: 'B', name: 'BBQ in Japan', attr: '40多歲・個人創業者', text: '不知道實際效果如果,下次喉嚨開始不妙時來試看看', date: '2026.03', color: '#FF9800', snsUrl: 'https://www.facebook.com/BBQinJP/posts/pfbid0UiDRZdu9kTD6LVtCSYMPKVCnWXPXCfWder2vnN25Dj1kWk5CMfeQgwFHFAhSkiUZl' }, { initial: '廖', name: '廖小白', attr: '40多歲・上班族', text: '有時候口腔破,除了貼布,直接口服是比較快的', date: '2026.03', color: '#2196F3', snsUrl: 'https://www.facebook.com/100000142974546/posts/27152243391030393/?mibextid=wwXIfr&rdid=xdupk6r98viWkSGw#' } ], voiceCount: 10 }, { id: 31, slug: 'traful-mouth-patch', name: 'TRAFUL口內炎貼片a', brand: '第一三共', price: 1485, priceNote: '12片 ¥1,485 / 24片 ¥2,200', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/81rSZNyHgL._AC_SY879_.jpg', label: 'type-hot', labelText: '話題', plan: 'gold', originalUrl: 'https://www.daiichisankyo-hc.co.jp/site_traful/', tip: '第一三共HealthCare「TRAFUL口內炎貼片a」為日本熱銷對症用藥,專為復發性口內炎設計。0.16mm極薄貼片可直接貼附患部形成保護層,減少摩擦刺激,並釋放主要成分曲安奈德。約30~60分鐘自然溶解,無須撕除。輕巧好攜帶,適合復發性口內炎(嘴破)時備用。', tipFull: '第一三共HealthCare「TRAFUL口內炎貼片a」為日本熱銷對症用藥,專為復發性口內炎設計。0.16mm極薄貼片可直接貼附患部形成保護層,減少摩擦刺激,並釋放主要成分曲安奈德。約30~60分鐘自然溶解,無須撕除。輕巧好攜帶,適合復發性口內炎(嘴破)時備用。\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: 'https://www.japankuru.com/tw/shopping/264744/', hasVideo: true, videoId: 'b3h2Ybw2BW4', voices: [ { initial: '呂', name: '呂明怡', attr: '20多歲・上班族', text: 'Traful 的口內炎貼片,會慢慢自己溶解,不需要特別撕下來', date: '2026.03', color: '#795548', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid0MdUXQAhgKAhCgtc6D3bd9f7GFxa3dfeBbMr5GXZAgAKrMCgYpyt6hit7T6oM8AFNl&id=100002589505586' }, { initial: '花', name: '花森米米', attr: '30多歲・自由工作者', text: '以前都用塗藥的方式,改用這款之後只要貼一下就好~', date: '2026.03', color: '#607D8B', snsUrl: 'https://www.instagram.com/p/DVsxPd6kgIF/' }, { initial: 'H', name: 'HimiKo', attr: '20多歲・自由工作者', text: '貼上後大約30分~1小時就會自動溶解在口中,非常方便!', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.instagram.com/p/DWE8pMTAXn2/?img_index=1' }, { initial: 'W', name: 'Wei Wei', attr: '30多歲・上班族', text: '最方便的是它貼上去後會慢慢融化,不用擔心還要撕下來', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid034dxkuKTKXHqMpSkihYcV9hbU8YzV37nnmfs1nsUW64L46kX46p8ey49hL32Bk7ttl&id=100001466739903' }, { initial: 'フ', name: 'ファン ナwナ', attr: '40多歲・上班族', text: '貼片薄薄一片貼在患處,幾乎沒有什麼存在感', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.instagram.com/p/DVnbtNcEqMS/?igsh=MXRpdWRieTcwenl5cg%3D%3D' }, { initial: '劉', name: '劉采蓉', attr: '30多歲・留學生', text: '口內炎吃東西會痛、講話會摩擦到,真的很困擾的時候,這種貼片型產品就很方便。', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/teresa.liu.1293/posts/pfbid0givUT7EP7QLWkFTW4e8aQ8696Ms1PNvEARQnds9WnbFMBFrai6upXhQhSZ9SVvRl' }, { initial: 'Y', name: 'Yu Shan', attr: '40多歲・上班族', text: '貼片型真的超方便,貼上後會慢慢溶解,不需要一直撕來撕去', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DWOOZVokVXZ/?img_index=1' }, { initial: '青', name: '青醬的日本小確幸', attr: '40多歲・上班族', text: '一累就嘴破、或很容易咬到自己的人,這款真的可以先筆記。', date: '2026.03', color: '#4CAF50', snsUrl: 'https://www.facebook.com/chinchaninjp/posts/pfbid0Gy5KviNi4fT48Ghew3NemnGabWbLFN3C1cKZd7HviUSMeL79VekTyx2FsAx79diQl' }, { initial: 'B', name: 'BBQ in Japan', attr: '40多歲・個人創業者', text: '好處是會溶於你口,不用怕睡一覺起來後發現吞下去了!', date: '2026.03', color: '#FF9800', snsUrl: 'https://www.facebook.com/BBQinJP/posts/pfbid0UiDRZdu9kTD6LVtCSYMPKVCnWXPXCfWder2vnN25Dj1kWk5CMfeQgwFHFAhSkiUZl' }, { initial: '廖', name: '廖小白', attr: '40多歲・上班族', text: '有這個口內炎貼布,貼著吃東西,完全可以放心吃', date: '2026.03', color: '#2196F3', snsUrl: 'https://www.facebook.com/100000142974546/posts/27152243391030393/?mibextid=wwXIfr&rdid=xdupk6r98viWkSGw#' } ], voiceCount: 10 }, { id: 32, slug: 'loxonin-ex-tape', name: 'LOXONIN樂松EX貼布(ロキソニンEXテープ)', brand: '第一三共', price: 1408, priceNote: '7片 ¥1,408 / 14片 ¥2,178 / 21片 ¥2,948', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/loxonin_portrait_under_1mb.jpg', label: 'type-exclusive', labelText: '日本限定', plan: 'gold', originalUrl: 'https://www.daiichisankyo-hc.co.jp/site_loxonin-s/gaiyou/', tip: '樂松EX貼布,日本製藥大廠研發,含洛索洛芬鈉水合物8.1%,為系列最高濃度。適用於腰痛、肩頸痠痛、關節痛與肌肉拉傷等不適。貼布輕薄服貼、不易脫落,並添加維生素E與L-薄荷醇,使用方便。請依說明書指示正確使用。', tipFull: '樂松EX貼布,日本製藥大廠研發,含洛索洛芬鈉水合物8.1%,為系列最高濃度。適用於腰痛、肩頸痠痛、關節痛與肌肉拉傷等不適。貼布輕薄服貼、不易脫落,並添加維生素E與L-薄荷醇,使用方便。\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: 'https://www.japankuru.com/tw/shopping/264791/', hasVideo: false, voices: [ { initial: 'Y', name: 'Yu Shan', attr: '40多歲・上班族', text: '這款是醫療級的痠痛貼布,止痛成分濃度高,貼上後真的很有感', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DWONsWREfDX/?img_index=1' }, { initial: '廖', name: '廖小白', attr: '40多歲・上班族', text: '日本同事挫傷去醫院,醫師就是開Loxonin EX貼布給他!', date: '2026.03', color: '#2196F3', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid0uAxutCadifhTYW45h7LF21gZMF5vZ62HXLQA3W8WgpKivAEgGRXpQgrr58q8Hpwbl&id=100000142974546' }, { initial: 'H', name: 'HimiKo', attr: '20多歲・自由工作者', text: '含有與處方藥同級的止痛成分洛索洛芬鈉,針對肩膀僵硬、腰痛、小腿痠痛效果極佳', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.instagram.com/p/DWCQnXmga10/?img_index=1' }, { initial: 'W', name: 'Wei Wei', attr: '30多歲・上班族', text: '自己覺得蠻不錯的一點是,它的味道其實很淡,不像有些痠痛貼布會有很重的藥味', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid02W2fKVWxL1xEHaqVpP2WxbGK8gBtyao18quDnkhzqBjxpfpVLkSfbpPJfAMSaAUr5l&id=100001466739903' }, { initial: 'フ', name: 'ファン ナwナ', attr: '40多歲・上班族', text: '貼著活動時比較不會有很明顯的存在感,難怪在日本一直都很受歡迎', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.instagram.com/p/DVnWrIfEuNa/' }, { initial: '劉', name: '劉采蓉', attr: '30多歲・留學生', text: '由第一三共研發,原本就是醫院臨床使用的成分,因此效果一直很受到信賴', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/teresa.liu.1293/posts/pfbid02og544RVfHZ3gCtWegjLraKU2a2DgqECWK7tFsTUsZTdjYG7rVX4qtxRioFtwNG6Ql' }, { initial: '呂', name: '呂明怡', attr: '20多歲・上班族', text: '貼布本身也蠻薄的,黏性剛剛好,睡覺貼著也不太會掉', date: '2026.03', color: '#795548', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid0dQsg4vtbufWayhw173kesuvpV24NLheJWj8YucaZJFZHJNZ69phetJYo7jfctadol&id=100002589505586' }, { initial: '花', name: '花森米米', attr: '30多歲・自由工作者', text: '像我平常如果有腰酸、肩頸不舒服,就會貼一下放鬆舒緩', date: '2026.03', color: '#607D8B', snsUrl: 'https://www.instagram.com/p/DVsqd7Xklwp/' }, { initial: '青', name: '青醬的日本小確幸', attr: '40多歲・上班族', text: '去年因為手腕關節炎去醫院治療,那時醫生開給我的貼布就是這家品牌', date: '2026.03', color: '#4CAF50', snsUrl: 'https://www.facebook.com/chinchaninjp/posts/1719113232402175?ref=embed_post' }, { initial: 'B', name: 'BBQ in Japan', attr: '40多歲・個人創業者', text: '這個成分的貼布能真正的抑制深層的酸痛,並且不會涼到睡不著', date: '2026.03', color: '#FF9800', snsUrl: 'https://www.facebook.com/BBQinJP/posts/pfbid08dhyHMXChtkoue5gsoxytadiTidvCcHCeK2kGTsA82uxWMsHvtF1kigX1XTNDUh6l' } ], voiceCount: 10 }, { id: 33, slug: 'transino-white-c-premium', name: '傳皙諾TRANSINO WHITE C PREMIUM(トランシーノホワイトCプレミアム)', brand: '第一三共', price: 2310, priceNote: '90錠 ¥2,310 / 180錠 ¥3,520 / 270錠 ¥4,840', image: 'https://www.japankuru.com/gld-kanri/data/uploads/2026/03/01-Transino-white-C-premium-0318-scaled.jpg', label: 'type-hot', labelText: '話題', plan: 'gold', originalUrl: 'https://www.daiichisankyo-hc.co.jp/site_transino/', tip: '傳皙諾TRANSINO WHITE C PREMIUM是日本人氣美白錠,主打 L-半胱胺酸與維生素C 雙核心成分,搭配五種美肌支持維生素,輔助抑制黑色素、協助促進肌膚代謝與抗氧化。適合想改善斑點、雀斑及日曬色素沉澱者,每日依指示服用,搭配日常保養,成為美肌輕鬆補給的好選擇。', tipFull: '傳皙諾TRANSINO WHITE C PREMIUM是日本人氣美白錠,主打 L-半胱胺酸與維生素C 雙核心成分,搭配五種美肌支持維生素,輔助抑制黑色素、協助促進肌膚代謝與抗氧化。適合想改善斑點、雀斑及日曬色素沉澱者,每日依指示服用,搭配日常保養,成為美肌輕鬆補給的好選擇。\n※:使用前請詳閱說明書並依指示之適應症與用法用量使用。', column: 'https://www.japankuru.com/tw/shopping/264796/', hasVideo: false, voices: [ { initial: 'フ', name: 'ファン ナwナ', attr: '40多歲・上班族', text: '這系列在日本真的很常看到,不只是觀光客會買,其實很多日本人也會長期補充', date: '2026.03', color: '#3F51B5', snsUrl: 'https://www.instagram.com/p/DVnWrIfEuNa/' }, { initial: '劉', name: '劉采蓉', attr: '30多歲・留學生', text: '如果平常有在關注日本藥妝的人,應該對這款不陌生。', date: '2026.03', color: '#009688', snsUrl: 'https://www.facebook.com/teresa.liu.1293/posts/pfbid02og544RVfHZ3gCtWegjLraKU2a2DgqECWK7tFsTUsZTdjYG7rVX4qtxRioFtwNG6Ql' }, { initial: 'H', name: 'HimiKo', attr: '20多歲・自由工作者', text: '如果想要擁有日本女生那種透明感肌膚,除了外擦,平時內服的補給保養也是關鍵!', date: '2026.03', color: '#E91E63', snsUrl: 'https://www.instagram.com/p/DWCQnXmga10/?img_index=1' }, { initial: 'W', name: 'Wei Wei', attr: '30多歲・上班族', text: '由內而外的調理也很重要。這款算是日本開架美白錠裡面比較高階的版本', date: '2026.03', color: '#9C27B0', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid02W2fKVWxL1xEHaqVpP2WxbGK8gBtyao18quDnkhzqBjxpfpVLkSfbpPJfAMSaAUr5l&id=100001466739903' }, { initial: 'Y', name: 'Yu Shan', attr: '40多歲・上班族', text: '它含有日本醫藥級、最高規格的L-半胱胺酸(240mg),再加上2000mg的維他命C', date: '2026.03', color: '#FF5722', snsUrl: 'https://www.instagram.com/p/DWONsWREfDX/?img_index=1' }, { initial: '呂', name: '呂明怡', attr: '20多歲・上班族', text: '這款在日本算是很有名的美白維他命,維生素C含量很高', date: '2026.03', color: '#795548', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid0dQsg4vtbufWayhw173kesuvpV24NLheJWj8YucaZJFZHJNZ69phetJYo7jfctadol&id=100002589505586' }, { initial: '花', name: '花森米米', attr: '30多歲・自由工作者', text: '這款美白錠在日本很有人氣!是日本知名製藥公司第一三共的品牌', date: '2026.03', color: '#607D8B', snsUrl: 'https://www.instagram.com/p/DVsqd7Xklwp/' }, { initial: '青', name: '青醬的日本小確幸', attr: '40多歲・上班族', text: '這款也是日本藥妝店很常看到的熱銷商品', date: '2026.03', color: '#4CAF50', snsUrl: 'https://www.facebook.com/chinchaninjp/posts/1719113232402175?ref=embed_post' }, { initial: 'B', name: 'BBQ in Japan', attr: '40多歲・個人創業者', text: '效果怎樣我不太清楚,不過有買過的老婆覺得效果還可以', date: '2026.03', color: '#FF9800', snsUrl: 'https://www.facebook.com/BBQinJP/posts/pfbid08dhyHMXChtkoue5gsoxytadiTidvCcHCeK2kGTsA82uxWMsHvtF1kigX1XTNDUh6l' }, { initial: '廖', name: '廖小白', attr: '40多歲・上班族', text: '第一三共是日本藥妝大公司,對於日常生活所需的產品非常重視', date: '2026.03', color: '#2196F3', snsUrl: 'https://www.facebook.com/permalink.php?story_fbid=pfbid0uAxutCadifhTYW45h7LF21gZMF5vZ62HXLQA3W8WgpKivAEgGRXpQgrr58q8Hpwbl&id=100000142974546' } ], voiceCount: 10 } ] } }; let myList = JSON.parse(localStorage.getItem('cheGuide2026') || '[]'); let currentTab = 'cosme'; function renderTabs() { const container = document.getElementById('tabContents'); if (!container) return; // 카테고리 레이아웃으로 교체됨 container.innerHTML = ''; Object.keys(tabData).forEach(function(key) { const data = tabData[key]; const isActive = key === currentTab; let productsHtml = data.products.map(function(p) { return renderProduct(p); }).join(''); container.innerHTML += '
' + productsHtml + '
'; }); } function renderProduct(p) { const isInList = myList.includes(p.id); const isBasicPlan = p.plan === 'basic'; let avatars = ''; if (p.voices) { avatars = p.voices.slice(0, 5).map(function(v) { return '' + v.initial + ''; }).join(''); } const hasVideoClass = p.hasVideo ? 'item-thumb-video' : ''; const videoOverlay = p.hasVideo ? '
觀看影片
' : ''; const basicPlanClass = ''; let html = '
'; html += '
'; html += '' + p.name + ''; if (p.label) html += '' + p.labelText + ''; html += videoOverlay; html += '
'; if (p.hasVideo) html += ' 影片'; if (p.column) html += ' 文章'; html += '
'; html += ''; html += '
'; html += '
'; html += '

' + p.name + '

'; html += '
¥' + p.price.toLocaleString() + ''; if (p.labelText) html += '' + p.labelText + ''; html += '
'; html += '
'; html += '
'; html += ''; html += '
鄭世彬日本藥粧研究家
'; html += '
'; html += '

' + (p.tipFull || p.tip) + '

'; html += '
'; // Column preview for plans with column (standard, gold, platinum) if (p.column) { html += ''; html += '世彬老師專欄'; html += '「' + p.name + '」徹底評測!'; html += ''; html += ''; // Voice preview for plans with column - show 2 reviews on card if (p.voices && p.voices.length > 0) { html += '
'; html += '
體驗者心得
'; p.voices.slice(0, 2).forEach(function(v) { html += '
'; html += '
'; html += '
' + v.initial + '
'; html += '' + v.name + ''; html += '' + v.attr + ''; html += '
'; html += '

' + v.text + '

'; html += '
'; }); html += '
'; } } if (p.voices && p.voices.length > 0) { html += '
' + avatars + '
'; html += '體驗評價 ' + p.voiceCount + '則'; html += '
'; } // Original URL link - REMOVED from card, moved to modal html += ''; html += '
'; html += ''; html += '
'; return html; } function getSnsIcon(url) { if (!url) return ''; if (url.includes('instagram.com')) return ''; if (url.includes('facebook.com')) return ''; if (url.includes('twitter.com') || url.includes('x.com')) return ''; if (url.includes('youtube.com')) return ''; if (url.includes('tiktok.com')) return ''; return ''; } function shareItem(title) { if (navigator.share) { navigator.share({ title: title, url: location.href }); } else { navigator.clipboard.writeText(location.href); showToast('已複製連結!'); } } function handleCardClick(id, event) { openDetailModal(id); } function toggleCardExpand(btn, event) { event.stopPropagation(); const card = btn.closest('.card'); card.classList.toggle('expanded'); } function switchTab(tab) { if (!document.querySelector('.tab-btn')) return; currentTab = tab; document.querySelectorAll('.tab-btn').forEach(function(btn) { btn.classList.remove('active'); }); var activeBtn = document.querySelector('[data-tab="' + tab + '"]'); if (activeBtn) activeBtn.classList.add('active'); document.querySelectorAll('.tab-content').forEach(function(content) { content.classList.remove('active'); }); var tabEl = document.getElementById('tab-' + tab); if (tabEl) tabEl.classList.add('active'); } function getAllProducts() { let all = []; Object.values(tabData).forEach(function(t) { all = all.concat(t.products); }); return all; } function scrollToProduct(id) { // 상품 카드로 스크롤 → 하이라이트 var cardEl = document.querySelector('.card[data-id="' + id + '"]'); if (cardEl) { var offset = 100; var top = cardEl.getBoundingClientRect().top + window.pageYOffset - offset; window.scrollTo({ top: top, behavior: 'smooth' }); // 하이라이트 cardEl.classList.add('card-highlight'); setTimeout(function() { cardEl.classList.remove('card-highlight'); }, 2000); } else { // 카드 없으면 모달 (플레이스홀더 등) openDetailModal(id); } } function openDetailModal(id) { const all = getAllProducts(); const p = all.find(function(x) { return x.id === id; }); if (!p) return; // GA4 product click event try { if (typeof gtag === 'function') { gtag('event', 'product_click', { product_id: p.id, product_name: p.name, product_brand: p.brand || '', product_slug: p.slug || '' }); } } catch(e) {} // Set URL parameter with slug const url = new URL(window.location.href); url.searchParams.set('product', p.slug); try { window.history.replaceState({}, '', url); } catch(e) {} isMobile() ? openBottomSheet(p) : openPcModal(p); } function openPcModal(p) { const modal = document.getElementById('detailModal'); const visual = document.getElementById('modalVisual'); if (p.hasVideo && p.videoId) { visual.classList.add('has-video'); visual.innerHTML = ''; } else { visual.classList.remove('has-video'); visual.innerHTML = '' + p.name + ''; } // 카드 앞면 .ci에도 has-video 클래스 토글 const cardEl = document.querySelector('.card[data-id="' + p.id + '"]'); if (cardEl) { const ciEl = cardEl.querySelector('.ci'); if (ciEl) { if (p.hasVideo) ciEl.classList.add('has-video'); else ciEl.classList.remove('has-video'); } } document.getElementById('modalName').textContent = p.name; document.getElementById('modalPrice').textContent = '¥' + p.price.toLocaleString(); const modalTipText = p.tipFull || p.tip || ''; const modalDisc = '※:使用前請詳閱說明書並依指示之適應症與用法用量使用。'; document.getElementById('modalTip').innerHTML = modalTipText.includes('※') ? modalTipText : modalTipText + '
' + modalDisc + ''; const voicesDiv = document.getElementById('modalVoices'); const voiceList = document.getElementById('modalVoiceList'); if (p.voices && p.voices.length > 0) { voicesDiv.style.display = 'block'; document.getElementById('modalVoiceCount').textContent = p.voiceCount + '則'; voiceList.innerHTML = p.voices.map(function(v) { return ''; }).join(''); } else { voicesDiv.style.display = 'none'; } const ctaBtn = document.getElementById('modalCta'); if (p.column) { ctaBtn.href = p.column; ctaBtn.style.display = 'block'; } else { ctaBtn.style.display = 'none'; } // Set official URL const officialBtn = document.getElementById('modalOfficialBtn'); if (p.originalUrl) { officialBtn.href = p.originalUrl; officialBtn.style.display = 'flex'; } else { officialBtn.style.display = 'none'; } currentModalId = p.id; updateModalHeartBtn(); modal.classList.add('active'); } function openBottomSheet(p) { const visual = document.getElementById('bsVisual'); // 영상 없는 사진 전용 상품은 이미지 영역 축소 const compactIds = [4, 5, 23, 24, 25, 32, 33]; if (compactIds.includes(p.id)) { visual.classList.add('compact-visual'); } else { visual.classList.remove('compact-visual'); } if (p.hasVideo && p.videoId) { visual.classList.add('has-video'); visual.innerHTML = ''; } else { visual.classList.remove('has-video'); visual.innerHTML = '' + p.name + ''; } document.getElementById('bsName').textContent = p.name; document.getElementById('bsPrice').textContent = '¥' + p.price.toLocaleString(); const tipText = p.tipFull || p.tip || ''; const bsDisc = '※:使用前請詳閱說明書並依指示之適應症與用法用量使用。'; document.getElementById('bsTip').innerHTML = tipText.includes('※') ? tipText : tipText + '
' + bsDisc + ''; const columnLink = document.getElementById('bsColumn'); if (p.column) { columnLink.href = p.column; columnLink.style.display = 'flex'; document.getElementById('bsColumnTitle').textContent = p.name + '的詳細解說'; } else { columnLink.style.display = 'none'; } const voicesDiv = document.getElementById('bsVoices'); const voiceList = document.getElementById('bsVoiceList'); if (p.voices && p.voices.length > 0) { voicesDiv.style.display = 'block'; document.getElementById('bsVoiceCount').textContent = p.voiceCount + '則'; voiceList.innerHTML = p.voices.map(function(v) { return '
' + v.initial + '

' + v.name + '

' + v.attr + '

' + v.text + '

'; }).join(''); } else { voicesDiv.style.display = 'none'; } // Set official URL const officialBtn = document.getElementById('bsOfficialBtn'); if (p.originalUrl) { officialBtn.href = p.originalUrl; officialBtn.style.display = 'flex'; } else { officialBtn.style.display = 'none'; } currentBsId = p.id; updateBsHeartBtn(); document.getElementById('bsOverlay').classList.add('is-open'); document.body.style.overflow = 'hidden'; } function closeBottomSheet() { const id = currentBsId; // Clear URL parameter const url = new URL(window.location.href); url.searchParams.delete('product'); try { window.history.replaceState({}, '', url); } catch(e) {} document.getElementById('bsOverlay').classList.remove('is-open'); document.body.style.overflow = ''; currentBsId = null; // 닫은 후 해당 카드의 카테고리 섹션으로 스크롤 복귀 if (id) { setTimeout(function() { var cardEl = document.querySelector('.card[data-id="' + id + '"]'); if (cardEl) { var catSection = null; // 카드의 상위 cat-hd 섹션 찾기 (이전 형제 순회) var el = cardEl; while (el && el.parentElement) { el = el.parentElement; var prevCat = el.previousElementSibling; while (prevCat) { if (prevCat.classList && prevCat.classList.contains('cat-hd')) { catSection = prevCat; break; } prevCat = prevCat.previousElementSibling; } if (catSection) break; } var target = catSection || cardEl; var offset = 80; var top = target.getBoundingClientRect().top + window.pageYOffset - offset; window.scrollTo({ top: top, behavior: 'smooth' }); } else { // 동적 카드(탭 렌더링)인 경우 products-section으로 var sec = document.getElementById('products-section'); if (sec) sec.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }, 150); } } function updateBsHeartBtn() { const btn = document.getElementById('bsHeartBtn'); const isInList = myList.includes(currentBsId); btn.classList.toggle('active', isInList); btn.innerHTML = isInList ? '' : ''; } function toggleListFromBottomSheet() { if (!currentBsId) return; toggleList(currentBsId); updateBsHeartBtn(); } function shareToLineFromBS() { if (!currentBsId) return; const all = getAllProducts(); const p = all.find(function(x) { return x.id === currentBsId; }); if (p) { const productUrl = window.location.origin + window.location.pathname + '?product=' + p.slug; const text = encodeURIComponent(p.name + '\n¥' + p.price.toLocaleString() + '\n\n' + productUrl); window.open('https://line.me/R/msg/text/?' + text, '_blank'); } } function shareProductFromBS() { if (!currentBsId) return; const all = getAllProducts(); const p = all.find(function(x) { return x.id === currentBsId; }); if (p) shareItem(p.name); } function closeDetailModal() { // Clear URL parameter const url = new URL(window.location.href); url.searchParams.delete('product'); try { window.history.replaceState({}, '', url); } catch(e) {} document.getElementById('detailModal').classList.remove('active'); currentModalId = null; } function updateModalHeartBtn() { const btn = document.getElementById('modalHeartBtn'); const isInList = myList.includes(currentModalId); btn.classList.toggle('active', isInList); btn.innerHTML = isInList ? '' : ''; } function shareToLineProduct() { if (!currentModalId) return; const all = getAllProducts(); const p = all.find(function(x) { return x.id === currentModalId; }); if (p) { const productUrl = window.location.origin + window.location.pathname + '?product=' + p.slug; const text = encodeURIComponent(p.name + '\n¥' + p.price.toLocaleString() + '\n\n' + productUrl); window.open('https://line.me/R/msg/text/?' + text, '_blank'); } } function toggleList(id, event) { if (event) { event.stopPropagation(); const btn = event.currentTarget; const icon = btn.querySelector('i'); if (myList.includes(id)) { myList = myList.filter(function(x) { return x !== id; }); btn.classList.remove('active'); icon.classList.remove('fas'); icon.classList.add('far'); showToast('已從收藏中移除'); } else { myList.push(id); btn.classList.add('active'); icon.classList.remove('far'); icon.classList.add('fas'); btn.style.transform = 'scale(1.3)'; setTimeout(function() { btn.style.transform = 'scale(1)'; }, 200); showToast('已加入清單!'); } localStorage.setItem('cheGuide2026', JSON.stringify(myList)); updateCount(); initCardHeartButtons(); // 카드 하트 상태 갱신 } else { if (myList.includes(id)) { myList = myList.filter(function(x) { return x !== id; }); } else { myList.push(id); showToast('已加入清單'); } localStorage.setItem('cheGuide2026', JSON.stringify(myList)); updateCount(); initCardHeartButtons(); // 카드 하트 상태 갱신 } } function toggleListFromModal() { if (!currentModalId) return; toggleList(currentModalId); updateModalHeartBtn(); } function updateCount() { document.getElementById('listCount').textContent = myList.length; } function openListModal() { const modal = document.getElementById('listModal'); const container = document.getElementById('listItems'); const footer = document.getElementById('listFooter'); const screenshotTip = document.getElementById('listScreenshotTip'); const all = getAllProducts(); if (myList.length === 0) { container.innerHTML = '

尚未加入任何商品

'; footer.style.display = 'none'; screenshotTip.style.display = 'none'; } else { container.innerHTML = myList.map(function(id) { const p = all.find(function(x) { return x.id === id; }); if (!p) return ''; return '

' + p.name + '

¥' + p.price.toLocaleString() + '

'; }).join(''); footer.style.display = 'flex'; screenshotTip.style.display = 'flex'; } modal.classList.add('active'); } function closeListModal() { document.getElementById('listModal').classList.remove('active'); } function removeFromList(id) { myList = myList.filter(function(x) { return x !== id; }); localStorage.setItem('cheGuide2026', JSON.stringify(myList)); updateCount(); renderTabs(); openListModal(); } function shareToLine() { const all = getAllProducts(); const items = myList.map(function(id) { const p = all.find(function(x) { return x.id === id; }); return p ? '・' + p.name + ' ¥' + p.price.toLocaleString() : ''; }).filter(Boolean).join('\n'); const text = encodeURIComponent('【世彬老師的推薦2026春】我的購物清單\n\n' + items + '\n\n詳情請看:' + location.href); window.open('https://line.me/R/msg/text/?' + text, '_blank'); } function copyUrlFromModal() { if (!currentModalId) return; const all = getAllProducts(); const p = all.find(function(x) { return x.id === currentModalId; }); if (!p) return; const productUrl = window.location.origin + window.location.pathname + '?product=' + p.slug; navigator.clipboard.writeText(productUrl).then(function() { showToast('已複製商品網址!'); }).catch(function() { showToast('複製失敗,請重試'); }); } function copyUrlFromBS() { if (!currentBsId) return; const all = getAllProducts(); const p = all.find(function(x) { return x.id === currentBsId; }); if (!p) return; const productUrl = window.location.origin + window.location.pathname + '?product=' + p.slug; navigator.clipboard.writeText(productUrl).then(function() { showToast('已複製商品網址!'); }).catch(function() { showToast('複製失敗,請重試'); }); } function copyUrl() { navigator.clipboard.writeText(location.href); showToast('已複製網址!'); } function copyCode(code) { navigator.clipboard.writeText(code); showToast('已複製優惠碼!'); } function showToast(msg) { const toast = document.getElementById('toast'); document.getElementById('toastText').textContent = msg; toast.classList.add('show'); setTimeout(function() { toast.classList.remove('show'); }, 2500); } // Tab button events document.querySelectorAll('.tab-btn').forEach(function(btn) { btn.addEventListener('click', function() { switchTab(btn.dataset.tab); }); }); // Store tab events document.querySelectorAll('.store-tab').forEach(function(btn) { btn.addEventListener('click', function() { document.querySelectorAll('.store-tab').forEach(function(b) { b.classList.remove('active'); }); btn.classList.add('active'); const store = btn.dataset.store; document.querySelectorAll('.store-panel').forEach(function(p) { p.classList.remove('active'); }); document.getElementById('store-' + store).classList.add('active'); }); }); // Modal outside click close document.getElementById('detailModal').addEventListener('click', function(e) { if (e.target === document.getElementById('detailModal')) closeDetailModal(); }); document.getElementById('listModal').addEventListener('click', function(e) { if (e.target === document.getElementById('listModal')) closeListModal(); }); // Initialize renderTabs(); updateCount(); // DOM이 완전히 준비된 후 배지 삽입 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { initCardHeartButtons(); initCardVideoOverlays(); updateCardVpSections(); }); } else { initCardHeartButtons(); initCardVideoOverlays(); } // 카드 앞면 하트(즐겨찾기) 버튼 동적 삽입 function initCardHeartButtons() { document.querySelectorAll('.card[data-id]').forEach(function(card) { const id = parseInt(card.getAttribute('data-id')); const ciEl = card.querySelector('.ci') || card.querySelector('.ci-h'); if (!ciEl) return; // 기존 버튼 제거 후 재생성 (상태 갱신용) const existing = ciEl.querySelector('.btn-like-float'); if (existing) existing.remove(); const btn = document.createElement('button'); const isActive = myList.includes(id); btn.className = 'btn-like-float' + (isActive ? ' active' : ''); btn.innerHTML = ''; btn.addEventListener('click', function(e) { toggleList(id, e); }); ciEl.appendChild(btn); }); } // 카드 영상 배지 — A안(이미지 하단 좌측 pill) + C안(footer chip) // 카드 앞면 vp-section을 tabData 실제 데이터로 갱신 function updateCardVpSections() { var all = getAllProducts(); all.forEach(function(p) { var cardEl = document.querySelector('.card[data-id="' + p.id + '"]'); if (!cardEl) return; var vpEl = cardEl.querySelector('.vp-section'); if (!vpEl) return; if (!p.voices || p.voices.length === 0) { vpEl.style.display = 'none'; return; } // 앞 2건만 // ● 더미 데이터면 vp-section 숨김 var realVoices = p.voices.filter(function(v) { return v.text && !v.text.includes('●'); }); if (realVoices.length === 0) { vpEl.style.display = 'none'; return; } var cards = realVoices.slice(0, 2).map(function(v) { var icon = v.snsUrl ? ('' + getSnsIcon(v.snsUrl) + '') : ''; return '
' + '
' + '
' + v.initial + '
' + '' + v.name + '' + '' + v.attr + '' + icon + '
' + '

' + v.text + '

' + '
'; }).join(''); vpEl.innerHTML = '
體驗者心得
' + cards; }); } function initCardVideoOverlays() { const all = getAllProducts(); all.forEach(function(p) { if (!p.hasVideo || !p.videoId) return; const cardEl = document.querySelector('.card[data-id="' + p.id + '"]'); if (!cardEl) return; // A안: .ci 하단 좌측 pill const ciEl = cardEl.querySelector('.ci') || cardEl.querySelector('.ci-h'); if (ciEl && !ciEl.querySelector('.video-pill')) { ciEl.style.position = 'relative'; const pill = document.createElement('div'); pill.className = 'video-pill'; pill.innerHTML = ' 影片'; ciEl.appendChild(pill); } // cf 영역 vid-chip 제거 — 썸네일 pill만 사용 }); } // 필터바 active 스크롤 연동 (function() { var catIds = ['cat1','cat2','cat3','cat4']; var fbBtns = document.querySelectorAll('.cat-fb'); if (!fbBtns.length) return; var observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { var id = entry.target.id; fbBtns.forEach(function(btn) { btn.classList.remove('active'); }); var idx = catIds.indexOf(id); if (idx >= 0 && fbBtns[idx + 1]) fbBtns[idx + 1].classList.add('active'); } }); }, { rootMargin: '-20% 0px -60% 0px', threshold: 0 }); catIds.forEach(function(id) { var el = document.getElementById(id); if (el) observer.observe(el); }); })(); // Scroll-triggered fade-in animations const observerOptions = { threshold: 0.1, rootMargin: '0px 0px -40px 0px' }; const fadeObserver = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { entry.target.classList.add('is-visible'); fadeObserver.unobserve(entry.target); } }); }, observerOptions); document.querySelectorAll('.split-banner-section, .featured-section, .products-section, .sakura-section, .store-guide, .outro-section').forEach(function(el) { el.classList.add('fade-section'); fadeObserver.observe(el); }); // Check URL parameter for direct product link (function() { const params = new URLSearchParams(window.location.search); const productSlug = params.get('product'); if (productSlug) { setTimeout(function() { const all = getAllProducts(); const p = all.find(function(x) { return x.slug === productSlug; }); if (p) openDetailModal(p.id); }, 300); } })(); // Hero photo + speech slideshow (function() { var current = 0; var total = 3; var interval = 4000; function goToSlide(n) { document.querySelectorAll('.tei-slide').forEach(function(el) { el.classList.remove('active'); }); document.querySelectorAll('.speech-slide').forEach(function(el) { el.classList.remove('active'); }); document.querySelectorAll('.tei-dot').forEach(function(el) { el.classList.remove('active'); }); document.querySelectorAll('[data-slide="' + n + '"]').forEach(function(el) { el.classList.add('active'); }); current = n; } // Auto rotate setInterval(function() { goToSlide((current + 1) % total); }, interval); // Click dots document.querySelectorAll('.tei-dot').forEach(function(dot) { dot.addEventListener('click', function() { goToSlide(parseInt(this.getAttribute('data-slide'))); }); }); })(); // Onboarding tooltip - show once for first-time visitors (function() { if (localStorage.getItem('cheOnboarded')) return; var tip = document.getElementById('onboardingTip'); var shown = false; var observer = new IntersectionObserver(function(entries) { if (entries[0].isIntersecting && !shown) { shown = true; setTimeout(function() { tip.classList.add('show'); }, 1500); // Auto-hide after 8 seconds setTimeout(function() { closeOnboarding(); }, 9500); } }, { threshold: 0.3 }); var productsSection = document.querySelector('.products-section'); if (productsSection) observer.observe(productsSection); })(); function closeOnboarding() { var tip = document.getElementById('onboardingTip'); if (tip) { tip.style.opacity = '0'; tip.style.transition = 'opacity 0.3s'; setTimeout(function() { tip.style.display = 'none'; }, 300); } localStorage.setItem('cheOnboarded', '1'); } /* === Sakura Date Matcher + Seasonal Switch === */ (function() { var skCities = [ { name:'名古屋', bloom:'3/17', full:'3/27', fall:'3/31', snow:'4/3', img:'', tip:'', sensei:'名古屋城和鶴舞公園是賞櫻好去處!今年東海地區已提早開花,目前正值滿開,週末是最佳賞花時機 🎌' }, { name:'東京', bloom:'3/19', full:'3/27', fall:'3/31', snow:'4/3', img:'', tip:'', sensei:'東京推薦上野公園和目黑川!今年3/19開花,3/27已滿開!週末5月暖陽,賞花最佳時期 😊' }, { name:'福岡', bloom:'3/24', full:'3/30', fall:'4/3', snow:'4/6', img:'', tip:'', sensei:'福岡已開花!舞鶴公園和西公園是賞櫻名所,搭配太宰府一日遊剛剛好,3/30預計滿開 🚃' }, { name:'大阪', bloom:'3/26', full:'4/1', fall:'4/5', snow:'4/8', img:'', tip:'', sensei:'大阪3/26開花!大阪城公園和造幣局通り抜け是必去,4月初就是滿開黃金期,造幣局只開放一週 🏯' }, { name:'京都', bloom:'3/23', full:'3/31', fall:'4/5', snow:'4/8', img:'', tip:'', sensei:'京都3/23開花!哲學之道和蹴上傾斜鐵道超美,3/31預計滿開,4月初是黃金賞花期,建議一大早去 🌸' }, { name:'仙台', bloom:'3/31', full:'4/5', fall:'4/9', snow:'4/13', img:'', tip:'', sensei:'仙台3/31預計開花,比平年早8天!白石川沿岸8公里的一目千本櫻超壯觀,4月上旬是最佳時機 🚂' }, { name:'札幌', bloom:'4/23', full:'4/27', fall:'5/1', snow:'5/4', img:'', tip:'', sensei:'北海道今年也比平年早,4/23開花!5月的札幌完全沒有花粉,圓山公園可以邊烤肉邊賞櫻 🦌' }, { name:'沖繩', bloom:'1/15', full:'2/1', fall:'2/8', snow:'2/12', img:'', tip:'', sensei:'沖繩的寒緋櫻是深粉色,和本州染井吉野完全不同。1~2月在今帰仁城跡就能看到!今年已結束' } ]; function skParseDate(str, yr) { yr = yr || 2026; var p = str.split('/'); return new Date(yr, parseInt(p[0])-1, parseInt(p[1])); } /* --- Seasonal Auto-Switch --- */ var now = new Date(); var heroEl = document.getElementById('sakura-section'); var detailEl = document.querySelector('.sakura-section'); var senseiText = document.getElementById('skSenseiText'); var phase1End = new Date(2026, 3, 15); // 4/15 var phase2End = new Date(2026, 4, 10); // 5/10 if (now > phase2End) { // Phase 3: season over — hide hero, simplify detail section if (heroEl) heroEl.style.display = 'none'; if (detailEl) { var inner = detailEl.querySelector('.sakura-inner'); if (inner) { inner.innerHTML = '
' + '
🌿
' + '
2026年的櫻花季已結束
' + '

感謝大家今年的賞櫻!
接下來進入夏季,別忘了防曬和消暑對策商品~

' + '
' + '世彬老師' + '

櫻花季結束了,但夏天的日本也很精彩!防曬、止汗、防蚊⋯⋯我的推薦商品都在上面,記得看看唷 ☀️

' + '
' + '
'; } } } else if (now > phase1End && senseiText) { // Phase 2: tokyo/osaka ended, sapporo highlight senseiText.innerHTML = '東京・大阪的櫻花差不多結束了,但札幌現在正是滿開!
5月去北海道完全沒有花粉困擾,推薦給怕花粉的朋友 🌸'; var cityEls = document.querySelectorAll('.sakura-city'); cityEls.forEach(function(el) { el.classList.remove('active'); if (el.querySelector('.name') && el.querySelector('.name').textContent === '札幌') { el.classList.add('active'); } }); } // Phase 1 (default): as-is /* --- Date Matcher --- */ document.getElementById('skDateBtn').addEventListener('click', function() { var sv = document.getElementById('skTravelStart').value; var ev = document.getElementById('skTravelEnd').value; if (!sv || !ev) return; var start = new Date(sv), end = new Date(ev); var best = null, bestScore = -999, bestStage = ''; skCities.forEach(function(c) { var bloom = skParseDate(c.bloom), full = skParseDate(c.full); var fall = skParseDate(c.fall), snow = skParseDate(c.snow); var os = new Date(Math.max(start, bloom)); var oe = new Date(Math.min(end, snow)); var overlap = (oe - os) / 864e5; if (overlap > 0) { var mid = new Date((start.getTime() + end.getTime()) / 2); var dist = Math.abs(mid - full) / 864e5; var score = overlap * 10 - dist; if (score > bestScore) { bestScore = score; best = c; bestStage = mid < bloom ? 'before' : mid < full ? 'bloom' : mid < fall ? 'full' : mid < snow ? 'fall' : 'snow'; } } }); if (!best) { alert('該期間沒有適合賞櫻的城市,建議調整日期!'); return; } var info = { before: { icon:'🌱', badge:'即將開花', status:'還在含苞待放中!', idx:-1 }, bloom: { icon:'🌸', badge:'開花中', status:'開花中!已經可以賞櫻了', idx:0 }, full: { icon:'🌺', badge:'滿開', status:'滿開!最佳觀賞時期 🎉', idx:1 }, fall: { icon:'🍃', badge:'開始飄落', status:'花瓣飄落中,別有一番風味', idx:2 }, snow: { icon:'💨', badge:'櫻花吹雪', status:'櫻花吹雪!最後的浪漫', idx:3 } }[bestStage]; // Fill result document.getElementById('skResultIcon').textContent = info.icon; document.getElementById('skResultBadge').textContent = info.badge; document.getElementById('skResultCity').textContent = best.name; document.getElementById('skResultStatus').textContent = info.status; // Fill dates document.getElementById('skDate0').textContent = best.bloom; document.getElementById('skDate1').textContent = best.full; document.getElementById('skDate2').textContent = best.fall; document.getElementById('skDate3').textContent = best.snow; // Progress bar state var stages = ['skStage0','skStage1','skStage2','skStage3']; stages.forEach(function(id, i) { var el = document.getElementById(id); el.classList.remove('is-past','is-current','is-future'); if (i < info.idx) el.classList.add('is-past'); else if (i === info.idx) el.classList.add('is-current'); else el.classList.add('is-future'); }); // Progress fill width var fillPct = info.idx < 0 ? 0 : (info.idx / 3) * 100; document.getElementById('skProgressFill').style.width = fillPct + '%'; // Sensei comment // Sensei comment now in speech bubble above photo // Update speech bubble var speechText = best.sensei || '你的旅程期間可以賞櫻!'; document.getElementById('skSpeechText').textContent = speechText; var speech = document.getElementById('skSpeech'); speech.style.animation = 'none'; speech.offsetHeight; // trigger reflow speech.style.animation = 'skSpeechIn 0.4s ease-out'; // Show var result = document.getElementById('skResultInline'); result.classList.add('is-visible'); document.getElementById('sakura-section').scrollIntoView({ behavior: 'smooth', block: 'start' }); // Sync highlight to 4-stage photo cards below document.querySelectorAll('.sakura-stage').forEach(function(el) { el.classList.remove('is-highlight'); }); var targetIdx = info.idx; var targetCard = document.querySelector('.sakura-stage[data-stage-idx="' + targetIdx + '"]'); if (targetCard) { targetCard.classList.add('is-highlight'); setTimeout(function() { targetCard.scrollIntoView({ behavior: 'smooth', block: 'center' }); }, 600); } }); // Retry document.getElementById('skResultRetry').addEventListener('click', function() { document.getElementById('skResultInline').classList.remove('is-visible'); document.querySelectorAll('.sakura-stage').forEach(function(el) { el.classList.remove('is-highlight'); }); document.getElementById('skSpeechText').textContent = '日期輸入好了嗎?我來幫你找最適合的城市!🌿'; document.getElementById('skTravelStart').focus(); }); // Store Guide Tabs & Scroll Arrows // Store scroll arrows (function() { var scroller = document.getElementById('sgStoresScroll'); var leftBtn = document.getElementById('sgArrowL'); var rightBtn = document.getElementById('sgArrowR'); if (scroller && leftBtn && rightBtn) { var scrollAmt = 314; // card width + gap leftBtn.addEventListener('click', function() { scroller.scrollBy({ left: -scrollAmt, behavior: 'smooth' }); }); rightBtn.addEventListener('click', function() { scroller.scrollBy({ left: scrollAmt, behavior: 'smooth' }); }); } })(); document.querySelectorAll('.sg-tab').forEach(function(tab) { tab.addEventListener('click', function() { document.querySelectorAll('.sg-tab').forEach(function(t) { t.classList.remove('is-active'); }); document.querySelectorAll('.sg-panel').forEach(function(p) { p.classList.remove('is-active'); }); this.classList.add('is-active'); var target = document.getElementById('sg-' + this.dataset.sg); if (target) target.classList.add('is-active'); }); }); // Section Nav scroll spy (mobile + PC) (function() { var mobileItems = document.querySelectorAll('.section-nav-item'); var pcItems = document.querySelectorAll('.header-nav-item'); var allNavItems = document.querySelectorAll('.section-nav-item, .header-nav-item'); var sections = []; mobileItems.forEach(function(item) { var id = item.getAttribute('href').replace('#', ''); var el = document.getElementById(id); if (el) sections.push({ id: id, el: el }); }); function updateNav() { var scrollY = window.scrollY + 100; var currentId = null; sections.forEach(function(s) { if (s.el.offsetTop <= scrollY) currentId = s.id; }); allNavItems.forEach(function(n) { n.classList.remove('is-active'); }); if (currentId) { allNavItems.forEach(function(n) { if (n.getAttribute('href') === '#' + currentId) n.classList.add('is-active'); }); var nav = document.getElementById('sectionNav'); var activeM = nav ? nav.querySelector('.is-active') : null; if (activeM && nav) { var left = activeM.offsetLeft - nav.offsetWidth / 2 + activeM.offsetWidth / 2; nav.scrollTo({ left: left, behavior: 'smooth' }); } } } window.addEventListener('scroll', updateNav, { passive: true }); updateNav(); allNavItems.forEach(function(item) { item.addEventListener('click', function(e) { e.preventDefault(); var id = this.getAttribute('href').replace('#', ''); var el = document.getElementById(id); if (el) { var top = el.offsetTop - 90; window.scrollTo({ top: top, behavior: 'smooth' }); } }); }); })(); })();