成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

教程篇:如何用JS和API制作天氣Web應(yīng)用程序(收藏)

之前的文章《手把教你使用HTML、CSS和JS制作隨機(jī)密碼生成器(分享)》中,給大家介紹了怎么使用html、css和js制作隨機(jī)密碼生成器。下面本篇文章給大家介紹如何用JS和API制作天氣Web應(yīng)用程序,我們一起看看怎么做。

教程篇:如何用JS和API制作天氣Web應(yīng)用程序(收藏)

今天我將制作一個(gè)很棒的天氣應(yīng)用程序,我們可以在其中搜索任何城市、地區(qū)或國(guó)家/地區(qū),并使用Weather API獲取其當(dāng)前天氣。此外,為了給它添加一些修飾,我還使用了Unsplash API作為網(wǎng)站的背景圖片,這將基于您輸入的位置。我為卡片添加了傾斜效果和玻璃化外觀。我們將在這個(gè)項(xiàng)目中使用的編程語(yǔ)言是HTMLCSSJS。所以讓我們咕咕咕。

看看我們將要實(shí)現(xiàn)的最終樣子

演示地址:https://wanghao221.github.io/Weather.io/

bilibili展示視頻:https://www.bilibili.com/video/BV1xX4y1c7Z4

注意:我在文中只提到了您應(yīng)該/可能在代碼中使用的幾個(gè)關(guān)鍵點(diǎn)和步驟。因?yàn)椋@是一個(gè)博客,而不是代碼庫(kù),所以我想保持簡(jiǎn)潔。如果您想?yún)⒖颊麄€(gè)代碼地址https://github.com/wanghao221/Weather.io 去看看吧!

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

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

  • 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 開(kāi)始

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

在鏈接style.css和之前script.js,鏈接您想要的谷歌字體。我使用過(guò)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開(kāi)始,如果您希望向您的網(wǎng)站添加加載程序,那么您可以將其添加到正文標(biāo)簽中,然后為其編寫腳本。

HTML

<body onload="myFunction()">

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

這里我使用了一個(gè)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>

為默認(rèn)圖標(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>

加載動(dòng)畫和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和其他元素開(kāi)始。

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

CSS

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

請(qǐng)參閱Github存儲(chǔ)庫(kù)以獲取 CSS 代碼

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

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

前往OpenWeatherMap并創(chuàng)建一個(gè)帳戶。登錄后單擊API Keys選項(xiàng)卡中的 ,您將看到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 編碼開(kāi)始

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

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

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

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 步 – 免費(fèi)托管您的網(wǎng)站!

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

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

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

即將推出的功能

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

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

項(xiàng)目中一些很酷的截圖

教程篇:如何用JS和API制作天氣Web應(yīng)用程序(收藏)

教程篇:如何用JS和API制作天氣Web應(yīng)用程序(收藏)

教程篇:如何用JS和API制作天氣Web應(yīng)用程序(收藏)

推薦學(xué)習(xí):HTML/CSS視頻教程、JS視頻教程

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
女人被狂躁的高潮免费视频| 欧美XXXX做受视频| 乱码午夜-极品国产内射| 麻花传媒网站永久入口视频| 内射射满骚B含着小说| 人妻人人做人碰人人添 | 人妻少妇精品无码专区二区| 日韩欧美精品有码在线| 玩弄中国白嫩少妇HD乱| 亚洲AV区无码字幕中文色| 亚洲欧洲∨国产一区二区三区| 一本到高清视频在线观看丶| 99亚洲乱人伦AⅤ精品| 成人无码A区在线观看视频| 国产成人人综合亚洲欧美丁香花| 国产亚洲成AV人片在线观看导航| 久爱无码免费视频在线| 免费无遮挡无码永久在线观看视频| 青青草A免费线观A| 无码A级毛片视频| 亚洲国产精品久久久久婷婷软件| 中国丰满少妇性BBBBBBBB| 锕锕锕锕锕锕锕锕轻点好疼视频| 国产激情一区二区三区视频免樱桃| 加勒比一本HEYZO高清视频| 蜜桃无码一区二区三区| 日韩无码av一区二区| 亚洲AV性色精品国产小电影| 中文字幕一区二区精品区 | 日本真人裸交试看120秒 | 国精产品一区一区三区糖心| 老翁的大肉蟒进进出出| 日韩综合无码一区二区| 亚洲成A人片在线观看中文 | 亚洲国产精品一区二区制服| 97超级碰碰碰久久久久APP| 疯狂做受XXXX欧美老人| 精品香蕉久久久午夜福利| 欧美日韩一区二区三区精品视频| 挺进绝色老师的紧窄小肉六视频| 亚洲熟妇色XXXXX中国少妇Y| 被部长灌醉后强行侵犯| 黑人大战欲求不满人妻| 欧美无MATE30PRO巨| 小诗的公交车日记免费读| 又爽又黄又无遮挡的视频在线观看| 草莓视频免费观看| 精品无码久久久久久久动漫| 人人妻人人爽人人澡人人少妇| 亚洲AV无码一区二区密桃精品| 中文字幕乱码人妻一区二区三区| 国产98色在线 | 国| 久久亚洲精品无码爱剪辑| 日精品一区二区蜜桃AV| 亚洲中文字幕无码久久2017| 东京热无码人妻系列综合网站| 久久精品无码免费不卡| 少妇人妻系列无码专区视频| 一边做一边喷17P亚洲乱妇| 丰满岳跪趴高撅肥臀| 老少交TNBE少老配| 午夜福利一区二区三区在线观看| 91精品人妻一区二区三区蜜蜜挑| 国产欧美日韩第一章午夜在线 | 中国女人大白屁股ASS| 国产精品国产自线拍免费软件| 蜜臀av夜夜嗨一区二区粉嫩| 无人高清影视在线观看| 99久久精品午夜一区二区| 国语对白做受XXXXX在线中国| 人妻 丝袜美腿 中文字幕| 亚洲精品乱码久久久久久按摩| 成人福利国产午夜AV免费不卡在| 久久久久久亚洲综合影院| 偷拍区小说区图片区另类呻吟| 97免费公开在线视频| 精品高朝久久久久9999| 射精专区一区二区朝鲜| 97婷婷狠狠成为人免费视频| 精东传媒剧国产MV的特点| 少妇人妻综合久久中文888| 中央气象台1一7天降水量预报图| 国产真人无遮挡作爱免费视频| 日产精品一线二线三线优势| 中文成人久久久久影院免费观看| 国产女人水真多18毛片18精品 | 暗交小拗女一区二区三区| 久久久久人妻精品区一| 无码任你躁久久久久久| 被按摩的人妻中文字幕BD| 蜜桃AV蜜臀AV色欲AV麻| 亚洲AV无码专区国产乱码在线观| 岛国片无删减上线| 欧美人与动牲交免费观看| 野花免费高清完整在线观看| 国产无线乱码一区二三区| 日韩人妻无码精品—专区| 2018午夜福利| 久久午夜夜伦鲁鲁片免费无码| 亚洲AVT无码天堂网| 国产成人精品免高潮在线观看| 欧洲无线一线二线三W955| 荫蒂添的好舒服小说短篇| 狠狠躁天天躁夜夜躁婷婷| 忘忧草影视WWW在线播放网| 边摸边脱吃奶边高潮视频免费 | 九九国产精品无码免费视频| 性色A∨人人爽网站HD| 国产成人无码AA精品一区 | 被带到满是X玩具的房间挑调游戏| 蜜桃AV秘 无码一区二区三区| 亚洲性人人天天夜夜摸| 激情综合激情五月俺也去| 亚欧色一区W666天堂| 国产精品露脸视频观看| 私人微信放款24小时在线| 成交人性成交视频| 人妻少妇久久中文字幕| AV无码小缝喷白浆在线观看| 男男激情H视频Gay片GV| 中文毛片无遮挡高潮免费| 巨大黑人XXXXX高潮后处理| 亚洲日韩AA特黄毛片试看| 精品国内自产拍在线观看视频| 亚洲AV成人无码AV小说| 国产在线 | 传媒麻豆| 午夜DY888国产精品影院| 国产成人综合久久精品| 天天躁日日躁狠狠躁裸体| 国产AV午夜精品一区二区三区 | 欧洲免费无线码在线一区| AI换脸造梦JENNIE喷水| 欧美高潮抽搐喷水大叫| HUGEBOOBS熟妇大波霸| 让人一看就舒服的网名| 拔萝卜在线视频免费观看| 人体艺术大胆图片| 顶级大但人文艺术巫| 熟妇人妻久久中文字幕| 国产成人无码AV在线播放DVD| 丝袜灬啊灬快灬高潮了AV| 国产精品不卡无码AV在线播放 | 国产精品女同一区二区| 亚洲 欧美 国产 制服 动漫| 国模小黎大尺度精品(02)[| 亚洲成A∧人片在线播放黑人| 护士爽到疯狂潮喷好爽| 亚洲人成网站18禁止大| 久久久无码精品午夜| 中文字幕一区二区人妻性色| 欧美性色黄大片手机版| 成人无码WWW免费视频| 我把护士日出水了视频90分钟| 国产精品久久久久精品…| 亚洲AV无码精品色夜午夜网址| 好硬好大好爽18禁免费看男男| 亚洲无人区码一码二码三码的含义| 久久人妻无码一区二区三区av| 97国产精华最好的产品在线| 日本高清WWW色视频| 国产VIVODESHD精品| 亚洲AV成人一区二区三区不卡 | 国产乱码精品一区二区三区中文 | 国产成人久久精品二区三区| 亚洲AV成人片无码www妖精| 久久99精品久久水蜜桃| 中国GAY片男同志免费网站| 趴下老子要从后面CAO你| 公交车上拨开丁字裤进入| 亚洲AV无码成人精品区浪潮AV| 久久精品日日躁夜夜躁| 99久久精品美女高潮喷水| 色妞AV永久一区二区国产AV开 | 男女猛烈无遮挡免费视频| 成年网站免费视频黄A站| 我被八个男人玩到早上| 精品午夜人成一区| JAPANESE嫩21VIDE| 我国产码在线观看AV哈哈哈网站 | 国产日产欧产精品| 伊人久久大香线蕉AV网| 让人一看就舒服的网名| 国产女主播高潮在线播放| 一区二区三区乱码在线 | 中文 | 你日的我走不了路了| 丰满熟妇人妻中文字幕| 亚洲成AV人片在线观看无下载| 蜜臀AV性久久久久蜜臀AⅤ麻豆| 成人午夜福利无码不卡视频| 无人区码一码二码三码区别在哪里| 久久精品中文字幕无码| 苍井空电影在线观看| 亚洲成AV人片在线观看无码不卡| 女人夜夜春高潮爽A∨片| 国产国拍亚洲精品MV在线观看| 亚洲午夜福利精品久久 | 大粗鳮巴久久久久久久久| 亚洲精品无码aⅴ中文字幕蜜桃| 欧美一性一交一免费看| 国产午夜福利精品一区二区三区|