@@ -56,8 +56,9 @@ L.Control.SplitMap = L.Control.extend({
5656 } ,
5757
5858 initialize : function ( leftLayers , rightLayers , options ) {
59- this . setLeftLayers ( leftLayers )
60- this . setRightLayers ( rightLayers )
59+ this . _leftLayers = asArray ( leftLayers )
60+ this . _rightLayers = asArray ( rightLayers )
61+ this . _updateClip ( )
6162 L . setOptions ( this , options )
6263 } ,
6364
@@ -74,9 +75,7 @@ L.Control.SplitMap = L.Control.extend({
7475 addTo : function ( map ) {
7576 this . remove ( )
7677 this . _map = map
77-
7878 var container = this . _container = L . DomUtil . create ( 'div' , 'leaflet-sbs' , map . _controlContainer )
79-
8079 this . _divider = L . DomUtil . create ( 'div' , 'leaflet-sbs-divider' , container )
8180 var range = this . _range = L . DomUtil . create ( 'input' , 'leaflet-sbs-range' , container )
8281 range . type = 'range'
@@ -86,94 +85,68 @@ L.Control.SplitMap = L.Control.extend({
8685 range . value = 0.5
8786 range . style . paddingLeft = range . style . paddingRight = this . options . padding + 'px'
8887 this . _addEvents ( )
89- this . _updateLayers ( )
88+ this . _updateClip ( )
9089 return this
9190 } ,
9291
9392 remove : function ( ) {
9493 if ( ! this . _map ) {
9594 return this
9695 }
97- if ( this . _leftLayer . getContainer ) {
98- this . _leftLayer . getContainer ( ) . style . clip = ""
99- } else {
100- this . _leftLayer . getPane ( ) . style . clip = ""
101- }
102- if ( this . _rightLayer . getContainer ) {
103- this . _rightLayer . getContainer ( ) . style . clip = ""
104- } else {
105- this . _rightLayer . getPane ( ) . style . clip = ""
106- }
107-
96+ this . _leftLayers . forEach ( ( left_layer ) => {
97+ if ( left_layer . getContainer ) {
98+ left_layer . getContainer ( ) . style . clip = ""
99+ }
100+ else {
101+ left_layer . getPane ( ) . style . clip = ""
102+ }
103+ } )
104+
105+ this . _rightLayers . forEach ( ( right_layer ) => {
106+ if ( right_layer . getContainer ) {
107+ right_layer . getContainer ( ) . style . clip = ""
108+ }
109+ else {
110+ right_layer . getPane ( ) . style . clip = ""
111+ }
112+ } )
108113 this . _removeEvents ( )
109114 L . DomUtil . remove ( this . _container )
110-
111115 this . _map = null
112-
113- return this
114- } ,
115-
116- setLeftLayers : function ( leftLayers ) {
117- this . _leftLayers = asArray ( leftLayers )
118- this . _updateLayers ( )
119- return this
120- } ,
121-
122- setRightLayers : function ( rightLayers ) {
123- this . _rightLayers = asArray ( rightLayers )
124- this . _updateLayers ( )
125116 return this
126117 } ,
127118
128119 _updateClip : function ( ) {
120+ if ( ! this . _map ) {
121+ return this
122+ }
129123 var map = this . _map
130124 var nw = map . containerPointToLayerPoint ( [ 0 , 0 ] )
131125 var se = map . containerPointToLayerPoint ( map . getSize ( ) )
132126 var clipX = nw . x + this . getPosition ( )
133127 var dividerX = this . getPosition ( )
134-
135128 this . _divider . style . left = dividerX + 'px'
136129 this . fire ( 'dividermove' , { x : dividerX } )
137130 var clipLeft = 'rect(' + [ nw . y , clipX , se . y , nw . x ] . join ( 'px,' ) + 'px)'
138131 var clipRight = 'rect(' + [ nw . y , se . x , se . y , clipX ] . join ( 'px,' ) + 'px)'
139- if ( this . _leftLayer . getContainer ) {
140- this . _leftLayer . getContainer ( ) . style . clip = clipLeft
141- } else {
142- this . _leftLayer . getPane ( ) . style . clip = clipLeft
143- }
144- if ( this . _rightLayer . getContainer ) {
145- this . _rightLayer . getContainer ( ) . style . clip = clipRight
146- } else {
147- this . _rightLayer . getPane ( ) . style . clip = clipRight
148- }
149- } ,
150132
151- _updateLayers : function ( ) {
152- if ( ! this . _map ) {
153- return this
154- }
155- var prevLeft = this . _leftLayer
156- var prevRight = this . _rightLayer
157- this . _leftLayer = this . _rightLayer = null
158- this . _leftLayers . forEach ( function ( layer ) {
159- if ( this . _map . hasLayer ( layer ) ) {
160- this . _leftLayer = layer
161- }
162- } , this )
163- this . _rightLayers . forEach ( function ( layer ) {
164- if ( this . _map . hasLayer ( layer ) ) {
165- this . _rightLayer = layer
166- }
167- } , this )
168- if ( prevLeft !== this . _leftLayer ) {
169- prevLeft && this . fire ( 'leftlayerremove' , { layer : prevLeft } )
170- this . _leftLayer && this . fire ( 'leftlayeradd' , { layer : this . _leftLayer } )
171- }
172- if ( prevRight !== this . _rightLayer ) {
173- prevRight && this . fire ( 'rightlayerremove' , { layer : prevRight } )
174- this . _rightLayer && this . fire ( 'rightlayeradd' , { layer : this . _rightLayer } )
175- }
176- this . _updateClip ( )
133+ this . _leftLayers . forEach ( ( left_layer ) => {
134+ if ( left_layer . getContainer ) {
135+ left_layer . getContainer ( ) . style . clip = clipLeft
136+ }
137+ else {
138+ left_layer . getPane ( ) . style . clip = clipLeft
139+ }
140+ } )
141+
142+ this . _rightLayers . forEach ( ( right_layer ) => {
143+ if ( right_layer . getContainer ) {
144+ right_layer . getContainer ( ) . style . clip = clipRight
145+ }
146+ else {
147+ right_layer . getPane ( ) . style . clip = clipRight
148+ }
149+ } )
177150 } ,
178151
179152 _addEvents : function ( ) {
0 commit comments