天气 × 衣橱
根据天气穿什么搭配紧身裤?
选择国家、城市、活动和紧身裤。根据真实预报准备适合寒冷、雨天或风天的穿搭,无需GPS或账户。
创建穿搭 →✦ MET Norway
选择你的选项并请求天气预报。
✦ 紧身裤与层次搭配
✦ 鞋类
✦ 为什么这样搭配可能有效
请检查标签和实际情况。天气预报不能保证紧身裤的防水性或保暖性能。
详细了解天气
查看逐小时预报、实用穿搭清单和美国官方警报。我们只加载你需要的信息。
📈 逐小时及未来7天
温度、湿度、降雨、晴天紫外线和风速。
🎒 根据天气准备出门清单
使用保存的预报准备清单,无需额外购买或拨打电话。
⚠️ 美国官方警报
美国国家气象局针对美国地区发布的有效警报。
建议是如何制定的
我们结合天气预报和你的选择,不会虚构服装功能。
实时预报MET Norway 提供的温度、体感温度、风速和降水信息。
你的紧身裤你可以选择轻薄型、常规型或保暖型。这不是实验室测试。
你的活动城市短途和长时间徒步需要不同的穿搭层次。
寒冷、下雨或有风时,紧身裤的搭配建议
先查看实时天气预报。根据温度、降雨、风力和户外状况调整穿搭层次。纤维含量比例并不能代表保暖效果。
❄️寒冷天气的紧身裤搭配
短途出行时,常规紧身裤配毛衣和外套即可。接近零度或长时间徒步时,建议选择真正保暖的内层和外层。穿防滑闭口鞋。
🌧️下雨时紧身裤的搭配
大多数紧身裤不防水。加穿防水外套,穿防滑闭口鞋,准备可在室内脱掉的衣物。
🌬️有风或温和天气的穿搭
有风时,防风夹克比纤维名称更重要。温和天气时,穿舒适的上衣和易脱的轻薄层。
六套实用搭配方案
天气预报仅供参考,不是固定穿搭。根据路线、活动和已有衣物调整层次。
🌧️城市中的雨天
搭配不透明紧身裤、毛衣、防水外套和防滑鞋。
出门前:湿滑的路面和室内暖气需要不同的穿搭层次。
黑色紧身裤 →🌲长时间徒步
根据天气选择合适的紧身裤、保暖或防风层,穿舒适的鞋子。
出门前:户外时间长短和温度同样重要。
秋季搭配 →🚉城市出行
试试舒适的紧身裤、简约上衣、可脱外套和适合步行的鞋子。
出门前:室内外温差可能很大。
乐福鞋与紧身裤 →☀️温暖的日子
如果觉得舒适,选择轻薄紧身裤,搭配合适的上衣和透气鞋。
出门前:湿度和运动强度也会影响舒适度。
材质质感 →❄️寒冷的早晨
选择真正保暖的衣物、外套和厚袜子;如果长时间在户外,增加外层防护。
出门前:风会加剧寒冷感。
纤维混纺 →🌬️多风的下午
将常规紧身裤搭配风衣和易脱的外层。
出门前: 外层防护可能比氨纶含量更重要。
旅行套装 → 常见问题
冷天能穿紧身裤吗?
可以,取决于衣物和暴露的天气。薄款可能需要保暖层;纤维成分并不保证保暖效果。
下雨天适合穿吗?
作为整体搭配可以,但大多数紧身裤不防水。请加穿合适的外层和防滑鞋。
规划器如何运作?
选择国家、城市、活动和紧身裤。LEGGIC结合MET Norway的可用数据,推荐穿搭层数,不做产品测试。
如何根据天气预报决定穿衣
单看温度不够:风、雨、户外环境及内外温差都会影响舒适度。这些只是参考,不是面料的绝对保证。
根据温度的五个起点
低于0 °C
紧身裤与穿搭: 选择真正保暖的衣物,必要时加外层防护。
鞋履与贴合: 封闭鞋且防滑,搭配保暖袜子。
0–5 °C
紧身裤与穿搭: 保暖紧身裤或防护层,视暴露情况增添保暖。
鞋履与贴合: 适合湿冷天气的封闭鞋。
6–12 °C
紧身裤与穿搭: 常规紧身裤,毛衣和可调节夹克。
鞋履与贴合: 雨天穿舒适耐用的鞋。
13–20 °C
紧身裤与穿搭: 普通紧身裤和轻薄层。
鞋履与贴合: 根据路线选择合适鞋子。
超过20 °C
紧身裤与穿搭: 轻薄紧身裤,确保舒适不过热。
鞋履与贴合: 舒适透气的鞋。
温度区间仅供参考。运动强度、风力、面料和个人偏好都会影响实际感受;非普适门槛。
三个需关注的因素
🌬️风风衣层可能比纤维混纺更重要。
🌧️雨紧身裤通常不防水;请加穿外层防护。
🕓时长短途出行和长途徒步所需的穿搭层数不同。
出发前的五项检查
- 户外时间计算你将暴露在天气中的时间。
- 实际服装检查面料、覆盖度和贴合度。
- 鞋类选择合适的鞋底和鞋带设计。
- 穿搭层数携带可增减的服装单品。
- 信息来源查看当地最新天气预报。
标签无法透露的信息
80/20混纺一定保暖吗?
不一定。成分比例不能衡量保温性。
更高GSM一定防水吗?
不。GSM是单位面积质量,不代表防雨性能。
更多氨纶一定运动性能更好吗?
不。结构、尺码和活动自由度更重要。
气象数据 © MET Norway (CC BY 4.0)。建议为LEGGIC解读,不代表服装测试或供应商推荐。MET Norway · CC BY 4.0。
额外地点及大致坐标:GeoNames,CC BY 4.0;编辑精选。GeoNames。
(function(){
"use strict";
var root=document.querySelector('[data-tool=weather]');if(!root)return;
var L={"find":"搜索更多城市","hint":"找不到你的城市?试试选定国家内搜索或加载更多国家。无GPS或IP定位。","lookup":"地点名称","search":"搜索地点","countries":"更多国家","empty":"无结果。","loading":"正在搜索地点…","choose":"选择此地","intro":"详细查看天气","lead":"查看逐小时预报、实用穿搭清单和美国官方警报。仅加载你请求的内容。","forecast":"小时预报及未来7天","forecastDesc":"温度、湿度、降雨、晴空紫外线和风速。","alerts":"美国官方警报","alertsDesc":"美国国家气象局对美国地区的有效警报。","go":"查询","hour":"未来几小时(UTC)","days":"未来几天(UTC日期)","unavailable":"数据源暂时不可用。","nothing":"无兼容数据。","notUS":"NWS警报仅适用于美国。","noAlerts":"当前无有效官方警报。","countryReady":"国家列表已加载。","source":"来源:MET Norway、PlaceDB(CC0)和NWS。列表使用缓存的天气预报,不是穿衣测试。","pack":"根据天气准备的出行清单","packDesc":"使用已保存的预报准备清单,无需额外购买或拨打电话。","packItems":["你的紧身裤","保暖衣物或外套","防雨外层","防风夹克","保暖袜子和封闭式鞋子","舒适且防滑的鞋子"],"packCopy":"复制清单","packSaved":"清单已复制"},country=root.querySelector('#wa-country'),city=root.querySelector('#wa-city');
var input=root.querySelector('#wa-place-query'),matches=root.querySelector('.wa-place-matches'),status=root.querySelector('.wa-place-status-text');
function item(tag,value){var e=document.createElement(tag);e.textContent=String(value);return e;}
function query(){
var opt=city.selectedOptions[0],p=new URLSearchParams();
if(opt&&opt.dataset.placeId){p.set('country',country.value);p.set('place',opt.dataset.placeId);p.set('q',opt.dataset.query);}
else if(city.value)p.set('city',city.value);
return p;
}
var placeEpoch=0,panelEpoch={forecast:0,pack:0,alerts:0};
function clear(){placeEpoch++;for(var mode in panelEpoch)panelEpoch[mode]++;matches.replaceChildren();status.textContent='';for(var e of root.querySelectorAll('.wa-deep-output'))e.replaceChildren();}
country.addEventListener('change',clear);city.addEventListener('change',clear);
var find=root.querySelector('.wa-place-find');
find.addEventListener('click',async function(){
var value=input.value.trim();if(value.length<2){input.focus();return;}
var findIntent=++placeEpoch,chosenCountry=country.value;
status.textContent=L.loading;matches.replaceChildren();find.disabled=true;
try{
var r=await fetch('/api/weather-places?country='+encodeURIComponent(country.value)+'&q='+encodeURIComponent(value));
if(!r.ok)throw Error('places');var d=await r.json();if(findIntent!==placeEpoch||country.value!==chosenCountry)return;if(!d.places||!d.places.length)status.textContent=L.empty;
else status.textContent=d.places.length+' · '+L.choose;
for(const p of d.places||[]){
var li=item('li',''),b=item('button',p.name);
b.type='button';b.addEventListener('click',function(){
if(findIntent!==placeEpoch||country.value!==chosenCountry)return;
var opt=document.createElement('option');opt.value='p-'+p.country+'-'+p.id;opt.textContent=p.name;
opt.dataset.placeId=String(p.id);opt.dataset.query=value;city.append(opt);city.disabled=false;city.value=opt.value;
city.dispatchEvent(new Event('change',{bubbles:true}));status.textContent=p.name+' ✓';matches.replaceChildren();
});li.append(b);matches.append(li);
}
}catch{if(findIntent===placeEpoch)status.textContent=L.unavailable;}finally{find.disabled=false;}
});
input.addEventListener('keydown',function(e){if(e.key==='Enter'){e.preventDefault();find.click();}});
root.querySelector('.wa-all-countries').addEventListener('click',async function(){
var button=this;button.disabled=true;status.textContent=L.loading;
try{
var r=await fetch('/api/weather-countries');if(!r.ok)throw Error('countries');
var d=await r.json(),already=new Set(Array.from(country.options,x=>x.value)),extra=[];
var fmt=new Intl.DisplayNames([document.documentElement.lang||'en'],{type:'region'});
for(var c of d.countries||[]){if(!/^[A-Z]{2}$/.test(c.code)||already.has(c.code))continue;
var o=document.createElement('option');o.value=c.code;o.textContent=fmt.of(c.code)||c.name;
country.append(o);extra.push(c.code);}
window.__leggicMoreCountries=[...new Set([...(window.__leggicMoreCountries||[]),...extra])];
status.textContent=L.countryReady;button.hidden=true;
}catch{status.textContent=L.unavailable;button.disabled=false;}
});
function line(box,name,value){var row=item('div','');row.className='wa-deep-line';row.append(item('span',name),item('strong',value));box.append(row);}
for(const btn of root.querySelectorAll('.wa-deep-fetch')){
btn.addEventListener('click',async function(){
var mode=btn.dataset.mode,box=root.querySelector('.wa-deep-output[data-mode="'+mode+'"]');
var intent=++panelEpoch[mode],selectedCountry=country.value,selectedCity=city.value;
if(!city.value){box.textContent=L.empty;return;}
box.textContent=L.loading;btn.disabled=true;
var p=query(),url=mode==='alerts'?'/api/weather-alerts':'/api/weather-advice';
if(mode==='forecast'||mode==='pack')p.set('view','extended');
try{
var r=await fetch(url+'?'+p.toString());if(!r.ok)throw Error('source');
var d=await r.json();if(intent!==panelEpoch[mode]||city.value!==selectedCity||country.value!==selectedCountry)return;box.replaceChildren();
if(mode==='forecast'){
var a=item('div','');a.className='wa-deep-lines';
if(Number.isFinite(d.humidity))line(a,'💧',d.humidity+'%');
if(Number.isFinite(d.uvClearSky))line(a,'UV (clear sky)',d.uvClearSky);
if(Number.isFinite(d.windGustMs))line(a,'Wind gust',d.windGustMs+' m/s');
for(var h of (d.hourly||[]).slice(0,18))line(a,h.time.slice(5,16).replace('T',' ')+' UTC',h.temperatureC+' °C'+(Number.isFinite(h.precipChance)?' · '+h.precipChance+'%':''));
box.append(a);
var b=item('div','');b.className='wa-deep-lines';
for(var day of d.daily||[])line(b,day.dayUTC,day.lowC+' / '+day.highC+' °C');
box.append(item('h4',L.days),b);
}else if(mode==='pack'){
if(!Number.isFinite(d.temperatureC))throw Error('missing temperature');
var items=[L.packItems[0]];
if(d.temperatureC<10)items.push(L.packItems[1]);
if((Number.isFinite(d.precipMm)&&d.precipMm>=0.2)||/rain|snow|sleet/i.test(d.symbol||''))items.push(L.packItems[2]);
if(d.windMs>=8)items.push(L.packItems[3]);
items.push(d.temperatureC<5?L.packItems[4]:L.packItems[5]);
var list=item('ul','');list.className='wa-packing-list';
for(const label of [...new Set(items)]){var li=item('li',label);list.append(li);}
box.append(list);
var copy=item('button',L.packCopy);copy.type='button';copy.className='wa-pack-copy';
copy.addEventListener('click',async function(){try{
await navigator.clipboard.writeText(items.join('\n'));copy.textContent=L.packSaved;
}catch{copy.textContent=L.unavailable;}});
box.append(copy);
}else{
if(!d.supported){box.textContent=L.notUS;return;}
if(!d.alerts?.length){box.textContent=L.noAlerts;return;}
for(var a of d.alerts)line(box,a.severity,a.event+': '+a.headline);
var link=item('a','National Weather Service');link.href='https://www.weather.gov/';link.rel='noopener noreferrer';box.append(link);
}
}catch{if(intent===panelEpoch[mode])box.textContent=L.unavailable;}finally{btn.disabled=false;}
});
}
})();document.addEventListener('DOMContentLoaded',()=>{setTimeout(()=>{
// The deferred app.js initializes its tool on DOMContentLoaded; run just after it.
const button=document.getElementById('buildLook');if(!button)return;
const labels={it:'Abbinamento',de:'Outfit',es:'Conjunto',fr:'Tenue',en:'Look'};
const enhance=()=>{
const result=document.querySelector('#lookResult .result');
if(!result||result.querySelector('.style-look-grid'))return;
const items=[...result.querySelectorAll('ol li')].slice(0,3);
if(!items.length)return;
const selectedText=id=>{
const element=document.getElementById(id);
return element?.selectedOptions?.[0]?.textContent?.trim()||element?.value||'';
};
const metaText=[selectedText('color'),selectedText('season'),selectedText('shoes')].filter(Boolean).join(' · ');
const grid=document.createElement('div');grid.className='style-look-grid';
items.forEach((item,index)=>{
const card=document.createElement('article');card.className='style-look';
const meta=document.createElement('span');meta.className='style-look-meta';meta.textContent=metaText;
const content=document.createElement('div'),title=document.createElement('b'),copy=document.createElement('p');
title.textContent=(labels[document.documentElement.lang]||labels.en)+' '+(index+1);
copy.innerHTML=item.innerHTML;
content.append(title,copy);card.append(meta,content);grid.append(card);
});
result.querySelector('ol')?.replaceWith(grid);
};
const next=()=>setTimeout(enhance,0);
button.addEventListener('click',next);
for(const id of ['color','season','occasion','shoes','finish'])document.getElementById(id)?.addEventListener('change',next);
next();
},0);});(()=>{const root=document.querySelector('header.site-header [data-lp]');if(!root)return;const t=root.querySelector('.lp-trigger'),d=root.querySelector('.lp-dialog');if(!d||typeof d.showModal!=='function')return;const f=d.querySelector('.lp-filter'),items=[...d.querySelectorAll('.lp-item')],groups=[...d.querySelectorAll('.lp-group')],empty=d.querySelector('.lp-empty');const norm=s=>s.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g,'');const apply=()=>{const q=norm(f.value.trim());let shown=0;items.forEach(a=>{const ok=!q||norm(a.dataset.names+' '+a.textContent).includes(q);a.parentElement.hidden=!ok;if(ok)shown++;});groups.forEach(g=>{g.hidden=![...g.querySelectorAll('li')].some(li=>!li.hidden)});empty.hidden=shown>0;};t.addEventListener('click',e=>{if(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;e.preventDefault();d.showModal();f.value='';apply();if(window.matchMedia('(pointer:fine)').matches)f.focus();else d.querySelector('.lp-item.is-current')?.scrollIntoView({block:'center'});});d.querySelector('.lp-close').addEventListener('click',()=>d.close());d.addEventListener('click',e=>{if(e.target===d)d.close()});f.addEventListener('input',apply);f.addEventListener('keydown',e=>{if(e.key==='Enter'){const first=items.find(a=>!a.parentElement.hidden);if(first){e.preventDefault();first.click();}}});d.addEventListener('close',()=>t.focus());})();