Perkara yang paling berkuasa tentang HTML5 ialah pemprosesan fail media Contohnya, main balik video boleh dicapai dengan menggunakan tag vedio yang mudah. Begitu juga, terdapat teg yang sepadan untuk memproses fail audio dalam HTML5, iaitu, teg audio
HTML5 telah dikeluarkan sekian lama, tetapi teg audio di dalamnya hanya digunakan sekali, dan sudah tentu ia hanya untuk masukkan teg ini ke halaman. Kali ini saya hanya mengambil kesempatan untuk membantu rakan membuat beberapa halaman dan berlatih menggunakan tag audio.
Mula-mula anda perlu memasukkan tag audio ke dalam halaman Ambil perhatian bahawa adalah lebih baik untuk tidak menetapkan gelung='gelung' di sini. jika gelung ditetapkan kepada Jika gelung, atribut yang ditamatkan akan sentiasa palsu.
autoplay='autoplay' menetapkan halaman untuk memainkan muzik secara automatik selepas memuatkan Atribut pramuat dan autoplay mempunyai kesan yang sama Jika atribut autoplay muncul dalam teg, atribut pramuat akan diabaikan.
controls='controls' menetapkan bar kawalan untuk memaparkan muzik.
Kod XML/HTMLSalin kandungan ke papan keratan
- <audio src="muzik/Semalam Sekali Lagi .mp3" id="aud" automain="automain" kawalan="kawalan" pramuat="auto">
- Pelayar anda tidak menyokong atribut audio, sila tukar penyemak imbas untuk menyemak imbas.
-
audio>
Selepas anda mempunyai tag ini, tahniah, halaman anda kini boleh memainkan muzik. Tetapi ini akan menjadikan halaman itu terlalu membosankan, jadi saya menambah beberapa perkara pada halaman itu supaya lirik boleh dipaparkan pada halaman secara serentak dan muzik yang akan dimainkan juga boleh dipilih. Jadi mula-mula untuk mencapai kesan ini, kami perlu memuat turun beberapa fail lirik dalam format lrc, dan kemudian anda perlu memformat muzik. Kerana fail muzik pada mulanya kelihatan seperti ini
Kita perlu memasukkan setiap lirik ke dalam tatasusunan dua digit Selepas memformat, lirik akan menjadi seperti ini
Dilampirkan di sini ialah kod untuk memformat lirik
Kod XML/HTMLSalin kandungan ke papan keratan
- //Bahagian penyegerakan lirik
- fungsi parseLyric(teks) {
- //Pisahkan teks ke baris demi baris dan simpan dalam tatasusunan
-
var garisan = teks.split('n'),
- //Ungkapan biasa yang digunakan untuk memadankan masa, hasil padanan adalah serupa dengan [xx:xx.xx]
-
corak = /[d{2}:d{2}.d{2}]/g,
- //Array untuk menyimpan keputusan akhir
-
hasil = [];
- //Alih keluar garisan tanpa masa
- sementara (!pattern.test(garisan[0])) {
-
garisangarisan = lines.slice(1);
}; -
//Apabila menggunakan 'n' untuk menjana tatasusunan di atas, elemen terakhir dalam hasilnya ialah elemen kosong, yang akan dialih keluar di sini -
garisan[garisan.panjang - 1]-
.panjang === 0 && garisan.pop();
lines.forEach(function(v /*array element value*/ , i /*element index*/ , a /*array itself*/ ) {
- //Masa ekstrak [xx:xx.xx]
- var
masa-
= v.padanan(corak),
//Ekstrak lirik
v-
nilai = v.ganti(corak, ''
//Oleh kerana mungkin terdapat beberapa kali dalam satu baris, masa mungkin dalam bentuk [xx:xx.xx][xx:xx.xx][xx:xx.xx], yang perlu dipisahkan lagi
- masa.untukSetiap(fungsi(v1, i1, a1) {
- //Alih keluar kurungan segi empat sama dalam masa untuk mendapatkan xx:xx.xx
- var
t-
= v1.slice(1, -1).split(':');
//Tolak hasil ke dalam tatasusunan terakhir
- result.push([parseInt(t[0], 10) * 60 parseFloat(t[1]), nilai]);
}); -
}); -
//Akhir sekali, susun elemen dalam tatasusunan hasil mengikut masa supaya lirik boleh dipaparkan secara normal selepas menyimpan -
hasil.sort(fungsi(a, b) { -
kembali a[0] - b[0]; -
}); -
hasil pulangan; -
} -
-
Pada ketika ini, kami boleh menggunakan lirik setiap bahagian muzik dengan mudah. Kami memerlukan fungsi untuk mendapatkan lirik dan memaparkannya pada halaman secara serentak, supaya muzik boleh ditukar secara normal. Kod dilampirkan di bawah.
Kod XML/HTML
Salin kandungan ke papan keratan
- fungsi fn(sgname){
- $.get('music/' sgname '.lrc',function(data){
-
var str=parseLyric(data);
for(var -
i=0,li;i<str.length;i ){
- li=$('<li>' str[i][1] 'li>');
$('#gc ul').tambah(li); -
} -
$('#aud')[0]-
.kemas kini tepat masa=fungsi(){//video Dicetuskan apabila kedudukan main balik semasa audio berubah
untuk (var -
i = 0, l = str.panjang i < l i ) {
jika (this.currentTime /*Masa main balik semasa*/ - > str[i][0]) {
//Paparkan ke halaman -
$('#gc ul').css('atas',-i*40 200 'px'); //Alihkan lirik ke atas -
$('#gc ul li').css('color','#fff'); -
$('#gc ul li:nth-child(' (i 1) ')').css('color','red'); //Serlahkan lirik yang sedang dimainkan -
} -
} -
if(this.ended){ //Tentukan sama ada muzik yang sedang dimainkan telah selesai dimainkan -
var -
lagu-lagu=$('.senarai_lagu li').panjang
for(var -
i= 0,val;i<lagu-lagu;i ){
- val=$('.songs_list li:nth-child(' (i 1) ')').text();
jika(- val==sgname){
- i=(i==(lagu-1))?1:i 2; >
- sgname=$('.songs_list li:nth-child(' i ')').text(); //Tukar selepas muzik selesai memainkan Sekeping muzik
$('#gc ul').empty(); //Kosongkan lirik
-
$('#aud').attr('src','music/' sgname '.mp3');
- fn(sgname);
- kembali;
- }
- }
- }
- };
- });
- } fn($('.songs_list li:nth-child(1)').text());
-
Sekarang di sini lirik muzik anda boleh dipaparkan pada halaman secara normal dan serentak. Tetapi masih ada satu perkara yang hilang, iaitu senarai muzik Saya berharap dapat mengklik pada muzik dalam senarai ini untuk memainkan muzik Kod tersebut dilampirkan di bawah.
Kod HTML
Kod XML/HTML
Salin kandungan ke papan keratan
- <div kelas="lagu_cnt" >
-
<ul kelas="senarai_lagu" >
-
<li>Semalam Sekali Lagi li>
-
<li>Anda Cantik li>
-
ul>
-
<butang kelas="sel_song" >点<br/>< br/>我butang>
-
div>
-
<div id="gc" >
-
<ul>ul>
-
div>
css代码
Kod XML/HTML复制内容到剪贴板
- #gc{
- lebar: 400px;
- tinggi: 400px;
- latar belakang: lutsinar;
- margin: 100px auto;
- warna: #fff;
- saiz fon: 18px;
- limpahan: tersembunyi;
- kedudukan: saudara;
- }
- #gc ul{
- kedudukan: mutlak;
- atas: 200px;
- }
- #gc ul li{
- selaraskan teks: tengah;
- tinggi: 40px;
- ketinggian garisan: 40px;
- }
- .lagu_cnt{
- terapung: kiri;
- margin atas: 200px;
- kedudukan: saudara;
- }
- .senarai_lagu{
- warna latar belakang: rgba(0,0,0,.2);
- jejari sempadan: 5px;
- terapung: kiri;
- lebar: 250px;
- lapik: 15px;
- margin-kiri: -280px;
- }
- .senarai_lagu li{
- tinggi: 40px;
- ketinggian garisan: 40px;
- saiz fon: 16px;
- warna: rgba(255,255,255,.8);
- kursor: penunjuk;
- }
- .songs_list li:hover{
- saiz fon: 20px;
- warna: rgba(255,23,140,.6);
- }
- .sel_song{
- kedudukan: mutlak;
- atas: 50%;
- lebar: 40px;
- tinggi: 80px;
- margin atas: -40px;
- saiz fon: 16px;
- selaraskan teks: tengah;
- warna latar belakang: lutsinar;
- sempadan: 1px pepejal #2DCB70;
- berat fon: tebal;
- kursor: penunjuk;
- jejari sempadan: 3px;
- fon-keluarga: sans-serif;
- peralihan:semua 2s;
- -moz-transition:semua 2s;
- -webkit-transition:semua 2s;
- -o-peralihan:semua 2s;
- }
- .sel_song:hover{
- warna: #fff;
- warna latar belakang: #2DCB70;
- }
- .senarai_lagu li.aktif{
- warna: #f00;
- }
js代码
Kod XML/HTML复制内容到剪贴板
- $('.songs_list li:nth-child(1)').addClass('active');
- $('.songs_cnt').mouseenter(function () {
-
var e=acara||window.event;
-
var teg= e.target||e.srcElement;
-
jika(tag.nodeName=='BUTTON'){
- $('.songs_list').animate({'marginLeft':'0px'},'slow');
- }
- });
- $('.songs_cnt').mouseleave(function () {
- $('.songs_list').animate({'marginLeft':'-280px'},'slow');
- });
- $('.songs_list li').setiap(fungsi () {
- $(ini).klik(fungsi () {
- $('#aud').attr('src','music/' $(this).text() '.mp3');
- $('#gc ul').kosong();
- fn($(this).text());
- $('.songs_list li').removeClass('active');
- $(this).addClass('active');
- });
- })
好了,到了这里,那么你的这个歌词同步的效果的一些功能差不多都有了,美作了,美作了,美作了,关了了他们一了歌词同步的效果今天也就到这里了。更多信息请登录脚本之家网站了解更多!