玩转微信小程序(第五天)

一,tab切换

需要完成效果

需要用到组件
data- 属性是一种特殊类型的属性,用于存储页面或应用程序的私有定制数据。这些属性不会被浏览器解析或改变页面的行为,而是被保留供JavaScript或CSS使用。
格式如下
< view id=“example” data-my-custom-attribute=“some value”>Hello World!< /view >

bindscrolltolower 是微信小程序中 scroll-view 组件的一个事件绑定属性,当滚动触底时触发。
查看更多组件

在这里插入图片描述

1.1需要进行布局

这里需要注意的是需要用data-来传值到js来进行判断
需要用到bindchange来进行文章的变化

< view class="header" >
  < view class="headtitle  {{xztab==0?  'active':''}} "
  bind:tap="titclick" data-index="0" >最新咨询< /view>
  < view class="headtitle {{ xztab==1?'active':''}}"
  bind:tap="titclick" data-index="1">行业新闻< /view>
  < view class="headtitle {{xztab==2?'active':''}}"
  bind:tap="titclick" data-index="2">咨询新闻</ view>
< /view>

<swiper  current="{{xztab}}" bindchange="qhtab" class="hybox">
  <swiper-item>
    <scroll-view scroll-y style="height: {{screenHeight}}px;" bindscrolltolower="cdtishi">
     111
    </scroll-view>
  </swiper-item>
  <swiper-item >
   222
  </scroll-view>
  </swiper-item>
  <swiper-item>
   333
  </swiper-item>
</swiper>

1.2需要用到js来实现文章的动态效果

xztab是进行文字下划线的修改
titclick是点击view来进行手动切换页面
qhtab是滑动进行切换页面
wx.getWindowInfo 是微信小程序 API 中的一个方法,用于获取当前窗口的信息,包括窗口的尺寸、设备的方向。
这里用到wx.getWindowInfo是来获得用户手机的高度来动态设置值

Page({

/**
 * 页面的初始数据
 */
data: {
  xztab:0,
  screenHeight:0,
},
//手动点击切换
titclick(e){
  
  if (e.currentTarget.dataset.index==this.data.xztab) {
    return false;
  } else {
    this.setData({
      xztab:e.currentTarget.dataset.index
    })
  }
},
cdtishi(){
  wx.showToast({
    title: '已经到底部了'
   
  })
},
//滑动切换
qhtab(e){
  // console.log(e.detail.current)
  //如果不等于
  if (e.detail.current != this.data.xztab) {
    this.setData({
      xztab:e.detail.current
    })
  }
  else{
      return false
    }
  
},
/**
 * 生命周期函数--监听页面加载
 */
onLoad(options) {
  const windowInfo = wx.getWindowInfo()
  this.setData({
    screenHeight:windowInfo.screenHeight
  })
},

二 ,视频播放及弹幕的使用

效果实现
在这里插入图片描述

需要用到组件
video 组件用于播放视频文件。它支持多种视频格式,包括 MP4、WebM 和 Ogg。 组件提供了控制视频播放、暂停、音量等特性的多种属性和事件。
以下是一些常用的属性:
src:视频文件的 URL。
enable-danmu:是否开启弹幕。
danmu-btn:是否显示弹幕按钮。
show-progress:是否显示进度条。
enable-play-gesture:是否启用手势播放/暂停。
autoplay:是否自动播放。
controls:是否显示系统播放控件。
object-fit:视频内容的缩放模式。

2.1进行布局

这里是从js中提取出来url来进行切换播放
这里需要注意的是如果进行for循环的是一个数组那么就需要在值的前面加一个item来进行传值

<video id="myvideo" class="myVideo" src="{{vurl}}"
enable-auto-rotation
danmu-btn
controls
autoplay
enable-danmu

>
</video>

<input type="text" class="danmuinput" placeholder="请输入弹幕" bindinput="inputdanmu" />
<button class="btndanmu"  bind:tap="btndm"> 发送弹幕</button>

<view class="videoList" wx:for="{{list}}" wx:key="index" data-url="{{item.videoUrl}}" bind:tap="videoClick">
  <image src="/image/play.png"></image>
  <view>{{item.title}}</view>
</view>

2.2js页面实现

这里需要设置一个全局变量来实现弹幕,我这里设置的是srz

videoClick是切换视频
btndm是点击按钮来发送弹幕、
inputdanmu是弹幕输入框
onReady是页面刚加载就进行渲染
createVideoContext 是微信小程序中用于创建一个指向 video 组件的上下文的方法this.videoContext是自定义命名。

videoClick里需要先进行视频暂停,在通过setData来进行赋值,最后在进行播放

inputdanmu需要用到bind input事件把值赋给srz

btndm发送弹幕需要用到sendDanmu,里面的属性都是固定属性不需要自己添加属性,写完之后需要进行重启才能实现

srz:"",
    data: {
      vurl:"https://permanent.aoscdn.com/app/lihtmv/temes/2373/2373LR_1.mp4",
    list:[{
      title:"企业发展历程",
      videoUrl:"https://permanent.aoscdn.com/app/lightmv/thmes/1502/1502LR.mp4"
    },{
      title:"团建视频",
      videoUrl:"https://permanent.aoscdn.com/app/lightmv/thees/1611/1611LR.mp4"
    },{
      title:"点点滴滴的记忆",
      videoUrl:"https://permanent.aoscdn.com/app/lightmv/themes/e6f0fd63bd262e4f0961987d6c71ddde/e6f0fd63bd262e4f0961987d6c71ddde.mp4"
    }]
    },
    videoClick(e){
      this.videoContext.stop()
      this.setData({
        vurl:e.currentTarget.dataset.url
      })
      this.videoContext.play()
    },
    inputdanmu(e){
      this.srz=e.detail.value
      
    },
    btndm(){
      this.videoContext.sendDanmu({
        text:this.srz,
        color:getRandomColor()

      })

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {
      this.videoContext = wx.createVideoContext('myvideo')
    },
  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值