2015-04-02 73 views
0

我的網頁上有一個固定圖像,我希望它在鼠標懸停播放時播放隨機音軌。這可能是5首曲目中的1首。在鼠標懸停上播放隨機曲目

這是我的HTML <img src="images/Airplane.png" class="Airplane-photo">

這是我的CSS

.Airplane-photo { 
    position: fixed; 
    z-index: 1; 
    height: 200px; 
    bottom: 0px; 
    right: 0px; 
} 

我所有的曲目都是MP3和OGG。我已閱讀本指南,但它不能幫助我滿足需求:https://css-tricks.com/play-sound-on-hover/

有誰知道這是否可能?

在此先感謝

+2

其中是播放音頻的代碼? – Saksham 2015-04-02 11:10:54

+0

是的,這是可能的,但你需要JavaScript來做你想做的事。 @Marius回答我的看法很好。 – RikyTres 2015-04-02 12:12:58

回答

2

http://jsbin.com/fiyomafuce/2/edit

你讓你的MP3/OGG路徑就像一個數組:

var audio = ["audio-1.mp3", "audio-2.mp3", "audio-3.mp3", "audio-4.mp3", "audio-5.mp3"]; 

該函數返回一個隨機數從0到5,其中5是audio.length所以沒有必要更新,如果你有更多的mp3

function getRandomAudio() { 
    var max = audio.length; 
    return Math.floor(Math.random() * (max + 1)); 
} 

當光標位於按鈕上時,音頻元素將將其來源更改爲音頻陣列中的新項目。

$btn.on('mouseover', function(){ 
    var index = getRandomAudio(); // random index 
    $audio.attr('src', audio[index]); // change src 
    $audio.get(0).play(); 
}); 

如果你想停止發聲時,其按鈕外,你可以簡單地調用鼠標移開功能,這樣

$btn.on('mouseout', function() { $audio.get(0).pause() }); 

PS也。當然你不會聽到任何聲音,因爲路徑不是真實的。

+0

謝謝你,馬呂斯。 我試過實現它,雖然它似乎並不想工作 我已將所有聲音文件存儲在名爲sound的文件夾中。這是代碼 var audio = [「sound/audio1.mp3」,「sound/audio2.mp3」,「sound/audio3.mp3」,「sound/audio4.mp3」,「sound/audio5.mp3」 ,「sound/audio6.mp3」]; var $ btn = $('button'); var $ audio = $('audio'); (){ var max = audio.length;返回Math.floor(Math.random()*(max + 1)); } $ btn.on( '鼠標懸停',函數(){ VAR指數= getRandomAudio(); $ audio.attr( '聲音/',音頻[指數]); $ audio.get(0) .play(); }); – StackUser2014 2015-04-02 12:21:09

+0

順便說一句,你有沒有在你的HTML中添加? – Marius 2015-04-02 12:23:59

+0

也許給音頻添加一個ID,如