摘要:实现输入城市名称,通过的来获取当前城市的天气情况。页面展示效果代码北京
jQuery实现输入城市名称,通过yahoo的Weather API来获取当前城市的天气情况。
页面展示效果:
HTML
</>复制代码
C
CSS
</>复制代码
html,
body {
background-color: #F5F8FC;
height: 100%;
width: 100%;
overflow: hidden;
font-family: "Open Sans", sans-serif;
}
.info p {
text-align: center;
margin: 10px auto 0px auto;
width: 540px;
color: #4c4c4c;
font-size: 16px;
font-weight: bold;
}
.wrapper {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
max-width: 100%;
max-height: 100%;
overflow: auto;
height: 500px;
}
.shadow {
-webkit-box-shadow: 0px 30px 100px 1px rgba(180, 180, 180, 1);
-moz-box-shadow: 0px 30px 100px 1px rgba(180, 180, 180, 1);
box-shadow: 0px 30px 100px 1px rgba(180, 180, 180, 1);
}
.top {
position: relative;
z-index: 0;
background-color: #61c3e6;
height: 300px;
overflow: hidden;
text-align: center;
display: inline-block;
width: 100%;
float: left;
}
.top .btn {
text-align: center;
line-height: 25px;
position: absolute;
color: white;
font-weight: bold;
font-size: 20px;
border-radius: 50%;
border: 1px solid white;
top: 5px;
left: 740px;
cursor: pointer;
text-transform: uppercase;
}
.top img {
position: relative;
z-index: -1;
margin-top: -10px;
margin-bottom: 10px;
width: 275px;
-webkit-filter: invert(100%);
-moz-filter: invert(100%);
filter: invert(100%);
}
.top .deg {
font-weight: bold;
}
.top .text {
text-align: center;
color: white;
margin-bottom: 15px;
margin-top: -70px;
font-size: 25px;
}
.top .text-city{
text-align: center;
color: white;
margin-bottom: 10px;
font-size: 25px;
}
.top input {
position: relative;
z-index: 1;
font-family: "Open Sans", sans-serif;
width: 210px;
background-color: rgba(0, 0, 0, 0);
border-top: 0px;
border-right:0px;
border-left:0px;
border-bottom:1px solid #F5F8FC;
outline: 0;
}
.top input:focus {
outline: 0;
border: 0px;
}
.bot {
float: left;
background-color: white;
height: 200px;
overflow: hidden;
display: inline-block;
width: 100%;
}
.bot ul {
overflow: hidden;
display: inline-block;
width: 100%;
height: 100%;
list-style-type: none;
padding-top: 30px;
}
.bot ul li {
color: #999999;
float: left;
width: 20%;
text-align: center;
}
.bot ul li:nth-child(1) {
color: #4c4c4c;
}
.bot ul li h1 {
text-transform: uppercase;
font-weight: bold;
}
.bot ul li p {
font-weight: bold;
}
.bot ul li img {
-webkit-filter: invert(60%);
-moz-filter: invert(60%);
filter: invert(60%);
}
.bot ul li:first-child img {
-webkit-filter: invert(30%);
-moz-filter: invert(30%);
filter: invert(30%);
}
javascript代码
</>复制代码
var baseYahooURL = "https://query.yahooapis.com/v1/public/yql?q="
var selectedCity = "北京";
var placeholder = "";
var unit = "c";
$(function(){
init();
})
function init() {
getWoeid(selectedCity);
$("#city").keypress(function() {
if (event.which == 13) {
selectedCity = $("#city").val();
getWoeid(selectedCity);
$("#city").blur();
}
});
$("#btn").click(function() {
if ($("#btn").html() == "F") {
unit = "c";
} else unit = "f";
$("#btn").html(unit.toUpperCase());
getWoeid(selectedCity);
})
$("#city").focus(function(event) {
placeholder = $("#city").val();
$("#city").val("");
$("#city").css("border-bottom", "1px solid #F5F8FC");
});
$("#city").blur(function(event) {
if ($("#city").val() == "") {
$("#city").val(placeholder);
}
});
}
function getWoeid(city) {
var woeidYQL = "select woeid from geo.placefinder where text="" + city + ""&format=json";
var jsonURL = baseYahooURL + woeidYQL;
$.getJSON(jsonURL, woeidDownloaded);
}
function woeidDownloaded(data) {
var woeid = null;
if (data.query.count <= 0) {
$("#city").val("No city found");
$("#deg").html("");
setImage(999, $("#big")[0]);
for (var i = 0; i <= 4; i++) {
$("#forecast" + i).html("");
setImage(999, $("#forecastimg" + i)[0]);
$("#forecastdeg" + i).html("");
}
return;
} else if (data.query.count == 1) {
woeid = data.query.results.Result.woeid;
} else {
woeid = data.query.results.Result[0].woeid;
}
getWeatherInfo(woeid);
}
function getWeatherInfo(woeid) {
var weatherYQL = "select * from weather.forecast where woeid=" + woeid + " and u = "" + unit + "" &format=json";
var jsonURL = baseYahooURL + weatherYQL
$.getJSON(jsonURL, weaterInfoDownloaded);
}
function weaterInfoDownloaded(data) {
$("#city").val(selectedCity);
//$("#city").val(data.query.results.channel.location.city);
$("#deg").html(data.query.results.channel.item.condition.temp + " °" + unit.toUpperCase());
setImage(data.query.results.channel.item.condition.code, $("#big")[0]);
for (var i = 0; i <= 4; i++) {
var fc = data.query.results.channel.item.forecast[i];
$("#forecast" + i).html(fc.day);
setImage(fc.code, $("#forecastimg" + i)[0]);
$("#forecastdeg" + i).html((parseInt(fc.low) + parseInt(fc.high)) / 2 + " °" + unit.toUpperCase());
}
}
function setImage(code, image) {
image.src = "http://www.hubwiz.com/course/55a60445a164dd0d75929fbd/";
switch (parseInt(code)) {
case 0:
image.src += "images/icons/Tornado.svg"
break;
case 1:
image.src += "images/icons/Cloud-Lightning.svg"
break;
case 2:
image.src += "images/icons/Wind.svg"
break;
case 3:
image.src += "images/icons/Cloud-Lightning.svg"
break;
case 4:
image.src += "images/icons/Cloud-Lightning.svg"
break;
case 5:
image.src += "images/icons/Cloud-Snow-Alt.svg"
break;
case 6:
image.src += "images/icons/Cloud-Rain-Alt.svg"
break;
case 7:
image.src += "images/icons/Cloud-Snow-Alt.svg"
break;
case 8:
image.src += "images/icons/Cloud-Drizzle-Alt.svg"
break;
case 9:
image.src += "images/icons/Cloud-Drizzle-Alt.svg"
break;
case 10:
image.src += "images/icons/Cloud-Drizzle-Alt.svg"
break;
case 11:
image.src += "images/icons/Cloud-Drizzle-Alt.svg"
break;
case 12:
image.src += "images/icons/Cloud-Drizzle-Alt.svg"
break;
case 13:
image.src += "images/icons/Cloud-Snow-Alt.svg"
break;
case 14:
image.src += "images/icons/Cloud-Snow-Alt.svg"
break;
case 15:
image.src += "images/icons/Cloud-Snow-Alt.svg"
break;
case 16:
image.src += "images/icons/Cloud-Snow-Alt.svg"
break;
case 17:
image.src += "images/icons/Cloud-Hail-Alt.svg"
break;
case 18:
image.src += "images/icons/Cloud-Hail-Alt.svg"
break;
case 19:
image.src += "images/icons/Cloud-Hail-Alt.svg"
break;
case 20:
image.src += "images/icons/Cloud-Fog.svg"
break;
case 21:
image.src += "images/icons/Cloud-Fog.svg"
break;
case 22:
image.src += "images/icons/Cloud-Fog.svg"
break;
case 23:
image.src += "images/icons/Cloud-Fog.svg"
break;
case 24:
image.src += "images/icons/Wind.svg"
break;
case 25:
image.src += "images/icons/Thermometer-Zero"
break;
case 26:
image.src += "images/icons/Cloud.svg"
break;
case 27:
image.src += "images/icons/Cloud-Moon.svg"
break;
case 28:
image.src += "images/icons/Cloud.svg"
break;
case 29:
image.src += "images/icons/Cloud-Moon.svg"
break;
case 30:
image.src += "images/icons/Cloud-Sun.svg"
break;
case 31:
image.src += "images/icons/Moon.svg"
break;
case 32:
image.src += "images/icons/Sun.svg"
break;
case 33:
image.src += "images/icons/Moon.svg"
break;
case 34:
image.src += "images/icons/Sun.svg"
break;
case 35:
image.src += "images/icons/Cloud-Hail-Alt.svg"
break;
case 36:
image.src += "images/icons/Sun.svg"
break;
case 37:
image.src += "images/icons/Cloud-Lightning.svg"
break;
case 38:
image.src += "images/icons/Cloud-Lightning.svg"
break;
case 39:
image.src += "images/icons/Cloud-Lightning.svg"
break;
case 40:
image.src += "images/icons/Cloud-Rain.svg"
break;
case 41:
image.src += "images/icons/Cloud-Snow-Alt.svg"
break;
case 42:
image.src += "images/icons/Cloud-Snow-Alt.svg"
break;
case 43:
image.src += "images/icons/Cloud-Snow-Alt.svg"
break;
case 44:
image.src += "images/icons/Cloud.svg"
break;
case 45:
image.src += "images/icons/Cloud-Lightning.svg"
break;
case 46:
image.src += "images/icons/Cloud-Snow-Alt.svg"
break;
case 47:
image.src += "images/icons/Cloud-Lightning.svg"
break;
case 3200:
image.src += "images/icons/Moon-New.svg"
break;
case 999:
image.src += "images/icons/Compass.svg"
break;
default:
image.src += "images/icons/Moon-New.svg"
break;
}
}
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/86182.html
摘要:不允许再有其他文件,不允许再有单独的文件。必须支持标准的四则运算。请在收到邮件的小时内独立完成本测试,并回复本邮件。项目地址最终版的计算器,项目地址和预览图片在。并且使用单位来进行自动计算尺寸。 一道笔试题 之前偶然看到一个公司的笔试题,题目如下: 用HTML5、CSS3、JavaScript,做一个网页,实现如下图形式计算器 showImg(https://segmentfault....
摘要:不允许再有其他文件,不允许再有单独的文件。必须支持标准的四则运算。请在收到邮件的小时内独立完成本测试,并回复本邮件。项目地址最终版的计算器,项目地址和预览图片在。并且使用单位来进行自动计算尺寸。 一道笔试题 之前偶然看到一个公司的笔试题,题目如下: 用HTML5、CSS3、JavaScript,做一个网页,实现如下图形式计算器 showImg(https://segmentfault....
摘要:不允许再有其他文件,不允许再有单独的文件。必须支持标准的四则运算。请在收到邮件的小时内独立完成本测试,并回复本邮件。项目地址最终版的计算器,项目地址和预览图片在。并且使用单位来进行自动计算尺寸。 一道笔试题 之前偶然看到一个公司的笔试题,题目如下: 用HTML5、CSS3、JavaScript,做一个网页,实现如下图形式计算器 showImg(https://segmentfault....
阅读 3274·2021-11-12 10:36
阅读 1386·2019-08-30 15:56
阅读 2497·2019-08-30 11:26
阅读 594·2019-08-29 13:00
阅读 3644·2019-08-28 18:08
阅读 2784·2019-08-26 17:18
阅读 1940·2019-08-26 13:26
阅读 2467·2019-08-26 11:39
极致性价比!云服务器续费无忧!
Tesla A100/A800、Tesla V100S等多种GPU云主机特惠2折起,不限台数,续费同价。
NVIDIA RTX 40系,高性价比推理显卡,满足AI应用场景需要。
乌兰察布+上海青浦,满足东推西训AI场景需要