This article example shares the specific code of Vue to implement weather forecast for your reference. The specific content is as follows Rendering Implementation Code <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>God knows</title> <link rel="stylesheet" href="css/reset.css" /> <link rel="stylesheet" href="css/index.css" /> <style> [v-cloak] { display: none; } </style> </head> <body> <div class="wrap" id="app"> <div class="search_form"> <div class="logo"><img src="img/logo.png" alt="logo" /></div> <div class="form_group"> <input type="text" class="input_txt" placeholder="Please enter the weather you want to query" v-model="city" @keyup.enter="searchWeather" /> <button class="input_sub" @click="searchWeather">Search</button> </div> <div class="hotkey"> <a href="javascript:;" @click="searchWeatherByCity('北京')">北京</a> <a href="javascript:;" @click="searchWeatherByCity('Shanghai')">Shanghai</a> <a href="javascript:;" @click="searchWeatherByCity('Guangzhou')">Guangzhou</a> <a href="javascript:;" @click="searchWeatherByCity('深圳')">深圳</a> </div> </div> <ul class="weather_list" v-cloak="block"> <li v-for="item in weatherList"> <div class="info_type"> <span class="iconfont">{{item.type}}</span> </div> <div class="info_temp"> <b>{{item.low}}</b> ~ <b>{{item.high}}</b> </div> <div class="info_date"><span>{{item.date}}</span></div> </li> </ul> </div> <!-- Development version, including helpful command line warnings --> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <!-- Axios online address provided by the official website--> <script src="https://unpkg.com/axios/dist/axios.min.js"></script> <!-- Own js --> <script src="./js/main.js"></script> </body> </html> index.css body{ font-family:'Microsoft YaHei'; } .wrap{ position: fixed; left:0; top:0; width:100%; height:100%; /* background: radial-gradient(#f3fbfe, #e4f5fd, #8fd5f4); */ /* background:#8fd5f4; */ /* background: linear-gradient(#6bc6ee, #fff); */ background:#fff; } .search_form{ width:640px; margin:100px auto 0; } .logo img{ display:block; margin:0 auto; } .form_group{ width:640px; height:40px; margin-top:45px; } .input_txt{ width:538px; height:38px; padding:0px; float:left; border:1px solid #41a1cb; outline:none; text-indent:10px; } .input_sub{ width:100px; height:40px; border:0px; float: left; background-color: #41a1cb; color:#fff; font-size:16px; outline:none; cursor: pointer; position: relative; } .input_sub.loading::before{ content:''; position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: url('../img/loading.gif'); } .hotkey{ margin:3px 0 0 2px; } .hotkey a{ font-size:14px; color:#666; padding-right:15px; } .weather_list{ height:200px; text-align:center; margin-top:50px; font-size:0px; } .weather_list li{ display:inline-block; width:140px; height:200px; padding:0 10px; overflow: hidden; position: relative; background:url('../img/line.png') right center no-repeat; background-size: 1px 130px; } .weather_list li:last-child{ background:none; } .info_date{ width:100%; height:40px; line-height:40px; color:#999; font-size:14px; left:0px; bottom:0px; margin-top: 15px; } .info_date b{ float: left; margin-left:15px; } .info_type span{ color:#fda252; font-size:30px; line-height:80px; } .info_temp{ font-size:14px; color:#fda252; } .info_temp b{ font-size:13px; } .temp .iconfont { font-size: 50px; } reset.css body,ul,h1,h2,h3,h4,h5,h6{ margin: 0; padding: 0; } h1,h2,h3,h4,h5,h6{ font-size:100%; font-weight:normal; } a{ text-decoration:none; } ul{ list-style:none; } img{ border:0px; } /* Clear floating to solve margin-top collapse*/ .clearfix:before,.clearfix:after{ content:''; display:table; } .clearfix:after{ clear:both; } .clearfix{ zoom:1; } .fl{ float:left; } .fr{ float:right; } main.js /* Request address: http://wthrcdn.etouch.cn/weather_mini Request method: get Request parameter: city (city name) Response content: Weather information 1. Click Enter 2. Query data 3. Render data */ var app = new Vue({ el: "#app", data: { city: '', weatherList: [] }, methods: { searchWeather() { if (this.city == '') { alert("Please enter a city!"); } else { var that = this; axios.get('http://wthrcdn.etouch.cn/weather_mini?city=' + that.city).then(function (response) { if (response.data.status == 1002) { alert("The city you entered is incorrect! Please re-enter!"); that.city = ''; } else { that.weatherList = response.data.data.forecast; console.log(response.data); } }).catch(function (error) { console.log(error); }) } }, searchWeatherByCity(city) { this.city = city; this.searchWeather(); } }, }) The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM. You may also be interested in:
|
<<: Summary of ten Linux command aliases that can improve efficiency
>>: Batch replace part of the data of a field in Mysql (recommended)
Table of contents Difference between MVC and MVVM...
Table of contents Pitfalls encountered in timesta...
Sometimes local development requires debugging of...
Preface I believe that the syntax of MySQL is not...
1. Grammar location [=|~|~*|^~|@] /uri/ { ... } 2...
1. Replication Principle The master server writes...
Putting input and img on the same line, the img ta...
After I set up the PHP development environment on...
Table of contents Preface 1. Why do cross-domain ...
Sometimes, we want the text boxes in the form to b...
The simplest application of store in Vue is globa...
This article shares with you how to install Kylin...
Table of contents 1. Home Page Production 1. Prod...
Table of contents 1. Browser support 2. export ex...
This article shares the specific code of JavaScri...