0791663ffcc294a566574e72b34dd05408c400f8.svn-base 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. function flightHandler(){
  2. }
  3. //Array.prototype.indexOf = function(item) {
  4. // for (var i = 0; i < this.length; i++) {
  5. // if (!!this[i]&&this[i].indexOf(item+"|")!=-1)
  6. // return i;
  7. // }
  8. // return -1;
  9. //}
  10. var firstcity="深圳";
  11. var regcity=/[^\u4E00-\u9FA5]/g ;
  12. $(document).ready(function(){
  13. $("#weather").css("background","url(img/onloading.gif) no-repeat center");
  14. changeStyle();
  15. $(window).resize(function(){
  16. changeStyle();
  17. });
  18. loadJsonp("深圳");
  19. $("#city .city").unbind();
  20. $("#city .change").click(function(e){
  21. var cityname=$("#city .city").text();
  22. $("#city .city").hide();
  23. $(this).hide();
  24. var left=$(".Infobottom").offset().left;
  25. var top=$(".air").offset().top+30;
  26. $(".demo").css({"top":top-30,"left":left});
  27. $(".demo").show();
  28. $(".blackone").show();
  29. $("#citySelect").attr("value",cityname);
  30. $("#citySelect")[0].click();
  31. var $city = $("#cityBox a:visible");
  32. $city.unbind();
  33. $city.click(function(){
  34. var valueone=$("#citySelect").val();
  35. emptyAll();
  36. loadJsonp(valueone);
  37. var $selCity = $("#city .city");
  38. $selCity.text(valueone);
  39. $selCity.show();
  40. $("#city .change").show();
  41. $(".blackone").hide();
  42. $(".demo").hide();
  43. });
  44. //$(".cityslide li").unbind();
  45. //$(".cityslide").on("click","li",function(){
  46. //});
  47. e.stopPropagation();
  48. });
  49. $(".blackone").click(function(){
  50. var valueone=$("#citySelect").val();
  51. var cityname1="";
  52. // console.log(valueone.replace(regcity,""));
  53. if(findcity(valueone.replace(regcity,"")+"|")!=-1&&valueone.replace(regcity,"")!=""){
  54. cityname1=valueone.replace(regcity,"");
  55. emptyAll();
  56. loadJsonp(cityname1);
  57. }else{
  58. cityname1=firstcity;
  59. }
  60. $("#city .city").text(cityname1);
  61. $("#city .city").show();
  62. $("#city .change").show();
  63. $(this).hide();
  64. $(".demo").hide();
  65. });
  66. });
  67. function findcity(item){
  68. for (var i = 0; i < Vcity.allCity.length-1; ++i) {
  69. if(Vcity.allCity[i].indexOf(item)==0)
  70. return i;
  71. };
  72. return -1;
  73. }
  74. function emptyAll(){
  75. $("#city .city").empty();
  76. $(".airquality").text("获取中");
  77. // var li=$(".mid li")
  78. // for(var i=0;i<li.length;++i)
  79. // if(!li.eq(i).children("img")&&!li.eq(i).children("img"))
  80. // li.eq(i).empty();
  81. $(".mid li:not(:has(img)):not(:has(span))").empty();
  82. $(".mid li img").attr("src","");
  83. $(".mid li span").empty();
  84. $("#warning").empty();
  85. $("#weather").css("background","url(img/onloading.gif) no-repeat center");
  86. }
  87. function selfliCallback(){
  88. var valueone=$("#citySelect").val();
  89. // console.log(valueone);
  90. // console.log(Vcity.allCity.indexOf(valueone.replace(regcity,"")+"|"));
  91. if(valueone!="对不起"){
  92. emptyAll();
  93. loadJsonp(valueone.replace(regcity,""));
  94. $("#city .city").text(valueone.replace(regcity,""));
  95. $("#city .city").show();
  96. $("#city .change").show();
  97. $(".demo").hide();
  98. $(".blackone").hide();
  99. }
  100. else {
  101. $(".demo").hide();
  102. $(".blackone").hide();
  103. $("#city .city").show();
  104. $("#city .change").show();
  105. };
  106. }
  107. //初始化改变部分样式
  108. function changeStyle(){
  109. var left=$(".Infobottom").offset().left;
  110. var top=$(".air").offset().top+30;
  111. $(".demo").css({"top":top-30,"left":left});
  112. $(".citySelector").css({"top":top,"left":left});
  113. var contentH = $("#indexWindow").height()-$(".head").height()-40;
  114. var main_height= contentH - 81;
  115. //$("#mainCal").height(main_height);
  116. $("#cont").height(main_height-32);
  117. $(".d_right,.black").unbind();
  118. $(".d_right").click(function(){
  119. $("#BigE").toggle();
  120. $(".black").toggle();
  121. });
  122. $(".black").click(function(){
  123. $("#BigE").hide();
  124. $(".black").hide();
  125. });
  126. setLeftHeight();
  127. }
  128. function setLeftHeight(){
  129. $(".everydayinfo").height($("#mainCal").prev()[0].clientHeight + $("#mainCal")[0].clientHeight);
  130. }
  131. function loadJsonp(w_city){
  132. $.ajax({
  133. type: "get",
  134. async: false,
  135. url: "http://wthrcdn.etouch.cn/weather_mini?city="+w_city+"&callback=flightHandler",
  136. dataType: "jsonp",
  137. jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
  138. jsonpCallback:"flightHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
  139. success: function(data){
  140. if(data.status == 1000){
  141. d=data.data;
  142. var tips="";
  143. var d_index=d.ganmao.indexOf(",");
  144. var j_index=d.ganmao.indexOf("。");
  145. if(j_index>19) {tips=d.ganmao.slice(0,d_index)+"。";}
  146. else{
  147. if(d.ganmao.length<=19){tips=d.ganmao;}
  148. else{tips=d.ganmao.slice(0,j_index)+"。";}
  149. }
  150. $("#city .city").text(d.city);
  151. firstcity=d.city;
  152. var _aqi=d.aqi;
  153. var level="";
  154. if(_aqi<=50&&_aqi>0) level="优秀";
  155. if(_aqi<=100&&_aqi>50) level="良好";
  156. if(_aqi<=150&&_aqi>100) level="一般";
  157. if(_aqi<=200&&_aqi>150) level="很差";
  158. if(_aqi>200) level="很差";
  159. $("#city .airquality").text(_aqi+level);
  160. if(!_aqi) {
  161. level="暂缺";
  162. $("#city .airquality").text(level);
  163. }
  164. $("#weather").css("background","none");
  165. var src="";
  166. var src1="";
  167. var src2="";
  168. var reg=/[\u4E00-\u9FA5]/g;
  169. var lower=[];
  170. var higher=[];
  171. if(d.forecast[0].type=="多云")
  172. src2="img/cloudl.png";
  173. if(d.forecast[0].type=="小雨")
  174. src2="img/small_rainl.png";
  175. if(d.forecast[0].type=="小到中雨")
  176. src2="img/stom_rainl.png";
  177. if(d.forecast[0].type=="阴")
  178. src2="img/overcastl.png";
  179. if(d.forecast[0].type=="晴")
  180. src2="img/finel.png";
  181. if(d.forecast[0].type=="阵雨")
  182. src2="img/quick_rainl.png";
  183. if(d.forecast[0].type=="雷阵雨")
  184. src2="img/lquick_rainl.png";
  185. if(d.forecast[0].type=="大雨"||d.forecast[0].type=="中到大雨")
  186. src2="img/big_rainl.png";
  187. if(d.forecast[0].type=="暴雨"||d.forecast[0].type=="大暴雨"||d.forecast[0].type=="特大暴雨"||d.forecast[0].type=="大到暴雨"||d.forecast[0].type=="暴雨到大暴雨"||d.forecast[0].type=="大暴雨到特大暴雨")
  188. src2="img/mbig_rainl.png";
  189. if(d.forecast[0].type=="中雨")
  190. src2="img/mid_rainl.png";
  191. if(d.forecast[0].type=="雷阵雨伴有冰雹")
  192. src2="img/quick_rain_icel.png";
  193. if(d.forecast[0].type=="雨夹雪")
  194. src2="img/rain_snowl.png";
  195. if(d.forecast[0].type=="阵雪")
  196. src2="img/quick_snowl.png";
  197. if(d.forecast[0].type=="雾")
  198. src2="img/fogl.png";
  199. if(d.forecast[0].type=="沙尘暴"||d.forecast[0].type=="浮尘"||d.forecast[0].type=="扬沙"||d.forecast[0].type=="强沙尘暴"||d.forecast[0].type=="雾霾")
  200. src2="img/sandl.png";
  201. if(d.forecast[0].type=="冻雨")
  202. src2="img/ice_rainl.png";
  203. if(d.forecast[0].type=="无天气类型")
  204. src2="img/unknownl.png";
  205. $("#mainCal .today a").css("background","url("+src2+") no-repeat 0 0");
  206. for(var i=0;i<3;++i){
  207. var day=$("#day"+i);
  208. lower[i]=d.forecast[i].low.replace(reg,'' );
  209. higher[i]=d.forecast[i].high.replace(reg,'' );
  210. if(d.forecast[i].type=="多云")
  211. {
  212. src="img/cloud.png";
  213. src1="img/cloud2.png";
  214. }
  215. if(d.forecast[i].type=="晴")
  216. {src="img/fine.png";
  217. src1="img/fine2.png";}
  218. if(d.forecast[i].type=="阴")
  219. {src="img/overcast.png";
  220. src1="img/overcast2.png";}
  221. if(d.forecast[i].type=="小雨")
  222. {src="img/small_rain.png";
  223. src1="img/small_rain2.png";}
  224. if(d.forecast[i].type=="小到中雨")
  225. {src="img/stom_rain.png";
  226. src1="img/stom_rain2.png";}
  227. if(d.forecast[i].type=="大雨"||d.forecast[i].type=="中到大雨")
  228. {src="img/big_rain.png";
  229. src1="img/big_rain2.png";}
  230. if(d.forecast[i].type=="暴雨"||d.forecast[i].type=="大暴雨"||d.forecast[i].type=="特大暴雨"||d.forecast[i].type=="大到暴雨"||d.forecast[i].type=="暴雨到大暴雨"||d.forecast[i].type=="大暴雨到特大暴雨")
  231. {src="img/mbig_rain.png";
  232. src1="img/mbig_rain2.png";}
  233. if(d.forecast[i].type=="雨夹雪")
  234. {src="img/rain_snow.png";
  235. src1="img/rain_snow2.png";}
  236. if(d.forecast[i].type=="阵雪")
  237. {src="img/quick_snow.png";
  238. src1="img/quick_snow2.png";}
  239. if(d.forecast[i].type=="雾")
  240. {src="img/fog.png";
  241. src1="img/fog2.png";}
  242. if(d.forecast[i].type=="沙尘暴"||d.forecast[i].type=="浮尘"||d.forecast[i].type=="扬沙"||d.forecast[i].type=="强沙尘暴"||d.forecast[i].type=="雾霾")
  243. {src="img/sand.png";
  244. src1="img/sand2.png";}
  245. if(d.forecast[i].type=="冻雨")
  246. {src="img/ice_rain.png";
  247. src1="img/ice_rain2.png";}
  248. if(d.forecast[i].type=="中雨")
  249. {src="img/mid_rain.png";
  250. src1="img/mid_rain2.png";}
  251. if(d.forecast[i].type=="雷阵雨伴有冰雹")
  252. {src="img/quick_rain_ice.png";
  253. src="img/quick_rain_ice2.png";}
  254. if(d.forecast[i].type=="阵雨")
  255. {src="img/quick_rain.png";
  256. src1="img/quick_rain2.png";}
  257. if(d.forecast[i].type=="雷阵雨")
  258. { src="img/lquick_rain.png";
  259. src1="img/lquick_rain2.png";}
  260. if(d.forecast[i].type=="无天气类型")
  261. { src="img/unknown.png";
  262. src1="img/unknown2.png";}
  263. // console.log(src,src1);
  264. // console.log(day);
  265. day.find("li:eq(0)").text(d.forecast[i].date);
  266. day.find("li:eq(1)").find("img").attr("src",src1);
  267. day.find("#today_icon").attr("src",src);
  268. day.find("li:eq(3)").text(d.forecast[i].type);
  269. day.find("#today_tem").text(d.wendu).append("<span class='juhao'>&#186;</span>");
  270. day.find("li:eq(4)").text(lower[i]+"~"+higher[i]);
  271. day.find("li:eq(5)").find("span:eq(0)").text(d.forecast[i].fengxiang);
  272. day.find("li:eq(5)").find("span:eq(1)").text(d.forecast[i].fengli);
  273. }
  274. $("#warning").text(tips);
  275. }else{
  276. emptyAll();
  277. $("#weather").css("background","url(img/wrong.png) no-repeat center");
  278. }
  279. },
  280. error: function(){
  281. emptyAll();
  282. $("#weather").css("background","url(img/wrong.png) no-repeat center");
  283. }
  284. });
  285. };