A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/vuematerial/vue-material/commit/70b3aa2 below:

multiple waves (#1419) · vuematerial/vue-material@70b3aa2 · GitHub

File tree Expand file treeCollapse file tree 2 files changed

+29

-24

lines changed

Filter options

Expand file treeCollapse file tree 2 files changed

+29

-24

lines changed Original file line number Diff line number Diff line change

@@ -1,21 +1,23 @@

1 1

<template>

2 2

<div

3 -

class="md-ripple"

4 -

:class="rippleClasses"

3 +

:class="['md-ripple', rippleClasses]"

5 4

@touchstart.passive.stop="touchStartCheck"

6 5

@touchmove.passive.stop="touchMoveCheck"

7 -

@mousedown.passive.stop="startRipple">

6 +

@touchend.passive.stop="clearWave"

7 +

@mousedown.passive.stop="startRipple"

8 +

@mouseup.passive.stop="clearWave">

8 9

<slot />

9 10 10 -

<transition name="md-ripple" @after-enter="clearWave" v-if="!isDisabled">

11 -

<span class="md-ripple-wave" :class="waveClasses" :style="waveStyles" v-if="animating" ref="rippleWave" />

12 -

</transition>

11 +

<transition-group name="md-ripple" v-if="!isDisabled">

12 +

<span v-for="(ripple, index) in ripples" :key="'ripple'+index" :class="['md-ripple-wave', waveClasses]" :style="ripple.waveStyles" />

13 +

</transition-group>

13 14

</div>

14 15

</template>

15 16 16 17

<script>

17 18

import raf from 'raf'

18 19

import MdComponent from 'core/MdComponent'

20 +

import debounce from 'core/utils/MdDebounce'

19 21 20 22

export default new MdComponent({

21 23

name: 'MdRipple',

@@ -25,10 +27,9 @@

25 27

mdCentered: Boolean

26 28

},

27 29

data: () => ({

28 -

eventType: null,

29 -

waveStyles: null,

30 -

animating: false,

31 -

touchTimeout: null

30 +

ripples: [],

31 +

touchTimeout: null,

32 +

eventType: null

32 33

}),

33 34

computed: {

34 35

isDisabled () {

@@ -84,29 +85,26 @@

84 85

position = this.getHitPosition($event, size)

85 86

}

86 87 87 -

await this.clearWave()

88 - 89 88

this.eventType = $event.type

90 -

this.animating = true

91 -

this.applyStyles(position, size)

89 +

this.ripples.push({

90 +

animating: true,

91 +

waveStyles: this.applyStyles(position, size)

92 +

})

92 93

}

93 94

})

94 95

},

95 96

applyStyles (position, size) {

96 97

size += 'px'

97 98 98 -

this.waveStyles = {

99 +

return {

99 100

...position,

100 101

width: size,

101 102

height: size

102 103

}

103 104

},

104 -

clearWave () {

105 -

this.waveStyles = null

106 -

this.animating = false

107 - 108 -

return this.$nextTick()

109 -

},

105 +

clearWave: debounce(function () {

106 +

this.ripples = []

107 +

}, 2000),

110 108

getSize () {

111 109

const { offsetWidth, offsetHeight } = this.$el

112 110

@@ -161,11 +159,11 @@

161 159

transform: scale(2) translateZ(0);

162 160 163 161

&.md-centered {

162 +

animation-duration: 1.2s;

164 163

top: 50%;

165 164

left: 50%;

166 165

}

167 - 168 -

~ * {

166 +

~ *:not(.md-ripple-wave) {

169 167

position: relative;

170 168

z-index: 2;

171 169

}

@@ -175,7 +173,6 @@

175 173

transition: .8s $md-transition-stand-timing;

176 174

transition-property: opacity, transform;

177 175

will-change: opacity, transform;

178 - 179 176

&.md-centered {

180 177

transition-duration: 1.2s;

181 178

}

Original file line number Diff line number Diff line change

@@ -0,0 +1,8 @@

1 +

export default (fn, time) => {

2 +

let timeout

3 +

return function() {

4 +

const functionCall = () => fn.apply(this, arguments)

5 +

clearTimeout(timeout)

6 +

timeout = setTimeout(functionCall, time)

7 +

}

8 +

}

You can’t perform that action at this time.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4