当前位置:首页 > JavaScript

js实现天气

2026-04-05 18:18:25JavaScript

使用 JavaScript 实现天气功能

获取天气数据

通过调用天气 API 获取实时天气数据。常见的免费天气 API 包括 OpenWeatherMap、WeatherAPI 等。注册并获取 API Key 后,可以使用 fetchaxios 发起请求。

const apiKey = 'YOUR_API_KEY';
const city = 'Beijing';
const url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&units=metric`;

fetch(url)
  .then(response => response.json())
  .then(data => {
    console.log(data);
    displayWeather(data);
  })
  .catch(error => console.error('Error fetching weather data:', error));

显示天气信息

将获取的天气数据解析并显示在页面上。通常需要展示温度、天气状况、湿度、风速等信息。

function displayWeather(data) {
  const weatherContainer = document.getElementById('weather-container');
  const temperature = data.main.temp;
  const description = data.weather[0].description;
  const humidity = data.main.humidity;
  const windSpeed = data.wind.speed;

  weatherContainer.innerHTML = `
    <h3>${data.name}</h3>
    <p>Temperature: ${temperature}°C</p>
    <p>Condition: ${description}</p>
    <p>Humidity: ${humidity}%</p>
    <p>Wind Speed: ${windSpeed} m/s</p>
  `;
}

处理用户输入

允许用户输入城市名称并查询天气。可以通过表单和事件监听实现。

<input type="text" id="city-input" placeholder="Enter city name">
<button id="search-button">Search</button>
<div id="weather-container"></div>
document.getElementById('search-button').addEventListener('click', () => {
  const city = document.getElementById('city-input').value;
  if (city) {
    fetchWeather(city);
  }
});

function fetchWeather(city) {
  const url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${apiKey}&units=metric`;
  fetch(url)
    .then(response => response.json())
    .then(data => displayWeather(data))
    .catch(error => console.error('Error:', error));
}

添加天气图标

根据天气状况显示对应的图标。OpenWeatherMap 提供了天气图标,可以直接使用。

function displayWeather(data) {
  const weatherContainer = document.getElementById('weather-container');
  const iconCode = data.weather[0].icon;
  const iconUrl = `https://openweathermap.org/img/wn/${iconCode}@2x.png`;

  weatherContainer.innerHTML = `
    <h3>${data.name}</h3>
    <img src="${iconUrl}" alt="${data.weather[0].description}">
    <p>Temperature: ${data.main.temp}°C</p>
    <p>Condition: ${data.weather[0].description}</p>
  `;
}

错误处理

处理 API 请求失败或无效城市输入的情况。

js实现天气

function displayWeather(data) {
  if (data.cod === '404') {
    document.getElementById('weather-container').innerHTML = `<p>City not found</p>`;
    return;
  }
  // 正常显示天气
}

通过以上步骤,可以实现一个基本的天气查询功能。根据需求可以进一步扩展,如添加天气预报、本地存储常用城市等。

标签: 天气js
分享给朋友:

相关文章

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js实现图表

js实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现正交

js实现正交

正交的概念 正交在数学和计算机科学中通常指两个向量垂直或线性无关。在编程中,正交性常被用于设计模块化、低耦合的系统。 向量正交判断 判断两个向量是否正交可以通过点积是否为0来实现: fun…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…