• js模仿微信语音播放的小功能


    自己写的一个模仿微信语音播放的小功能,实现的主要功能是:点击播放,点击暂停,播放切换,,,  代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <meta http-equiv="X-UA-Compatible" content="ie=edge">
      <title>Document</title>
      <style>
        li {
          list-style: none;
           100px;
          height: 30px;
          border: 1px solid #ccc;
          margin-bottom: 10px;
        }
        .voice_play {
          display: none;
        }
      </style>
      <script src="http://code.jquery.com/jquery-latest.js"></script>
    </head>
    <body>
      <ul>
        <li id="1" data-time="5">
          <audio preload="auto" hidden="true"><source src="./明智之举.mp3" type="audio/mpeg"></audio>
          <img src="./i_voice_other.png" alt="" class="voice_stop">
          <img src="./i_voice_other.gif" alt="" class="voice_play">
        </li>
        <li id="2" data-time="10">
          <audio preload="auto" hidden="true"><source src="./tik_tok.mp3" type="audio/mpeg"></audio>
          <img src="./i_voice_other.png" alt="" class="voice_stop">
          <img src="./i_voice_other.gif" alt="" class="voice_play">
        </li>
        <li id="3" data-time="14">
          <audio preload="auto" hidden="true"><source src="./You&I.mp3" type="audio/mpeg"></audio>
          <img src="./i_voice_other.png" alt="" class="voice_stop">
          <img src="./i_voice_other.gif" alt="" class="voice_play">
        </li>
      </ul>
    </body>
    <script>
      // 展示语音播放和暂停是通过两张图片切换,一张静态图,一张GIF动图,这里就不传图片,下载的时候自己放入图片即可
      // 语音的时长这里是模拟的,一般是后台会返回,根据实际时长取
    $('li').click(function () { var val = $(this).attr('val') // 每次点击前清除定时器 clearTimeout(timeId) var audio = $(this).children("audio")[0] // 语音的时长 var time = $(this).data('time') // console.log(time) // 判断当前点击的是否已经在播放, value的值是自己设置的用来区分播放状态和暂停状态的,1是未播放状态,2是已经在播放状态 if (val && val == 2) { // console.log('if') $(this).children('.voice_play').hide() $(this).children('.voice_stop').show() audio.pause() // 暂停 // 重新设置为空,方便下一次点击 $(this).attr('val', 1) } else { // console.log('else') // 找到除点击之外的其他语音,判断这次点击之前是否已经有歌曲在播放,如果是从其他的语音跳转过来, // 要把以前播放的状态改变,,总体思路:页面上只能有一个语音在播放,只有一个val为2 $('li').attr('val', 1) $(this).attr('val', 2)
    var audiolist = $('li').children("audio") // 暂停其他播放 for (let i = 0; i < audiolist.length; i++) { // console.log(audiolist[i]) audiolist[i].pause() } $('li').children('.voice_play').hide() $('li').children('.voice_stop').show() $(this).children('.voice_play').show() $(this).children('.voice_stop').hide() audio.load() //加载 audio.play() //播放 } // console.log($('li').children("audio")) // 语音播放完切换动画 var timeId = setTimeout(() => { // console.log('set',time) $(this).children('.voice_play').hide() $(this).children('.voice_stop').show() $(this).attr('val', 1) }, time * 1000) }) </script> </html>
  • 相关阅读:
    vmware 连网问题
    js控制表单非法输入时提交
    简单的jsp&servlet 购物车项目
    html引入css不显示问题
    每天学点java_反射作用
    java选择特定的值2--抽象enum
    java选择特定的值
    1 小时 SQL 极速入门(一)
    460004600146002MNCMCCIMSI
    网络中存在2台DHCP服务器问题
  • 原文地址:https://www.cnblogs.com/steamed-twisted-roll/p/9443671.html
Copyright © 2020-2023  润新知