首页 > 小程序教程 > 微信小程序语音在线点击播放列表页样式制作设计教程

微信小程序语音在线点击播放列表页样式制作设计教程

上一篇 下一篇
今天给大家带来微信小程序语音在线点击播放列表页样式制作设计教程,适合在线语音讲解,音乐播放类似页面,制作好以后,效果图如下:


一、wxml页面代码如下:
<view class="container">
  <view class="title">
    <image class="titbg" src="../../src/titbg.png" background-size="cover"></image>
    <view class="tit">
    	<image class="scene" src="../../src/{{titclass}}.png" background-size="cover"></image>
    	<image class="mo" src="../../src/mo.png" background-size="cover"></image>
    </view>
  </view>
  <view class="items">
  	<view class="item" wx:key wx:for="{{list}}">
      <view class="audio" bindtap="bindViewTap" data-voice="{{item.voice}}" data-id="{{item.id}}">
        <image class="item-cover" src="{{item.thumbnail}}" mod="aspectFill"></image>
        <image class="a_btn" src="{{a_btn[item.id]?a_btn[item.id]:a_btn[0]}}" background-size="cover"></image>
      </view>
      <text bindtap="bindTextTap" data-id="{{item.id}}">{{item.name}}</text>
  	</view>
  </view>
  <view>
  	<image class="copyright" src="../../src/copyright.png" background-size="contain"></image>
  </view>
  <view>
    <audio src="{{detailInfo.voice}}" id="myAudio" bindended="audioEnd"></audio>
  </view>
</view>

二、wxss样式页面代码如下:
.title{
	position:relative;
}
.titbg{
	width:268rpx;
	height:120rpx;
	margin:0 auto;
	display:block;
}
.tit{
	position:absolute;
	width:348rpx;
	height:40rpx;
	top:60rpx;
	left:50%;
	margin-left:-174rpx;
}
.scene{
	position:absolute;
	width:348rpx;
	height:40rpx;
}
.mo{
	position:absolute;
	width:54rpx;
	height:54rpx;
	right:10rpx;
	top:-26rpx;
}
.items{
	position:relative;
	z-index:2;
}
.item-cover{
	width:162rpx;
	height:162rpx;
	border-radius:50%;
	display:block;
	margin:0 auto 30rpx auto;
}
.audio{
	position:relative
}
.a_btn{
	width:36rpx;
	height:36rpx;
	position:absolute;
	top:50%;
	left:50%;
	margin-left:-18rpx;
	margin-top:-18rpx;
	z-index:2;
}
.item{
	width:50%;
	float:left;
	margin:30rpx 0 40rpx 0;
}
.item text{
	width:100%;
	display:block;
	text-align:center;
	font-size:28rpx;
	height:2em;
	overflow:hidden;
}

三、js页面代码如下:
//index.js
//获取应用实例
var app = getApp()
Page({
  data: {
    voice:"",
    list: [],
    titclass:"scene1",
    a_btn: ['../../src/play_scene.png'],
    last:0,
    pause:false
  },
  //事件处理函数
  bindTextTap: function(e) {
    var id = e.currentTarget.dataset.id;
    console.log(id);
    wx.navigateTo({
      url: '../detail/detail?id='+id
    })
  },
  bindViewTap: function(e){
    var that = this
    var voice = e.currentTarget.dataset.voice;
    var id = e.currentTarget.dataset.id;
    that.audioPlay(voice,id);
  },
  getSceneList: function(id){
    var that = this
    wx.request({
      url: "https://qcloud.bmy.com.cn/api/voices/list?&id="+id,
      success: function(data){
        console.log(data.data);
        that.setData({
          list:data.data,
          titclass:'scene'+id
        })
        that.setAudio(data.data)
      },
      fail: function () {
        wx.showLoading({
          title: '数据加载错误,请刷新再试!'
        })
      }
    });
  },
  setAudio: function(data){
    var that = this;
    that.audioCtx = wx.createAudioContext('myAudio')
  },
  audioPlay: function(voice,id){
    var that = this;
    var tmp = that.data.a_btn;
    var pause;
    if(id == that.data.last&&that.data.pause==false){
      that.audioCtx.pause();
      tmp[id] = '../../src/play_scene.png'
      pause = true
    }else{
      if(id != that.data.last){
        that.audioCtx.setSrc(voice)
      }
      that.audioCtx.play();
      tmp[that.data.last] = '../../src/play_scene.png'
      tmp[id] = '../../src/pause_scene.png'
      pause = false
    }
    that.setData({
      a_btn: tmp,
      last:id,
      pause:pause
    })
  },
  audioEnd:function(){
    var that = this;
    var tmp = that.data.a_btn;
    tmp[that.data.last] = '../../src/play_scene.png'
    that.setData({
      a_btn: tmp
    })
  },
  onLoad: function (option) {
    var that = this
    that.getSceneList(option.id);
    wx.showLoading({
      title: '加载中'
    })
  },
  onReady:function(){
    setTimeout(function(){
      wx.hideLoading();
    },500)
    
  }
})
温馨提示:以上js测试数据是通过url: https://qcloud.bmy.com.cn/api/voices/list?&id="+id,  这里获取而来。希望对你有制作微信小程序语音在线点击播放列表页样式制作设计有帮助!

模板简介:该模板名称为【微信小程序语音在线点击播放列表页样式制作设计教程】,大小是,文档格式为.,推荐使用打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【小程序教程】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 23,730次
  • 使用软件
  • 文件格式
  • 文件大小
  • 上传时间 05-18
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信模板 响应式 html5 微信图片 单页式简历模板 企业网站 微信素材 自适应 微信公众平台 微信文章
您可能会喜欢的其他模板