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

实验目的和要求

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

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

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

相关推荐
玩泥巴的11 小时前
可能是最现代化的微信生态 .NET 服务端 SDK
ai·微信·.net·aot
阿砾3 天前
微信群消息处理:回调乱序、自己发的消息、群内真实发送者
微信
承渊政道4 天前
飞牛NAS部署Hermes AI Agent:接入DeepSeek、微信与公网访问完整教程
人工智能·微信·nas·deepseek·hermes
高晶4 天前
微信小程序实战:iOS 降级查询工具从零开发
微信·程序员
软擎5 天前
花店节日布置怎么留记录?用轻虾导出助手把花材替换、现场尺寸与撤场清点钉在一起
微信
jaysee-sjc5 天前
【苍穹外卖】Day12:工作台数据看板与 Excel 报表导出
java·开发语言·数据库·spring boot·spring·微信·excel
极客互动API6 天前
【极客互动】企业微信外部群聊机器人开发实战与效果验证
微信·机器人·企业微信·企微scrm·企业微信api·企微外部联系人
特视界说8 天前
多规格产品动画怎么规划?把“一个型号一条片”改成可管理的内容架构
人工智能·安全·微信·新浪微博
悟空码字8 天前
视频号直播变了
微信·视频号
随性而行36010 天前
企业微信 Webhook 接收不到消息?网络连通性、URL 签名验签与 API 返回错误码排查指南
java·网络·人工智能·后端·微信·企业微信