【暖心日語】被媽媽棄養的小猴子與玩偶媽媽
大家好,我是小狸老師!
最近日本市川市動植物園(市川市動植物園)有一則很感人的故事。一隻名叫 Panchi 的小猴子,因為媽媽「育児放棄」(棄養)而無法融入猴群。
飼育員為了安撫牠,送給牠一隻玩偶(ぬいぐるみ)。現在 Panchi 不論走到哪裡,都把玩偶當成媽媽「肌身離さず」(片刻不離)地抱著。今天我們就透過這個新聞,一起學習相關的暖心日語吧!
_____________
小狸老師著作
時事日語
與玩偶媽媽
Panchi 的感人故事
パンチは群れに馴染むことができませんでした。
肌身離さず、ぬいぐるみを抱いています。
function getSvgUrl(svgString, color) {
const coloredSvg = svgString.replace(/_COLOR_/g, color);
return `url("data:image/svg+xml,${encodeURIComponent(coloredSvg)}")`;
}
// --- SVG 圖紋庫 (透明度 0.05 ~ 0.12) ---
const patterns = {
asanoha: ``,
yagasuri: ``,
samekomon: ``,
seigaiha: ``,
shippo: ``,
kikko: ``,
ichimatsu: ``,
tatewaku: ``,
karakusa: ``,
kanoko: ``,
hishi: ``,
mameshibori: ``
};
const palettes = [
{ name: '櫻粉 (麻葉紋)', primary: '#e57373', accent: '#599ddb', cardBg: '#ffebee', noteBg: '#fff5f6', noteBorder: '#ffccd2', svg: patterns.asanoha, size: '40px 69.28px' },
{ name: '桔梗 (箭羽紋)', primary: '#8b5cf6', accent: '#f472b6', cardBg: '#f3e8ff', noteBg: '#faf5ff', noteBorder: '#e9d5ff', svg: patterns.yagasuri, size: '20px 40px' },
{ name: '青瓷 (鮫小紋)', primary: '#0ea5e9', accent: '#34d399', cardBg: '#e0f2fe', noteBg: '#f0f9ff', noteBorder: '#e0f2fe', svg: patterns.samekomon, size: '15px 15px' },
{ name: '琉璃 (波紋)', primary: '#3b82f6', accent: '#fbbf24', cardBg: '#eff6ff', noteBg: '#f8fafc', noteBorder: '#dbeafe', svg: patterns.seigaiha, size: '40px 20px' },
{ name: '蜜柑 (七寶紋)', primary: '#f97316', accent: '#2dd4bf', cardBg: '#fff7ed', noteBg: '#fffbeb', noteBorder: '#ffedd5', svg: patterns.shippo, size: '40px 40px' },
{ name: '胡桃 (龜甲紋)', primary: '#65a30d', accent: '#f59e0b', cardBg: '#f7fee7', noteBg: '#fcfdf5', noteBorder: '#ecfccb', svg: patterns.kikko, size: '34.64px 60px' },
{ name: '抹茶 (方格紋)', primary: '#10b981', accent: '#f43f5e', cardBg: '#ecfdf5', noteBg: '#f0fdf4', noteBorder: '#d1fae5', svg: patterns.ichimatsu, size: '30px 30px' },
{ name: '天水 (蒸汽紋)', primary: '#06b6d4', accent: '#a855f7', cardBg: '#cffafe', noteBg: '#ecfeff', noteBorder: '#cffafe', svg: patterns.tatewaku, size: '40px 40px' },
{ name: '若竹 (蔓藤紋)', primary: '#14b8a6', accent: '#facc15', cardBg: '#ccfbf1', noteBg: '#f0fdfa', noteBorder: '#ccfbf1', svg: patterns.karakusa, size: '40px 40px' },
{ name: '撫子 (鹿仔紋)', primary: '#ec4899', accent: '#60a5fa', cardBg: '#fdf2f8', noteBg: '#fdf4f9', noteBorder: '#fce7f3', svg: patterns.kanoko, size: '20px 20px' },
{ name: '藤紫 (菱形紋)', primary: '#d946ef', accent: '#fb923c', cardBg: '#faf5ff', noteBg: '#fcfaff', noteBorder: '#f3e8ff', svg: patterns.hishi, size: '30px 30px' },
{ name: '藍白 (豆紋)', primary: '#6366f1', accent: '#ec4899', cardBg: '#eef2ff', noteBg: '#f5f7ff', noteBorder: '#e0e7ff', svg: patterns.mameshibori, size: '20px 20px' }
];
let currentThemeIndex = 0;
function randomizeTheme() {
const theme = palettes[currentThemeIndex];
currentThemeIndex = (currentThemeIndex + 1) % palettes.length;
const root = document.documentElement;
root.style.setProperty('--primary', theme.primary);
root.style.setProperty('--accent', theme.accent);
root.style.setProperty('--card-bg', theme.cardBg);
document.querySelectorAll('.note-box').forEach(box => {
box.style.backgroundColor = theme.noteBg;
box.style.borderColor = theme.noteBorder;
});
document.querySelectorAll('.ig-card').forEach(card => {
card.style.backgroundImage = getSvgUrl(theme.svg, theme.primary);
card.style.backgroundSize = theme.size;
});
}
// --- 截圖下載功能 (逐張 JPG) ---
async function downloadAllCards() {
const btn = document.querySelector('.dl-btn');
const originalText = btn.innerText;
btn.innerText = "⏳ 處理中...";
btn.disabled = true;
const cards = document.querySelectorAll('.ig-card');
for (let i = 0; i < cards.length; i++) { const card = cards[i]; const originalShadow = card.style.boxShadow; const originalTransform = card.style.transform; card.style.boxShadow = 'none'; card.style.transform = 'none'; try { const canvas = await html2canvas(card, { scale: 3, useCORS: true, backgroundColor: null, logging: false }); const link = document.createElement('a'); link.download = `小狸日語_IG卡_${String(i+1).padStart(2, '0')}.jpg`; link.href = canvas.toDataURL('image/jpeg', 0.95); link.click(); await new Promise(r => setTimeout(r, 400));
} catch (err) {
console.error("截圖失敗:", err);
} finally {
card.style.boxShadow = originalShadow;
card.style.transform = originalTransform;
}
}
btn.innerText = originalText;
btn.disabled = false;
alert("✅ 4張精華圖卡已下載完畢!");
}
window.onload = randomizeTheme;