HTML 简单天气控件2

初次接触html,之前做安卓的,从零开始边学边做。

自己写的简单天气控件。

数据来源:易源数据

在浏览器打开,如下形式:file:///D:/../../weather.html?area=101230201,area是地址id。

运行效果:

具体代码: 

<!doctype html>
<html>
<head>
    <script type="text/javascript" src="jquery-1.11.1.min.js"></script>   
    <style type="text/css">
        .main {         
            background-color: #FF6A6A;
            border-radius: 20px;
            width: 460px;
            height: 160px;           
        }
        #img{
            height:160px;
            width:180px;
            float:left;
            vertical-align: middle;
        }
        #weather{
            height:160px;
            width:140px;
            float:left;
            font-family: sans-serif, Arial, Verdana, "Trebuchet MS";          
            color: #272625;
            text-align: center;
        }
        #city{
            height:160px;
            width:120px;
            float:left;
            font-family: sans-serif, Arial, Verdana, "Trebuchet MS";
            font-size: 30px;
            color: #272625;
            text-align: center;
        }
    </style>
</head>
<body >
    <div class="main">
        <div id="img"><img id="day_weather_pic" style="vertical-align: middle; height:160px; width:160px;" /></div> 
        <div id="weather">
            <p id="day_weather" style="font-size: 20px;"></p>
            <p id="day_wind_direction" style="font-size: 16px;"></p>
            <p id="day_air_temperature" style="font-size: 20px;"></p>
        </div>
        <div id="city">
            <p id="cityInfo"></p>
            <p id="day" style="font-size: 16px;">今天</p>
        </div>
    </div>  
    
    <script type="text/javascript">
        //以下代码仅为演示用,具体传入参数请参看接口描述详情页.
        //需要引用jquery库
        function formatterDateTime() {
            var date=new Date();
            var month=date.getMonth() + 1;
            var datetime = date.getFullYear()
                    + ""// "年"
                    + (month >= 10 ? month : "0"+ month)
                    + ""// "月"
                    + (date.getDate() < 10 ? "0" + date.getDate() : date
                            .getDate())
                    + ""
                    + (date.getHours() < 10 ? "0" + date.getHours() : date
                            .getHours())
                    + ""
                    + (date.getMinutes() < 10 ? "0" + date.getMinutes() : date
                            .getMinutes())
                    + ""
                    + (date.getSeconds() < 10 ? "0" + date.getSeconds() : date
                            .getSeconds());
            return datetime;
        }
        
        /*
        *函数功能:从href获得参数
        *sHref:   http://www.artfh.com/arg.htm?arg1=d&arg2=re
        *sArgName:arg1, arg2
        *return:    the value of arg. d, re
        */
        function GetArgsFromHref(sArgName)
        {
              var sHref=window.location.href;
              var args = sHref.split("?");
              var retval = "";

              if(args[0] === sHref) /*参数为空*/
              {
                   return retval; /*无需做任何处理*/
              }  
              var str = args[1];
              args = str.split("&");
              for(var i = 0; i < args.length; i ++)
              {
                  str = args[i];
                  var arg = str.split("=");
                  if(arg.length <= 1) continue;
                    if(arg[0] === sArgName) 
                        retval = arg[1]; 
              }
 //             document.getElementById("day_weather").innerHTML=retval;
              return retval;
        }
        

        var area = GetArgsFromHref("area");

        $.ajax({
            type: 'post',
            url: 'http://route.showapi.com/9-2',
            dataType: 'json',
            data: {
                "showapi_timestamp": formatterDateTime(),
                "showapi_appid": 'xxxxx', //这里需要改成自己的appid
                "showapi_sign": 'xxxxxxxxxxxxxxxxx',  //这里需要改成自己的应用的密钥secret
                "areaid":area,
                "area":"",
                "needMoreDay":"0",
                "needIndex":"0",
                "needHourData":"0",
                "need3HourForcast":"0",
                "needAlarm":"0"
            },

            error: function(XmlHttpRequest, textStatus, errorThrown) {
                alert("操作失败!");
            },
            success: function(result) {
                console.log(result); //console变量在ie低版本下不能用
                var day_air_temperature = result.showapi_res_body.f1.night_air_temperature +"&#176;C~" + result.showapi_res_body.f1.day_air_temperature+"&#176;C";
                document.getElementById("day_weather").innerHTML=result.showapi_res_body.f1.day_weather;
                document.getElementById("day_wind_direction").innerHTML=result.showapi_res_body.f1.day_wind_direction;
                document.getElementById("day_air_temperature").innerHTML=day_air_temperature;
                document.getElementById("cityInfo").innerHTML=result.showapi_res_body.cityInfo.c3;
                document.getElementById("day_weather_pic").src=result.showapi_res_body.f1.day_weather_pic;
                //alert(result.showapi_res_body.f1.day_weather);
            }
        });

    </script>
</body>
</html>

JQuery库:

 

引用方式:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js">
</script>

下载:

有两个版本的 jQuery 可供下载:

  • Production version - 用于实际的网站中,已被精简和压缩。
  • Development version - 用于测试和开发(未压缩,是可读的代码)

这两个版本都可以从 jQuery.com 下载。

提示:您可以把下载文件放到与页面相同的目录中,这样更方便使用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTML本身并不直接提供天气预报控件,但你可以利用HTML、CSS和JavaScript(可能还有第三方API或JavaScript库)来创建一个动态的天气显示元素。以下是一个简单的步骤概述: 1. **HTML结构**:创建一个容器来显示天气信息,比如 `<div>` 或 `<span>`。 ```html <div id="weather-container"></div> ``` 2. **CSS样式**:设置容器的样式,使其看起来像一个天气预报组件。 ```html <style> #weather-container { width: 200px; height: 100px; border: 1px solid #ccc; display: flex; justify-content: center; align-items: center; } </style> ``` 3. **JavaScript获取数据**:使用JavaScript或Ajax请求从天气API获取实时天气数据。例如,`axios`或`fetch`。 ```javascript <script> fetch('https://api.weatherapi.com/v1/current.json?key=YOUR_API_KEY&q=New_York') .then(response => response.json()) .then(data => updateWeatherDisplay(data)); </script> ``` 4. **更新显示**:根据API返回的数据更新HTML内容。 ```javascript function updateWeatherDisplay(weatherData) { document.getElementById('weather-container').innerText = `当前温度: ${weatherData.current.temp_f}°F, 天气状况: ${weatherData.weather.description}`; } ``` 5. **定期刷新**:如果你想让天气信息自动刷新,可以添加定时器或轮询功能。 这只是一个基础示例,实际的天气预报控件可能需要更复杂的设计,如图标表示天气状况,或者使用图标库(如Font Awesome)来显示天气符号。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值