Vue.js天气查询

本文介绍了一个使用Vue.js构建的天气查询应用,通过HTML、CSS和JavaScript实现了界面布局和交互功能。应用中,输入框能响应键盘回车事件触发查询,并实时更新当前时间。同时,展示了如何从API获取并显示天气预报数据。CSS用于美化界面,包括背景色、边框和文字样式等。JavaScript部分处理了数据请求和时间显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

目录

HTML

 CSS

JS

笔记

导入js

输入框内部无法跟着外部div设置的背景色而改变颜色

绑定键盘事件enter

查询(我也不太懂怎么实现的)

 动态当前时间显示

效果展示

源文件查看

HTML

<div id="app">
			<div id="header">
				<h1>天气预报查询</h1>
				<p><input @keyup.enter="search()" type="text" v-model="city" id="city"
						placeholder="请输入要查询天气的城市" /><button type="button" @click="search()">查询</button></p>
				<p>当前时间:<input type="text" id="date"  readonly="readonly"/></p>	
			</div>

			<div id="nav">
				<div v-for="w in weatherlist">
					<h2>{{w.type}}</h2>
					<p>{{w.low}}~{{w.high}}</p>
					<p>{{w.fengxiang}}</p>
					<p>{{w.date}}</p>
				</div>
			</div>
		</div>

 CSS

* {
				padding: 0;
				margin: 0;
			}

			#app {
				width: 800px;
				height: 600px;
				border: aqua 3px solid;
				margin: 50px auto;
				padding-top: 40px;
				background-color: aquamarine;

			}

			#header {
				text-align: center;
			}

			#nav>div {
				width: 180px;
				margin: 5px 9px;
				/* 边框线宽度为1px占用1px */
				border: pink 1px solid;
				display: inline-block;
				text-align: center;
			}

			button {
				padding: 3px;
				background-color: greenyellow;
				margin-left: 5px;
			}

			#city {
				padding: 3px 0;
			}

			h1 {
				text-align: center;
				font-size: 50px;
				color: brown;
			}

			h2 {
				text-align: center;
				color: #5d68ff;
			}
			#date {
				width: 200px;
				height: 30px;
				border: none;
				padding: 2px 10px;
                outline: none;/* 去除边框聚焦效果 */	
			}
			input {
				background-color: aquamarine;/* 输入框背景色 */
			}
			

JS

new Vue({
				el: "#app",
				data: {
					city: "",
					weatherlist: []
				},
				methods: {
					search: function() {
						var that = this;
						axios.get("http://wthrcdn.etouch.cn/weather_mini?city=" + this.city).then(function(resp) {
								console.log(resp.data.data.forecast);
								that.weatherlist = resp.data.data.forecast;
							})
							.catch(function(err) {
								alert("城市输入有误!")
							})
					}
				}
			})
			//显示时间
			function showTime() {
				var t = new Date()
				var year = t.getFullYear();
				var month = t.getMonth();
				var day = t.getDate();
				var week = t.getDay();
				var arr = new Array("星期一","星期二","星期三","星期四","星期五","星期六","星期日");
				var hour = t.getHours();
				var minute = t.getMinutes();
				var second = t.getSeconds();								
				var showTime = year+"/"+month+"/"+day+" "+arr[week]+" "+hour+((minute<10)?":0":":")+minute+((second<10)?":0":":")+second;
				document.getElementById("date").value=showTime;
			}
			setInterval("showTime()",1000);

笔记

导入js

输入框内部无法跟着外部div设置的背景色而改变颜色

需额外设置

绑定键盘事件enter

查询(我也不太懂怎么实现的)

 动态当前时间显示

月份为0~11,所以应加1

var month = t.getMonth()+1;

 

效果展示

 

源文件查看

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦中千秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值