婚礼邀请函小程序项目

文章目录

  • 一、学习目标
    • 1.掌握小程序常用组件的使用
    • 2.掌握腾讯视频插件的使用
    • 3.掌握背景音乐API、地图API的使用
    • 4.掌握订阅消息的发送
  • 二、开发前准备
    • 1.项目展示
  • 三、代码实现
    • 1 项目搭建
    • 2 功能实现
      • 2.1 背景音乐功能
      • 2.2 照片页面功能
      • 2.3 美好时光页面
      • 2.4 婚礼地点页面
      • 2.5 宾客信息页面

一、学习目标

1.掌握小程序常用组件的使用

2.掌握腾讯视频插件的使用

3.掌握背景音乐API、地图API的使用

4.掌握订阅消息的发送

二、开发前准备

  • 项目展示、项目分析、项目初始化

1.项目展示

  • 照片页面

在这里插入图片描述

  • 美好时光页面

在这里插入图片描述

  • 宾客信息页面

在这里插入图片描述

三、代码实现

1 项目搭建

  • 在微信开发者工具中创建一个空白项目。创建成功后,新建app.json文件,在该文件中定义本项目中的页面路径、定义项目导航栏样式、定义项目底部标签栏
{"pages":["pages/index/index","pages/picture/picture","pages/video/video","pages/map/map","pages/guest/guest","pages/logs/logs"],"window":{"backgroundTextStyle":"light","navigationBarBackgroundColor": "#fff","navigationBarTitleText": "婚礼邀请函","navigationBarTextStyle":"black"},"tabBar": {"color": "#ccc","selectedColor": "#ff4ccc","borderStyle": "black","backgroundColor": "#ffffff","position": "bottom","list": [{"pagePath": "pages/index/index","iconPath": "/images/invite.png","selectedIconPath": "/images/invite.png","text": "邀请函"},{"pagePath":"pages/picture/picture","iconPath": "/images/marry.png","selectedIconPath": "/images/marry.png","text": "照片"},{"pagePath":"pages/video/video","iconPath": "/images/video.png","selectedIconPath": "/images/video.png","text": "美好时光"},{"pagePath":"pages/map/map","iconPath": "/images/map.png","selectedIconPath": "/images/map.png","text": "婚礼地点"},{"pagePath":"pages/guest/guest","iconPath": "/images/guest.png","selectedIconPath": "/images/guest.png","text": "宾客信息"}]
},"style": "v2","sitemapLocation": "sitemap.json"
}

2 功能实现

2.1 背景音乐功能

  • 在index.wxml设置页面和展示图片,代码如下:
<view class="player player-{{isPlayingMusic ? 'play' : 'pause'}}" 
bindtap="play"><image src="/images/music_icon.png" /><image src="/images/music_play.png"/>
</view>
  • 在index.wxss中编写播放器的样式
.content{/*vw 表示屏幕的宽度,vh 表示屏幕的高度*/width: 100vw;height: 100vh;
}.bg{width: 100%;height: 100%;
}
.play{position: fixed;top: 20rpx;right: 20rpx;/*提高堆叠的顺序*/z-index: 1;
}
.play>image:first-child{width: 80rpx;height: 80rpx;
}
.play>image:last-child{width: 20rpx;height: 80rpx;margin-left: -5px;
}
.cont{width: 100%;height: 100%;position: fixed;top: 0rpx;z-index: 2;display: flex;flex-direction: column;align-items: center;
}
.cont-info-weding{flex: 1;display: flex;flex-direction: column;align-items: center;
}
.cont-gif{width: 19vh;height: 18.6vh;
}
.cont-title{font-size: 5vh;color:#ff4c91;font-weight: bold;margin-top: 1.5vh;
}
.cont-avatar{width: 24vh;height: 24vh;border-radius: 50%;border: 3px solid #ff4c91;margin-top: 2.5vh;
}
.cont-info{display: flex;flex-direction: row;align-items: center;width: 50vw;
}
.cont-info-wedding{width: 60rpx;height: 60rpx;/*margin-left: 40rpx;margin-right: 40rpx;*/
}
.content-name{position: relative;color: #ff4c91;font-weight: bold;font-size: 2.7vh;}
.content-name>image{height: 30rpx;width: 30rpx;/*设置电话半圆*/border-radius: 50%;border: 1px solid #ff4c91;position: absolute;top: -25rpx;right: -35rpx;
}
.cont-address{color:#ff4c91;font-weight: bold;margin-top: 10rpx;font-size: 2.9vh;align-items: center;text-align: center;line-height: 4.5vh;/*时间地点的行高度*/
}
.cont-address>view:first-child{font-size:3.2vh;margin-bottom: 2vh;
}
  • 在index.js中实现音乐播放、暂停功能,并选择音乐源,代码如下:
onReady: function () {this.bgm = wx.getBackgroundAudioManager()this.bgm.onCanplay(()=> {this.bgm.pause()})this.bgm.src = this.music_url
},
  • 在index.js中实现正在播放功能,代码如下:
play: function (e) {if (this.data.isPlayingMusic) {this.bgm.pause()} else { this.bgm.play() }this.setData({
isPlayingMusic:!this.data.isPlayingMusic })
},
  • 在index.wxml中编写页面结构的样式,实现一键拨打电话功能
<view class="content"><image class="bg" src="/images/bg_1.png"></image><view class="play"><image src="/images/music_icon.png"></image><image src="/images/music_play.png"></image></view><view class="cont"><image class="cont-gif" src="/imagesve_the_date.gif"></image><view class="cont-title">邀请函</view><image class="cont-avatar" src="/images/avatar.png" ></image><view class="cont-info"><!--新郎的信息--><view class="content-name"><image src="/images/tel.png" bindtap="callGroom"></image><view>小张</view><view>新郎</view></view><!--放的喜字信息--><view class="cont-info-weding"><image class="cont-info-wedding" src="/images/wedding.png"></image></view><!--新娘的信息--><view class="content-name"><image src="/images/tel.png" bindtap="callBride"></image><view>小李</view><view>新娘</view></view></view> <view class="cont-address"><view>我们邀请您来参加我们的婚礼</view><view>时间:2022年12月24日</view><view>地点:    </view></view></view>
</view>
/

2.2 照片页面功能

  • 实现纵向轮播图:在picture.js中准备图片路径
Page({/*** 页面的初始数据*/data: {pictures:[{id:0,src:"/images/timg1.jpg"},{id:1,src:"/images/timg2.jpg"},{id:2,src:"/images/timg3.jpg"},{id:3,src:"/images/timg4.jpg"}]},
  • 在picture.wxml中设置swiper组件的属性
<swiper indicator-dots="true" vertical="ture" indicator-color="white" indicator-active-color="#ff4c91"
autoplay="true" interval="3500" duration="1000">
<swiper-item wx:for="{{pictures}}" wx:key="id">
<image src="{{item.src}}"></image>
</swiper-item><!--
<swiper-item>
<image src="/images/timg1.jpg"></image>
</swiper-item>
<swiper-item>
<image src="/images/timg2.jpg"></image>
</swiper-item>
<swiper-item>
<image src="/images/timg3.jpg"></image>
</swiper-item>
<swiper-item>
<image src="/images/timg4.jpg"></image>
</swiper-item>
-->
</swiper>
  • 在picture.wxss中编写样式
swiper{height: 100vh;
}
/*设置图片的大小*/
image{height: 100%;
}

2.3 美好时光页面

  • 在video.wxml中使用video组件播放视频,并提供获取视频和发送弹幕的的按钮
<view class="video-list" wx:for="{{vedioList}}" wx:key="title">
<view class="video-list-title">{{item.title}}</view>
<view class="video-list-time">{{item.time}}</view>
<video src="{{item.src}}" object-fit="fill" loop="ture" controls="false" danmu-btn="ture" enable-danmu="ture"></video>
</view>
  • 在video.js中定义弹幕数据和视频资源地址
Page({/*** 页面的初始数据*/data: {danmuList: [{ text: '第 1s 出现的弹幕', color: '#ff0000', time: 1 },{ text: '第 2s 出现的弹幕', color: '#ff00ff', time: 2 },{ text: '第 3s 出现的弹幕', color: '#ff00ff', time: 3},{ text: '第 4s 出现的弹幕', color: '#ff00ff', time: 3}] ,vedioList:[{title:"海边旅游",time:'2022年1月1日',src:'http://www.lzy.edu.cn/vedio/lzy2022.mp4'},{title:"川西旅游",time:'2022年10月1日',src:'http://www.lzy.edu.cn/vedio/lzy2022.mp4'},{title:"北京旅游",time:'2022年5月1日',src:'http://www.lzy.edu.cn/vedio/lzy2022.mp4'},]},play:function(e){console.log("播放了")},pause:function(e){console.log("视频暂停")},/*** 生命周期函数--监听页面加载*/onLoad(options) {},
  • 在video.wxss中编写样式
.video-list{margin:10rpx 25rpx;padding:20rpx;border-radius: 10rpx;/* border:1px solid #000000;*/background: #ffffff;box-shadow:0 8rpx 17rpx 0 rgba(7,17,27,0.1);
}
.video-list-title{font-size:35rpx;color:#333333; 
}.video-list-time{font-size:30rpx;color:#979797; 
}
.video-list>video{width:100%;margin-top: 20rpx;
}
  • 在app.json中配置本项目使用的插件
"plugins":{"tencentvideo":{"version":"1.2.2","provider":"wxa75efa648b60994b"}
}
  • 在video.json中将腾讯视频插件添加到自定义组件,将组件名称命名为txv_video
{"usingComponents": {"txv-video":"plugin://tencentvideo/video"}
}

2.4 婚礼地点页面

  • 在map.wxml中编写页面结构

<map class="pg" latitude="28.915616" longitude="105.410766" markers="{{markers}}" scale="16" polyline="{{polyLine}}" circles="{{circles}}"
show-location="ture" bindmarkertap="markertap"
bindregionchange="regionchange" bindtap="tap" bindupdated="updated"
></map>
  • 在map.wxss中编写页面样式
.pg{width: 100vh;height: 100vh;
}
  • 在map.js中编写data数据和markertap()函数
// pages/map/map.js
Page({/*** 页面的初始数据*/data: {markers: [{id: 0,longitude: 105.410766,latitude: 28.915616,title: "婚礼地点",iconPath: "/images/navi.png",width: 30, height: 30},{id: 1,longitude: 105.410766,latitude: 28.916616,title: "停车场",iconPath: "/images/navi.png",width: 30, height: 30},{id: 2,longitude: 105.413886,latitude: 28.917616,title: "停车场",iconPath: "/images/navi.png",width: 30, height: 30}],polyLine:[{points:[{latitude: 28.917616, longitude: 105.413886},{latitude:28.916616,longitude:105.410766},{latitude:28.915616,longitude:105.410766}],color:"#ffffffAA",width:3,dottedLine:true},//{//  points:[//  {latitude: 28.917616, longitude: 105.413586},//  {latitude:28.916616,longitude:105.415766},//   {latitude:28.915616,longitude:105.415766}],//    color:"#ffffffAA",//    width:3,//  dottedLine:true//   }],circles:[{latitude:28.915616,longitude:105.410566,radius:200,color:"#ff4c91AA",strokeWidth:3,fillColor:"#ff4c910A"},{latitude:28.915616,longitude:105.410566,radius:300,color:"#000000AA",strokeWidth:3,fillColor:"#ff4c910A",}]},markertap:function(e){//点击标记处位触发,后面给地图导航的逻辑console.log(e)var onemarker=this.data.markers[e.markerId]wx.openLocation({latitude: onemarker.latitude,longitude: onemarker.longitude,name:onemarker.title,address:""})},regionchange:function(e){console.log(e);},tap:function(e){console.log(e);},updated:function(e){console.log(e);},

2.5 宾客信息页面

  • 在index.wxml中实现邀请函首页展现新人信息、婚礼信息功能,代码如下:
<form bindsubmit="formsubmit"><view class="container"><view class="container-info"><input name="name" placeholder="请输入您的名字" placeholder-class="phclass" /></view><view class="container-info"><input name="phone" placeholder="请输入您的手机号码" placeholder-class="phclass" /></view><view class="container-info"><picker name="num" range="{{picker.array}}" value="{{picker.index}}" bindchange="pickerchange"><view>参加婚礼的人数:{{picker.array[picker.index]}}</view></picker></view><view class="container-info"><input name="wish" placeholder="请输入您的祝福语" placeholder-class="phclass" /></view><button form-type="submit" style="width: 550rpx;">提交</button></view>
</form><image src="/images/bj_2.png" class="bg"></image>
  • 在guest.wxml中实现邀请函首页展现新人信息、婚礼信息功能
<form bindsubmit="formsubmit"><view class="container"><view class="container-info"><input name="name" placeholder="请输入您的名字" placeholder-class="phclass" /></view><view class="container-info"><input name="phone" placeholder="请输入您的手机号码" placeholder-class="phclass" /></view><view class="container-info"><picker name="num" range="{{picker.array}}" value="{{picker.index}}" bindchange="pickerchange"><view>参加婚礼的人数:{{picker.array[picker.index]}}</view></picker></view><view class="container-info"><input name="wish" placeholder="请输入您的祝福语" placeholder-class="phclass" /></view><button form-type="submit" style="width: 550rpx;">提交</button></view>
</form><image src="/images/bj_2.png" class="bg"></image>
  • 在guest.js中编写data数据和pickerChange()函数、事件处理函数、实现表单验证,在page()函数的后面编写server对象,用于模拟服务器,与微信接口进行交互。
// pages/guest/guest.js
Page({/*** 页面的初始数据*/data: {picker:{array:['1','2','3','4','5'],index:0}},pickerchange:function(e){console.log(e);this.setData({'picker.index':e.detail.value})},formsubmit:function(e){console.log(e);var name = e.detail.value.name;var phone=e.detail.value.phone;var num = e.detail.value.num;var wish =e.detail.value.wish;//1'判断姓名是否由中英文组成this.checkName(name)//2.判断电话号码是否符合规范this.checkPhone(phone)},checkPhone:function(data){var reg = /^1[3456789][0-9]{9}$/if(!reg.test(data)){wx.showToast({title: '号码格式错误',icon:"none",duration:1500})}},checkName:function(data){//正则表达式 中英文var reg = /^[a-zA-Z\u4e00-\u9fa5]+$/if(!reg.test(data)){wx.showToast({title: '姓名输入错误',icon:"none",duration:1500})}},

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/56449.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序 - 婚礼邀请函

marry 微信小程序端 服务端 扫码体验 免费制作流程点我查看 主页面展示 项目说明 服务端架构&#xff1a;SpringMvc 服务器&#xff1a;阿里云服务 域名&#xff1a;pengmaster.com 数据库&#xff1a;在服务器上装的mysql 地址&#xff1a;47.104.198.222:3306 后台地址&am…

html5怎么做电子请帖,如何制作H5婚礼邀请函?

H5是HTML5的简称。HTML5是HTML最新的修订版本&#xff0c;是一种超文本标记语言。H5有两大特点&#xff1a;首先&#xff0c;强化了 Web 网页的表现性能。其次&#xff0c;追加了本地数据库等 Web 应用的功能。 H5页面就是利用html5制作出来的页面&#xff0c;尤其在微信中发展…

一生一世一双人!爱她就给她最美的H5婚礼请柬~

结婚在传统观念中是一生一次的大事情&#xff0c;婚礼请柬就是其中之一。现在&#xff0c;电子请柬大行其道&#xff0c;艺术性的排版&#xff0c;配上出彩的动画和音乐&#xff0c;可以永久完整保存的特性让电子请柬倍受欢迎。今天主页妞给大家收集了一些唯美的H5婚礼请柬&…

动态婚礼请帖PPT模板

模板介绍 一份高质量的PPT模板&#xff0c;可以让你在日常的工作中展示自我、脱颖而出、去赢得更多机会&#xff0c;今天小编分享一份精美的动态婚礼请帖PPT模板 PPT模板名称&#xff1a;动态婚礼请帖PPT模板&#xff0c;模板编号&#xff1a;P27732&#xff0c;大小10MB&…

婚礼请帖_20个精美的婚礼请柬网站设计

对于许多人来说&#xff0c;婚姻仍然是他们一生中最重要的事件之一。 因此&#xff0c;毫不奇怪的是&#xff0c;许多夫妇将大量的时间&#xff0c;精力和创造力投入到婚礼计划中&#xff0c;以及如何邀请他们的朋友参加婚礼。 我们以前曾展示过传统的印刷喜帖以及极富创意的喜…

简约婚礼请柬PPT模板

模板介绍 一份高质量的PPT模板&#xff0c;可以让你在日常的工作中展示自我、脱颖而出、去赢得更多机会&#xff0c;今天小编分享一份精美的简约婚礼请柬PPT模板 PPT模板名称&#xff1a;简约婚礼请柬PPT模板&#xff0c;模板编号&#xff1a;P93226&#xff0c;大小10MB&…

婚礼请柬

效果图 功能说明 免费制作自己的结婚小程序个人页面点击’我的制作’首页添加展示图片点击首页图片进入详情添加详情图片修改导航页面文字&#xff0c;经纬度&#xff0c;以及背景图片修改分享时展示图片 扫码体验 个人说明 QQ群&#xff1a;830556582QQ邮箱&#xff1a;946…

php婚礼请帖,结婚请柬上的浪漫句子 婚礼请帖唯美的句子

1、简单不是减少&#xff0c;而是没有多余。够的不多&#xff0c;但就是你。 2、只得到一颗心&#xff0c;白头却不分开。 3、爱情是一只蝴蝶。它飞到它需要快乐的地方。 4、我很清楚&#xff0c;爱情的感觉会像旧照片一样褪色。但你一直在我心中&#xff0c;永远美丽&#xff…

四年巨亏49亿,第四范式四闯IPO

深陷亏损的AI公司第四范式&#xff0c;四闯IPO&#xff01; 4月24日&#xff0c;决策类AI独角兽北京第四范式智能技术股份有限公司&#xff08;下称“第四范式”&#xff09;再次更新招股书&#xff0c;继续向港交所发起上市冲击。 第四范式是一家专注于提供以平台为中心的人…

AI大模型“国家队”定了

来源&#xff1a;数据观 我国大模型“国家队”已完成首次“选拔组队”。 百度、华为、阿里等入局 近日&#xff0c;在2023世界人工智能大会&#xff08;WAIC2023&#xff09;上&#xff0c;国家标准委指导的国家人工智能标准化总体组宣布&#xff0c;我国首个大模型标准化专题组…

大裁员继续,直到回归均值

关于裁员&#xff0c;不想再举个案&#xff0c;大家也都听烦了。还是给大家几个宏观数字吧。据专门追踪科技公司裁员人数的Layoffs.fyi网站统计&#xff0c;2023年以来&#xff0c;截至5月底&#xff0c;全球共有718 家科技公司裁员 &#xff0c;裁员总人数为200039名。而2022年…

音视频技术开发周刊 | 293

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 谷歌全面反攻 ChatGPT&#xff01;PaLM 2、Gemini 双杀&#xff0c;Bard 正式开放 以上是2023 Google I/O 大会的重点内容&#xff0c;AI含量极高。 谷歌推拥有26000个H10…

PHP对接企业微信审批回调

配置回调 在【管理后台->应用和小程序->审批->API->接收事件服务器】中&#xff0c;设置回调地址&#xff0c;并勾选需要进行状态变化回调通知的审批模板类型。 设置后&#xff0c;回调地址可接收审批应用所有允许进行回调的审批申请相关状态变化通知。 审批申请…

Java企业微信对接

最近项目中要对接企业微信&#xff0c;实现通讯录数据同步&#xff0c;即在企业端添加编辑删除用户&#xff0c;部门数据要同步到微信端&#xff0c;同时微信端添加编辑删除用户&#xff0c;部门数据要同步到企业端&#xff0c;实现数据同步功能&#xff0c;需要调用企业微信AP…

企业微信(一)——企业微信PC端开启调试

文章目录 目的一、企业微信Windows版本调试二、企业微信Mac版本调试三、内置浏览器总结参考 目的 总结在使用企业微信过程中碰到的问题&#xff0c;并记录解决办法。 一、企业微信Windows版本调试 把 devtools_resources.pak 放到企业微信的安装目录下&#xff08;复制的文件…

企业微信推送suite_ticket对接

企业微信推送suite_ticket对接&#xff0c;由于微信文档不详细&#xff0c;很多地方还有错误&#xff0c;所以对接的时候很是痛苦。通过查阅各种文档&#xff0c;加上整合demo才最终对接成功&#xff0c;拿到了suite_ticket。 推送suite_ticket的文档说是一个POST接口&#xf…

java对接企业微信

java对接企业微信 一、注册企业微信 1.1 简介 企业微信与微信具有一样的体验&#xff0c;通过企业内部与外部客户的管理&#xff0c;构建出社群生态。企业微信提供丰富的api进行调用获取数据管理&#xff0c;也提供各种回调事件。 1.2 注册 登录官网&#xff0c;一键注册即可…

ChatGPT遇上WebRTC:生成式AI对实时通信意味着什么

ChatGPT正在改变计算&#xff0c;并作为一种延伸&#xff0c;改变我们与机器的互动方式。下面是它将如何影响WebRTC。 ChatGPT 成为所有互联网应用程序中增长率最高的服务&#xff0c;在推出的头两个月内就达到了 1 亿活跃用户。一些人每天都在使用它。其他人正在尝试使用它&a…

LLM应用专辑(3) — ChatGPT遇上文档搜索:ChatPDF、ChatWeb、DocumentQA等开源项目算法思想与源码解析

原文&#xff1a;LLM应用专辑(3) — ChatGPT遇上文档搜索&#xff1a;ChatPDF、ChatWeb、DocumentQA等开源项目算法思想与源码解析 - 知乎 公众号在上一篇文章中&#xff0c;我们介绍了chatgpt与nlp结合过程中的一些具体prompt生成方法&#xff0c;掌握这些可以有效地提升生产…

Android的img镜像文件打开

有时需要获取系统的一些资源&#xff0c;就需要打开img镜像文件&#xff1b;可以使用&#xff1a;ext2explore.exe.exe 此篇以打开Android API 22的system.img为例&#xff0c;system.img文件可以在sdk目录system-images文件下 eg: 相对路径&#xff1a;android-sdk-windows\s…