祥云天气是一个用来展示某地的天气温度、天气状况以及未来几天的温度微信小程序
下面通过数据绑定的方式显示天气情况
image.png

(1)首先创建项目

AppID的获取在第1章中讲过,或者使用测试号,单击蓝色“小程序”会自动填入测试AppID,勾选“建立普通快速启动模板”
image.png

(2)创建新页面weather

进入app.json,在pages配置项中删除index页面,新增weather页,代码如下

  1. {
  2. "pages":[
  3. "pages/weather/weather"
  4. ]
  5. }

然后就会在编辑器中看到,pages目录下多出weather文件夹
现在就创建好了weather页,并且显示的也是weather页

打开app.json,修改全局配置,设置标题栏的背景颜色和文字,代码如下

  1. {
  2. "pages":[
  3. "pages/weather/weather"
  4. ],
  5. "window":{
  6. "backgroundTextStyle":"light",
  7. "navigationBarBackgroundColor":"#5fc8ff",
  8. "navigationBarTitleText":"祥云天气",
  9. "navigationBarTextStyle":"white"
  10. },
  11. "debug":false
  12. }

(3)打开weather.js

在data中添加天气数据,包括城市、地区、天气、温度和星期数据,代码如下

  1. Page({
  2. data:{
  3. city:"北京",
  4. area:"海淀",
  5. weather:"多云",
  6. temperature:"18℃",
  7. weeks:{
  8. week:"周三",
  9. temp:{highest:"18℃",lowest:"12℃"}
  10. }
  11. }
  12. })

(4)打开weather.wxml

编写页面结构,通过数据绑定把在js中定义的数据显示出来,代码如下

  1. <view class='container'>
  2. <text class='weather'>{{weather}}</text>
  3. <text class='city'>{{city}} {{area}}</text>
  4. <text class='temperature'>{{temperature}}</text>
  5. <view class='week-list'>
  6. <view class='week'>{{weeks.week}}</view>
  7. <view class='temp'>{{weeks.temp.hightest}}~{{weeks.temp.lowest}}</view>
  8. </view>
  9. </view>

image.png

(5)添加背景图

在项目根目录创建public/imgs/目录,把本章提供的背景图素材导入imgs目录下
修改weather.wxml代码,添加image组件,代码如下

  1. <view class='container'>
  2. <image class='bg' mode='widthFix' src='/public/img/qntq-bg.png'></image>
  3. <text class='weather'>{{weather}}</text>
  4. <text class='city'>{{city}} {{area}}</text>
  5. <text class='temperature'>{{temperature}}</text>
  6. <view class='week-list'>
  7. <view class='week'>{{weeks.week}}</view>
  8. <view class='temp'>{{weeks.temp.hightest}}~{{weeks.temp.lowest}}</view>
  9. </view>
  10. </view>

(6)添加样式

美化页面,打开weather.wxss添加样式,代码如下

  1. .container{
  2. color:#fff;
  3. }
  4. .bg{
  5. position:absolute;
  6. top:0;
  7. width:100%;
  8. z-index:-1;
  9. }
  10. .weather{
  11. color:#fff;
  12. font-size:60rpx;
  13. margin-top:50rpx;
  14. }
  15. .city{
  16. font-size:32rpx;
  17. margin:10rpx;
  18. }
  19. .temprature{
  20. font-size:180rpx;
  21. margin:20rpx;
  22. font-weight:800;
  23. }
  24. .week-list{
  25. width:100%;
  26. display:flex;
  27. align-item:center;
  28. justify-content:center;
  29. color:#5fc8ff;
  30. margin-top:470rpx;
  31. }
  32. .week-list .week{
  33. flex:3;
  34. text-align:left;
  35. padding-left:50rpx;
  36. }
  37. .week-list .temp{
  38. flex:2;
  39. text-align:center;
  40. }

image.png