怎么用JS和API制作天氣Web應(yīng)用程序

這篇文章主要為大家展示了“怎么用JS和API制作天氣Web應(yīng)用程序”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“怎么用JS和API制作天氣Web應(yīng)用程序”這篇文章吧。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供蘭陵網(wǎng)站建設(shè)、蘭陵做網(wǎng)站、蘭陵網(wǎng)站設(shè)計、蘭陵網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、蘭陵企業(yè)網(wǎng)站模板建站服務(wù),10年蘭陵做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

第 1 步 - 設(shè)置環(huán)境并收集所有資源

使用您喜歡的代碼編輯器,創(chuàng)建一個名為“Weather App”或任何您想要的名字,然后創(chuàng)建這三個文件并將這些資源添加到文件夾中:

  • index.html

  • style.css

  • script.js

我們需要的其他資源:

  • Favicon

  • Loading GIF (optional)

  • Vanilla-Tilt.js file

下載所有這些資源地址:https://download.csdn.net/download/qq_44273429/20463321

第 2 步 - 從 index.html 開始

從HTML 文件的常用模板開始。根據(jù)需要添加標(biāo)題。

在鏈接style.css和之前script.js,鏈接您想要的谷歌字體。我使用過Poppins字體,這是我比較喜歡的字體之一。(谷歌字體)

HTML

<link
href="https://fonts.googleapis.com/css2family=Poppins:ital,wght@0,200;0,400;0,500;0,600;0,700;0,800;0,900;1,800&display=swap"
rel="stylesheet">

現(xiàn)在從body開始,如果您希望向您的網(wǎng)站添加加載程序,那么您可以將其添加到正文標(biāo)簽中,然后為其編寫腳本。

HTML

<body onload="myFunction()">

制作兩個單獨的div。一個用于heading title,一個用于卡片。在它下面添加合適的div標(biāo)簽。

這里我使用了一個SVG格式的搜索按鈕。您可以將此代碼用于卡片div中的按鈕。

HTML

<button>
<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 16 16" height="1em"
width="1.5em" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" d="M10.442 10.442a1 1 0 011.415 0l3.85 3.85a1 1 0 01-1.414 1.415l-3.85-3.85a1 1 0 010-1.415z"
clip-rule="evenodd"></path>
<path fill-rule="evenodd" d="M6.5 12a5.5 5.5 0 100-11 5.5 5.5 0 000 11zM13 6.5a6.5 6.5 0 11-13 0 6.5 6.5 0 0113 0z"
clip-rule="evenodd"></path>
</svg>
</button>

為默認圖標(biāo)顯示添加天氣圖標(biāo)。

HTML

<div class="flex">
  <img src="https://openweathermap.org/img/wn/04d.png" alt="" class="icon" />
  <div class="description">多云</div>
</div>

加載動畫和Vanilla-Tilt js的腳本。在正文結(jié)束之前添加它。我在上面步驟 1 中提到的資源中添加了Vanilla-Tilt Js文件。

JS

<script>
        var preloader = document.getElementById('loading');
        function myFunction() {
            preloader.style.display = 'none';
        }
</script>
<script type="text/javascript" src="js/vanilla-tilt.js"></script>
    <script type="text/javascript">
        VanillaTilt.init(document.querySelector(".card"), {
            max: 15,
            glare: true,
            reverse: true,
            "max-glare": 0.5,
            speed: 400
        });
        VanillaTilt.init(document.querySelectorAll(".card"));
</script>

第 3 步 - 設(shè)置索引文

從樣式body和其他元素開始。

設(shè)置加載動畫的樣式。您可以使用此代碼對其進行樣式設(shè)置。由于加載動畫具有白色背景,因此我使用了#fff。我在資源文件夾中添加了SVG圖像。

CSS

#loading{
  position: fixed;
  width: 100%;
  height: 100vh;
  background: #fff url('/loading.svg')
  no-repeat center;
  z-index: 99999;
}

請參閱Github存儲庫以獲取 CSS 代碼

地址:https://github.com/wanghao221/Weather.io

第 4 步 - 獲取 Weather API 和 Unsplash API 密鑰

前往OpenWeatherMap并創(chuàng)建一個帳戶。登錄后單擊API Keys選項卡中的 ,您將看到API密鑰。復(fù)制API Key并粘貼到下面提到的 JavaScript代碼的第二行 (apiKey: " <Insert API Key here>",)

怎么用JS和API制作天氣Web應(yīng)用程序前往Unsplash Source。在這里,您可以看到如何根據(jù)大小、文本、用戶的喜好、收藏等以不同的方式調(diào)用圖片。

怎么用JS和API制作天氣Web應(yīng)用程序

第 5 步 - 從 JavaScript 編碼開始

JavaScipt中集成API對于學(xué)習(xí)如何為Web應(yīng)用程序使用API至關(guān)重要。我已經(jīng)列出了整個代碼。你可以通過它并理解代碼。

我已將此調(diào)用"url('https://source.unsplash.com/1600x900/?city " + name + "')"用于背景圖像。您可以根據(jù)需要自定義URL。

我還使用了上海市的默認天氣weather.fetchWeather("Shanghai");。您可以在此處添加任何城市的名稱。每當(dāng)您加載網(wǎng)站時,都會彈出這個城市的天氣。

JS

let weather = {
  apiKey: "<Insert API Key here>",
  fetchWeather: function (city) {
    fetch(
      "https://api.openweathermap.org/data/2.5/weather?q=" +
        city +
        "&units=metric&appid=" +
        this.apiKey
    )
      .then((response) => response.json())
      .then((data) => this.displayWeather(data));
  },
  displayWeather: function (data) {
    const { name } = data;
    const { icon, description } = data.weather[0];
    const { temp, humidity } = data.main;
    const { speed } = data.wind;
    document.querySelector(".city").innerText = "Weather in " + name;
    document.querySelector(".icon").src =
      "https://openweathermap.org/img/wn/" + icon + ".png";
    document.querySelector(".description").innerText = description;
    document.querySelector(".temp").innerText = temp + "°C";
    document.querySelector(".humidity").innerText =
      "濕度: " + humidity + "%";
    document.querySelector(".wind").innerText =
      "風(fēng)速: " + speed + " km/h";
    document.querySelector(".weather").classList.remove("loading");
    document.body.style.backgroundImage =
      "url('https://source.unsplash.com/1600x900/?city " + name + "')";
    document.body.style.backgroundRepeat = "none";
    document.body.style.backgroundSize = "100";
    document.body.style.width = "100%";
    document.body.style.height = "100%";
    document.body.style.backgroundRepeat = "no-repeat";
    document.body.style.backgroundSize = "cover";

  },
  search: function () {
    this.fetchWeather(document.querySelector(".search-bar").value);
  },
};

document.querySelector(".search button").addEventListener("click", function () {
  weather.search();
});

document
  .querySelector(".search-bar")
  .addEventListener("keyup", function (event) {
    if (event.key == "Enter") {
      weather.search();
    }
  });

weather.fetchWeather("Shanghai");

第 6 步 - 免費托管您的網(wǎng)站!

現(xiàn)在,當(dāng)您完成編碼后,您可以在您的網(wǎng)站上托管您自己的天氣應(yīng)用程序,或者您甚至可以在 Github 上免費托管它?。。?/p>

https://github.com/wanghao221/Weather.io

托管是可選的,但我建議將其發(fā)布并與您的朋友和家人共享,并將其添加到您的項目列表中。

即將推出的功能

這是我計劃添加一些更酷的功能,例如

每當(dāng)您打開網(wǎng)站時進行位置檢測,它將顯示其天氣特定位置的相關(guān)天氣新聞使背景圖像更準確地顯示位置使其對大多數(shù)設(shè)備(iPad 和平板電腦)的響應(yīng)速度更快

項目中一些很酷的截圖

怎么用JS和API制作天氣Web應(yīng)用程序

怎么用JS和API制作天氣Web應(yīng)用程序

怎么用JS和API制作天氣Web應(yīng)用程序

以上是“怎么用JS和API制作天氣Web應(yīng)用程序”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章名稱:怎么用JS和API制作天氣Web應(yīng)用程序
文章地址:http://muchs.cn/article20/pioijo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷網(wǎng)站設(shè)計公司、動態(tài)網(wǎng)站、App開發(fā)、用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)