@@ -7,6 +7,8 @@ class List {
77 this . player = player ;
88 this . index = 0 ;
99 this . audios = this . player . options . audio ;
10+ this . showing = true ;
11+ this . player . template . list . style . height = `${ Math . min ( this . player . template . list . scrollHeight , this . player . options . listMaxHeight ) } px` ;
1012
1113 this . bindEvents ( ) ;
1214 }
@@ -32,18 +34,23 @@ class List {
3234 }
3335
3436 show ( ) {
37+ this . showing = true ;
38+ this . player . template . list . scrollTop = this . index * 33 ;
39+ this . player . template . list . style . height = `${ Math . min ( this . player . template . list . scrollHeight , this . player . options . listMaxHeight ) } px` ;
3540 this . player . events . trigger ( 'listshow' ) ;
36- this . player . template . list . classList . remove ( 'aplayer-list-hide' ) ;
37- this . player . template . listOl . scrollTop = this . index * 33 ;
3841 }
3942
4043 hide ( ) {
41- this . player . events . trigger ( 'listhide' ) ;
42- this . player . template . list . classList . add ( 'aplayer-list-hide' ) ;
44+ this . showing = false ;
45+ this . player . template . list . style . height = `${ Math . min ( this . player . template . list . scrollHeight , this . player . options . listMaxHeight ) } px` ;
46+ setTimeout ( ( ) => {
47+ this . player . template . list . style . height = '0px' ;
48+ this . player . events . trigger ( 'listhide' ) ;
49+ } , 0 ) ;
4350 }
4451
4552 toggle ( ) {
46- if ( ! this . player . template . list . classList . contains ( 'aplayer-list-hide' ) ) {
53+ if ( this . showing ) {
4754 this . hide ( ) ;
4855 }
4956 else {
@@ -70,7 +77,7 @@ class List {
7077 const wasSingle = ! ( this . audios . length > 1 ) ;
7178 const wasEmpty = this . audios . length === 0 ;
7279
73- this . player . template . listOl . innerHTML += tplListItem ( {
80+ this . player . template . list . innerHTML += tplListItem ( {
7481 theme : this . player . options . theme ,
7582 audio : audios ,
7683 index : this . audios . length + 1
@@ -158,7 +165,7 @@ class List {
158165 }
159166 this . player . container . querySelectorAll ( '.aplayer-list li' ) [ this . index ] . classList . add ( 'aplayer-list-light' ) ;
160167
161- smoothScroll ( this . index * 33 , 500 , null , this . player . template . listOl ) ;
168+ smoothScroll ( this . index * 33 , 500 , null , this . player . template . list ) ;
162169
163170 this . player . setAudio ( audio ) ;
164171
@@ -180,7 +187,7 @@ class List {
180187 this . audios = [ ] ;
181188 this . player . lrc && this . player . lrc . clear ( ) ;
182189 this . player . audio . src = '' ;
183- this . player . template . listOl . innerHTML = '' ;
190+ this . player . template . list . innerHTML = '' ;
184191 this . player . template . pic . style . backgroundImage = '' ;
185192 this . player . theme ( this . player . options . theme , this . index , false ) ;
186193 this . player . template . title . innerHTML = 'No audio' ;
0 commit comments