@@ -11,23 +11,37 @@ elements.forEach(ele => {
1111let items = document . querySelectorAll ( '.item' )
1212function _handleClick ( ev ) {
1313 ev . preventDefault ( ) ;
14- const currentFlexGrow = Number ( document . documentElement . style . getPropertyValue ( `--flex-grow-${ this . id } ` ) ) || 0
15- let newFlexGrowValue = currentFlexGrow
16- if ( ev . button === 0 && newFlexGrowValue > 0 ) {
17- newFlexGrowValue -- ;
18- } else if ( ev . button === 2 ) {
19- newFlexGrowValue ++ ;
14+
15+ if ( ! ev . shiftKey ) {
16+ const currentFlexGrow = Number ( document . documentElement . style . getPropertyValue ( `--flex-grow-${ this . id } ` ) ) || 0
17+ let newFlexGrowValue = currentFlexGrow
18+ if ( ev . button === 0 && newFlexGrowValue > 0 ) {
19+ newFlexGrowValue -- ;
20+ } else if ( ev . button === 2 ) {
21+ newFlexGrowValue ++ ;
22+ }
23+ document . documentElement . style . setProperty ( `--flex-grow-${ this . id } ` , newFlexGrowValue )
24+ this . querySelector ( 'p.flexGrow' ) . textContent = `flex-grow: ${ newFlexGrowValue } `
25+ } else {
26+ const currentFlexShrink = Number ( document . documentElement . style . getPropertyValue ( `--flex-shrink-${ this . id } ` ) ) || 0
27+ let newFlexShrinkValue = currentFlexShrink
28+ if ( ev . button === 0 && newFlexShrinkValue > 0 ) {
29+ newFlexShrinkValue -- ;
30+ } else if ( ev . button === 2 ) {
31+ newFlexShrinkValue ++ ;
32+ }
33+ document . documentElement . style . setProperty ( `--flex-shrink-${ this . id } ` , newFlexShrinkValue )
34+ this . querySelector ( 'p.flexShrink' ) . textContent = `flex-shrink: ${ newFlexShrinkValue } `
2035 }
21- document . documentElement . style . setProperty ( `--flex-grow-${ this . id } ` , newFlexGrowValue )
22- this . querySelector ( 'p' ) . textContent = `flex-grow: ${ newFlexGrowValue } `
36+
2337}
2438
2539items . forEach ( ele => {
2640 ele . addEventListener ( 'click' , _handleClick )
2741 ele . addEventListener ( 'contextmenu' , _handleClick )
2842} )
2943
30- document . querySelector ( '#flex-grow-reset-0 ' ) . addEventListener ( 'click' , ( ) => {
44+ document . querySelector ( '#flex-grow-reset-default ' ) . addEventListener ( 'click' , ( ) => {
3145 // clear css variables
3246 document . documentElement . style . removeProperty ( '--flex-grow-item-1' )
3347 document . documentElement . style . removeProperty ( '--flex-grow-item-2' )
@@ -36,7 +50,7 @@ document.querySelector('#flex-grow-reset-0').addEventListener('click', () => {
3650 document . documentElement . style . removeProperty ( '--flex-grow-item-5' )
3751
3852 // reset flex-grow texts
39- document . querySelectorAll ( '.item p' ) . forEach ( ( p ) => {
53+ document . querySelectorAll ( '.item p.flexGrow ' ) . forEach ( ( p ) => {
4054 p . textContent = 'flex-grow: 0'
4155 } )
4256} )
@@ -57,8 +71,42 @@ document.querySelector('#flex-grow-reset-1').addEventListener('click', () => {
5771 document . documentElement . style . setProperty ( '--flex-grow-item-5' , 1 )
5872
5973 // reset flex-grow texts
60- document . querySelectorAll ( '.item p' ) . forEach ( ( p ) => {
74+ document . querySelectorAll ( '.item p.flexGrow ' ) . forEach ( ( p ) => {
6175 p . textContent = 'flex-grow: 1'
6276 } )
6377} )
6478
79+ document . querySelector ( '#flex-shrink-reset-default' ) . addEventListener ( 'click' , ( ) => {
80+ // clear css variables
81+ document . documentElement . style . removeProperty ( '--flex-shrink-item-1' )
82+ document . documentElement . style . removeProperty ( '--flex-shrink-item-2' )
83+ document . documentElement . style . removeProperty ( '--flex-shrink-item-3' )
84+ document . documentElement . style . removeProperty ( '--flex-shrink-item-4' )
85+ document . documentElement . style . removeProperty ( '--flex-shrink-item-5' )
86+
87+ // reset flex-shrink texts
88+ document . querySelectorAll ( '.item p.flexShrink' ) . forEach ( ( p ) => {
89+ p . textContent = 'flex-shrink: 1'
90+ } )
91+ } )
92+
93+ document . querySelector ( '#flex-shrink-reset-0' ) . addEventListener ( 'click' , ( ) => {
94+ // clear css variables
95+ document . documentElement . style . removeProperty ( '--flex-shrink-item-1' )
96+ document . documentElement . style . removeProperty ( '--flex-shrink-item-2' )
97+ document . documentElement . style . removeProperty ( '--flex-shrink-item-3' )
98+ document . documentElement . style . removeProperty ( '--flex-shrink-item-4' )
99+ document . documentElement . style . removeProperty ( '--flex-shrink-item-5' )
100+
101+ // set all flex-shrink to 1
102+ document . documentElement . style . setProperty ( '--flex-shrink-item-1' , 0 )
103+ document . documentElement . style . setProperty ( '--flex-shrink-item-2' , 0 )
104+ document . documentElement . style . setProperty ( '--flex-shrink-item-3' , 0 )
105+ document . documentElement . style . setProperty ( '--flex-shrink-item-4' , 0 )
106+ document . documentElement . style . setProperty ( '--flex-shrink-item-5' , 0 )
107+
108+ // reset flex-shrink texts
109+ document . querySelectorAll ( '.item p.flexShrink' ) . forEach ( ( p ) => {
110+ p . textContent = 'flex-shrink: 0'
111+ } )
112+ } )
0 commit comments