实验六 智能手机互联网程序设计(微信程序方向)实验报告

实验目的和要求

  • 请完成创建图片库应用,显示一系列预设的图片。
  • 提供按钮来切换显示不同类别的图片。

二、实验步骤与结果(给出对应的代码或运行结果截图)

1.WXML

<view>

<button bindtap="showAll">所有图片</button>

<button bindtap="showAnimals">动物</button>

<button bindtap="showNature">自然</button>

<view class="image-list">

<block wx:for="{{show}}" wx:key="index">

<image src="{{item.url}}" mode="widthFix"></image>

</block>

</view>

</view>

2.WXSS

button {

border:none ;/* 去除按钮边框 */

border-radius: 5px;/* 设置边角为圆角,圆角半径为5px */

text-align: center; /* 文字居中显示 */

font-size: 16px;/* 文字大小设置为16px */

display: block;/* 设置按钮为块级元素,使其独占一行 */

width: 90%;/* 按钮宽度为容器宽度的90%,以保持一定的边距 */

margin: 10PX auto;/* 垂直边距为10px,水平自动居中对齐 */

padding: 10px;/* 内边距为10px,增加点击区域,使按钮更容易点击 */

background-color: #007AFF;/* 设置按钮的背景颜色为深蓝色 */

color:#ffffff/* 设置按钮文字颜色为白色,以提高对比度和可读性 */

}

/* 图片样式 */

image {

width: 100%; /* 图片宽度设置为100%填满容器宽度,适应不同屏幕 */

margin-top: 10px;/* 图片上边距为10px,用于与上方内容保持距离 */

margin-bottom: 10px;/* 图片下边距也为10px,与下方内容保持距离 */

border-radius: 8px;/* 设置图片边角为圆角,圆角半径为8px,增加美观 */

}

3.JS

Page({

/**

* 页面的初始数据

*/

data: {

images: [

{ url: 'https://img2.baidu.com/it/u=622413623,4084455738\&fm=253\&fmt=auto\&app=138\&f=JPEG?w=500\&h=1082', type: 'animal' },

{ url: 'https://img2.baidu.com/it/u=2614849573,2966135114\&fm=253\&fmt=auto\&app=138\&f=JPEG?w=500\&h=888', type: 'nature' },

{ url: 'https://img2.baidu.com/it/u=2829124655,2639685270\&fm=253\&fmt=auto\&app=138\&f=JPEG?w=889\&h=500', type: 'animal' }

],

show: \[\] //

},

/**

* 生命周期函数--监听页面加载

*/

onLoad: function (options) {

},

showAll(){

this.setData({

show:this.data.images

})

},

showAnimals() {

const show_animal=this.data.images.filter(images=>images.type === "animal")

this.setData({

show:show_animal

});

},

showNature() {

const show_nature=this.data.images.filter(images=>images.type === "nature")

this.setData({

show:show_nature

});

},

/**

* 生命周期函数--监听页面初次渲染完成

*/

onReady: function () {

},

/**

* 生命周期函数--监听页面显示

*/

onShow: function () {

},

/**

* 生命周期函数--监听页面隐藏

*/

onHide: function () {

},

/**

* 生命周期函数--监听页面卸载

*/

onUnload: function () {

},

/**

* 页面相关事件处理函数--监听用户下拉动作

*/

onPullDownRefresh: function () {

},

/**

* 页面上拉触底事件的处理函数

*/

onReachBottom: function () {

},

/**

* 用户点击右上角分享

*/

onShareAppMessage: function () {

}

})

实验思路

1.WXML
1.1 定义页面主视图
页面的主体内容被一个view组件包含,这个view作为容器,里面包含所有的子组件,包括按钮和图片列表。
<view>-><button>*3 & <view class="image-list">

1.2 添加功能按钮
在页面的顶部,我们添加了三个button组件,每个按钮通过bindtap事件绑定到相应的函数,用于控制下方图片列表的显示内容:

第一个按钮(所有图片):当点击时,触发showAll函数,显示所有图片。
<button bindtap="showAll">所有图片</button>
第二个按钮(动物):当点击时,触发showAnimals函数,仅显示属于动物类别的图片。
<button bindtap="showAnimals">动物</button>
第三个按钮(自然):当点击时,触发showNature函数,仅显示属于自然类别的图片。
<button bindtap="showNature">自然</button>

1.3 设置图片展示区
在按钮下方,设置了一个类名为"image-list"的view组件作为图片展示区。这个区域使用了block容器来循环渲染filteredImages数组中的每一项:
<block wx:for="{{filteredImages}}" wx:key="index"> </block>
每个block组件包含一个image组件,用于显示单个图片。
image组件的src属性绑定到数组项的url属性,这样每个图片的链接都是动态加载的。
<image src="{{item.url}}" mode="widthFix"></image>
图片使用mode="widthFix"属性确保图片的宽度自适应容器宽度

2.WXSS

/* 按钮样式 */
button {
/* 设置按钮为块级元素,使其独占一行 */
/* 按钮宽度为容器宽度的90%,以保持一定的边距 */
/* 垂直边距为10px,水平自动居中对齐 */
/* 内边距为10px,增加点击区域,使按钮更容易点击 */
/* 设置按钮的背景颜色为深蓝色 */
/* 设置按钮文字颜色为白色,以提高对比度和可读性 */
/* 去除按钮边框 */
/* 设置边角为圆角,圆角半径为5px */
/* 文字居中显示 */
/* 文字大小设置为16px */
}

/* 图片样式 */
image {
/* 图片宽度设置为100%填满容器宽度,适应不同屏幕 */
/* 图片上边距为10px,用于与上方内容保持距离 */
/* 图片下边距也为10px,与下方内容保持距离 */
/* 设置图片边角为圆角,圆角半径为8px,增加美观 */
}

3.JS
// index.js
Page({
data: {
images: { url: '图像1路径', type: 'animal' }, { url: '图像2路径', type: 'nature' }, { url: '图像3路径', type: 'animal' } ,
filteredImages: \[\] //
},

// 方法:显示所有图片
showAll() {
请补全注释里的代码 // 调用setData方法来更新filteredImages数组为所有图片的数组
},
showAnimals() {
请补全注释里的代码 // 使用filter方法筛选出类型为'animal'的图片 (this.data.images.filter)
this.setData({
请补全注释里的代码 // 调用setData方法来更新页面数据仅显示筛选后的'animal'类型图片
});
},
showNature() {
请补全注释里的代码 // 使用filter方法筛选出类型为'nature'的图片 (this.data.images.filter)
this.setData({
请补全注释里的代码 // 调用setData方法来更新页面数据仅显示筛选后的'animal'类型图片
});
}
});

可以使用的图片路径:
https://img2.baidu.com/it/u=622413623,4084455738\&fm=253\&fmt=auto\&app=138\&f=JPEG?w=500\&h=1082
https://img2.baidu.com/it/u=2614849573,2966135114\&fm=253\&fmt=auto\&app=138\&f=JPEG?w=500\&h=888
https://img2.baidu.com/it/u=2829124655,2639685270\&fm=253\&fmt=auto\&app=138\&f=JPEG?w=889\&h=500

相关推荐
软擎10 小时前
花店节日布置怎么留记录?用轻虾导出助手把花材替换、现场尺寸与撤场清点钉在一起
微信
jaysee-sjc14 小时前
【苍穹外卖】Day12:工作台数据看板与 Excel 报表导出
java·开发语言·数据库·spring boot·spring·微信·excel
极客互动API2 天前
【极客互动】企业微信外部群聊机器人开发实战与效果验证
微信·机器人·企业微信·企微scrm·企业微信api·企微外部联系人
特视界说3 天前
多规格产品动画怎么规划?把“一个型号一条片”改成可管理的内容架构
人工智能·安全·微信·新浪微博
悟空码字3 天前
视频号直播变了
微信·视频号
随性而行3605 天前
企业微信 Webhook 接收不到消息?网络连通性、URL 签名验签与 API 返回错误码排查指南
java·网络·人工智能·后端·微信·企业微信
未秃头的程序猿6 天前
同一个商户号,V2 免密代扣和 V3 分账的证书怎么共存?
java·后端·微信
木易 士心6 天前
Spring Boot 微信公众号后端服务开发实战指南
spring boot·后端·微信
linda`li8 天前
如何使用TRAE+Figma自动生成前端代码
微信·figma·自动写代码
随性而行3609 天前
企业微信 API 如何实现业务消息自动通知?接口应用场景解析
java·人工智能·后端·微信·机器人·企业微信