获取当前的IP定位
//获取当前的IP定位;
var key = "4d9a765939a2b76588a3341c2***"
var url = "https://restapi.amap.com/v3/ip?key=" + key;
$.getJSON(url, function (res) {
//console.log(res);
var adcode = res.adcode;
$("#ip").html("当前位置:" + res.province + res.city);
//显示天气情况;
getWeather(adcode, key)
})
获取天气情况函数
//天气函数;
function getWeather(adcode, key) {
/*天气查询API*/
var url = 'https://restapi.amap.com/v3/weather/weatherInfo?city=' + adcode + '&key=' + key + '&extensions=all';
$.getJSON(url, function (res) {
//console.log(res);
//当前星期;
$(".date-dayname").html(getWeek(res.forecasts[0].casts[0].week));
//当前时间;
$(".date-day").html(res.forecasts[0].reporttime.slice(0, 10));
//所在地区;
$(".location").html(res.forecasts[0].city);
//当天温度;
$(".weather-temp").html(res.forecasts[0].casts[0].daytemp + "°C");
//当天天气现象;
$(".weather-desc").html(res.forecasts[0].casts[0].dayweather);
//当天风力;
$("#daypower").html(res.forecasts[0].casts[0].daypower);
//当天风向;
$("#daywind").html(res.forecasts[0].casts[0].daywind);
//当天天气现象;
$("#dayweather").html(res.forecasts[0].casts[0].dayweather);
//四日预报,星期
$("#week0").html(getWeek(res.forecasts[0].casts[0].week));
$("#week1").html(getWeek(res.forecasts[0].casts[1].week));
$("#week2").html(getWeek(res.forecasts[0].casts[2].week));
$("#week3").html(getWeek(res.forecasts[0].casts[3].week));
//四日预报,温度
$("#temp0").html(res.forecasts[0].casts[0].daytemp + "°C");
$("#temp1").html(res.forecasts[0].casts[1].daytemp + "°C");
$("#temp2").html(res.forecasts[0].casts[2].daytemp + "°C");
$("#temp3").html(res.forecasts[0].casts[3].daytemp + "°C");
//天气图标;
$("#icon").html(getIcon(0, "day", res.forecasts[0].casts[0].dayweather));
$("#icon0").html(getIcon(1, "day", res.forecasts[0].casts[0].dayweather));
$("#icon1").html(getIcon(1, "day", res.forecasts[0].casts[1].dayweather));
$("#icon2").html(getIcon(1, "day", res.forecasts[0].casts[2].dayweather));
$("#icon3").html(getIcon(1, "day", res.forecasts[0].casts[3].dayweather));
})
}
判断星期
//判断星期;
function getWeek(week) {
switch (week) {
case "1":
return "星期一"
break;
case "2":
return "星期二"
break;
case "3":
return "星期三"
break;
case "4":
return "星期四"
break;
case "5":
return "星期五"
break;
case "6":
return "星期六"
break;
case "7":
return "星期日"
break;
default:
return "异常"
}
}
判断天气情况返回对应图图标
//按天气情况返回对应图图标;
/* local图标位置,0->60px;1->30px;
* times,day->白天;night->晚上;
* desc天气描述;
*/
function getIcon(local, times, desc) {
var iconWidth, url;
//图标尺寸判断;
if (local == 0) {
iconWidth = "80px";
} else {
iconWidth = "30px";
}
//图标类型判断;
if (times == "day") {
url = "img/day/"
} else {
url = "img/night/"
}
//天气描述图标;
switch (desc) {
case "晴":
return '<img src="' + url + '00.png" width=' + iconWidth + '>'
break;
case "多云":
return '<img src="' + url + '01.png" width=' + iconWidth + '>'
break;
case "阴":
return '<img src="' + url + '02.png" width=' + iconWidth + '>'
break;
case "阵雨":
return '<img src="' + url + '03.png" width=' + iconWidth + '>'
break;
case "雷阵雨":
return '<img src="' + url + '04.png" width=' + iconWidth + '>'
break;
case "雷阵雨并伴有冰雹":
return '<img src="' + url + '05.png" width=' + iconWidth + '>'
break;
case "雨夹雪":
return '<img src="' + url + '06.png" width=' + iconWidth + '>'
break;
case "小雨":
return '<img src="' + url + '07.png" width=' + iconWidth + '>'
break;
case "中雨":
return '<img src="' + url + '08.png" width=' + iconWidth + '>'
break;
case "大雨":
return '<img src="' + url + '09.png" width=' + iconWidth + '>'
break;
case "暴雨":
return '<img src="' + url + '10.png" width=' + iconWidth + '>'
break;
case "大暴雨":
return '<img src="' + url + '11.png" width=' + iconWidth + '>'
break;
case "特大暴雨":
return '<img src="' + url + '12.png" width=' + iconWidth + '>'
break;
case "阵雪":
return '<img src="' + url + '13.png" width=' + iconWidth + '>'
break;
case "小雪":
return '<img src="' + url + '14.png" width=' + iconWidth + '>'
break;
case "中雪":
return '<img src="' + url + '15.png" width=' + iconWidth + '>'
break;
case "大雪":
return '<img src="' + url + '16.png" width=' + iconWidth + '>'
break;
case "暴雪":
return '<img src="' + url + '17.png" width=' + iconWidth + '>'
break;
case "雾":
return '<img src="' + url + '18.png" width=' + iconWidth + '>'
break;
case "冻雨":
return '<img src="' + url + '19.png" width=' + iconWidth + '>'
break;
case "沙尘暴":
return '<img src="' + url + '20.png" width=' + iconWidth + '>'
break;
case "霾":
return '<img src="' + url + '53.png" width=' + iconWidth + '>'
break;
case "雨":
return '<img src="' + url + '301.png" width=' + iconWidth + '>'
break;
case "雪":
return '<img src="' + url + '302.png" width=' + iconWidth + '>'
break;
default:
return "异常"
}
}
html代码
<div class="container">
<div class="weather-side">
<div class="weather-gradient"></div>
<div class="date-container">
<h2 class="date-dayname"></h2><span class="date-day"></span>
<i class="location-icon"></i><span class="location"></span>
</div>
<div class="weather-container"><i class="weather-icon" id="icon"></i>
<h1 class="weather-temp"></h1>
<h3 class="weather-desc"></h3>
</div>
</div>
<div class="info-side">
<div class="today-info-container">
<div class="today-info">
<div class="precipitation"><span class="title">风力</span><span class="value" id="daypower"></span>
<div class="clear"></div>
</div>
<div class="humidity"><span class="title">风向</span><span class="value" id="daywind"></span>
<div class="clear"></div>
</div>
<div class="wind"><span class="title">天气现象</span><span class="value" id="dayweather"></span>
<div class="clear"></div>
</div>
</div>
</div>
<div class="week-container">
<ul class="week-list">
<li><i class="day-icon" id="icon0"></i><span class="day-name" id="week0"></span><span class="day-temp"
id="temp0"></span>
</li>
<li><i class="day-icon" id="icon1"></i><span class="day-name" id="week1"></span><span class="day-temp"
id="temp1"></span>
</li>
<li><i class="day-icon" id="icon2"></i><span class="day-name" id="week2"></span><span class="day-temp"
id="temp2"></span>
</li>
<li><i class="day-icon" id="icon3"></i><span class="day-name" id="week3"></span><span class="day-temp"
id="temp3"></span>
</li>
<div class="clear"></div>
</ul>
</div>
<div class="location-container">
<button class="location-button"><span id="ip"></span></button>
</div>
</div>
</div>
Done!