第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

將 onMouseEnter 和 onMouseLeave 事件添加到音樂播放器

將 onMouseEnter 和 onMouseLeave 事件添加到音樂播放器

夢(mèng)里花落0921 2022-06-30 11:14:45
我正在編寫一個(gè)音樂播放器的應(yīng)用程序,但我遇到了障礙。我正在嘗試一種方法:?當(dāng)我將鼠標(biāo)懸停在一首歌曲上時(shí),它會(huì)顯示一個(gè)“播放”按鈕來代替歌曲編號(hào)。?當(dāng)前播放的歌曲顯示一個(gè)“暫停”按鈕代替歌曲編號(hào)。?暫停的歌曲顯示“播放”按鈕代替歌曲編號(hào)。我想在此方法中使用 onMouseEnter 和 onMouseLeave 事件,但我不知道從哪里開始這是我的專輯組件import React, { Component } from 'react';import albumData from './../data/albums';class Album extends Component {    constructor(props) {          super(props);        const album = albumData.find( album => {          return album.slug === this.props.match.params.slug        });        this.state = {          album: album,            currentSong: album.songs[0],            isPlaying: false        };        this.audioElement = document.createElement('audio');        this.audioElement.src = album.songs[0].audioSrc;        }        play() {              this.audioElement.play();              this.setState({ isPlaying: true });            }        pause() {              this.audioElement.pause();              this.setState({ isPlaying: false });            }           setSong(song) {              this.audioElement.src = song.audioSrc;              this.setState({ currentSong: song });            }        handleSongClick(song) {              const isSameSong = this.state.currentSong === song;              if (this.state.isPlaying && isSameSong) {                   this.pause();                 } else {                   if (!isSameSong) { this.setSong(song); }                        this.play();                 }              }
查看完整描述

1 回答

?
DIEA

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個(gè)贊

在我在這里對(duì)您的代碼進(jìn)行的測(cè)試中,我添加了showPlayOnHover屬性以將其聲明為 false,以處理懸停時(shí)出現(xiàn)的按鈕。


添加了渲染或不渲染按鈕的方法:


handlePlayOnHover = (song) => {

    this.setState({

        showPlayOnHover: !this.state.showPlayOnHover,

        isPlaying: !this.state.isPlaying

    })

    this.handleSongClick(song)

}

歌曲渲染結(jié)構(gòu)更新為:


<tr 

    className="song" key={index} 

    onClick={() => this.handleSongClick(song)}

    onMouseOver={() => this.handleOnHover(song)}

    onMouseOut={() => this.handleOnHover(song)}

>

      <td className="song-actions">

         <button>

            <span className="song-number">

                {!this.state.showPlayOnHover ? index+1 : <span className="ion-play"></span>}

            </span>

            <span className="ion-play"></span>

            <span className="ion-pause"></span>

        </button>

      </td>

      <td className="song-title">{song.title}</td>

      <td className="song-duration">{song.duration}</td>

</tr>

方法handleOnHover負(fù)責(zé)有條件地顯示懸停時(shí)的播放按鈕和懸停時(shí)的歌曲編號(hào)。


查看完整回答
反對(duì) 回復(fù) 2022-06-30
  • 1 回答
  • 0 關(guān)注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)