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

实验目的和要求

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

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

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

相关推荐
深度学习实战训练营3 天前
albert模型实现微信公众号虚假新闻分类
微信·分类·数据挖掘
2401_844137953 天前
PHP露营地管理平台小程序系统源码
大数据·微信·微信小程序·小程序·微信公众平台·微信开放平台
Rainbow_Technology4 天前
劫持微信聊天记录并分析还原 —— 数据库结构讲解(四)
微信·微信聊天记录查看·微信聊天记录破解
陈思杰系统思考Jason5 天前
系统思考—深层结构
百度·微信·微信公众平台·新浪微博·微信开放平台
ysdysyn6 天前
C# winfrom实现微信(其他应用)自动跟随C#窗口,拖动页面自动恢复到固定位置
开发语言·微信·c#·winform
程序员入门进阶6 天前
基于微信的追星小程序+ssm(lw+演示+源码+运行)
微信·小程序
2401_844139037 天前
Java爱情交友婚恋系统小程序源码
微信·微信小程序·小程序·微信公众平台·交友·微信开放平台
somgl7 天前
Wecom酱搭建企业微信发送消息
微信
悟空码字10 天前
使用免费的微信机器人,实现消息推送实时通知
微信·消息推送·群机器人
悟空码字10 天前
使用微信免费的内容安全识别接口,UGC场景开发检测违规内容功能
微信·ugc·内容安全识别