add a spin animation to favorite and boost actions
This commit is contained in:
		
							parent
							
								
									ba4f7ef3ef
								
							
						
					
					
						commit
						459fdaf10f
					
				
					 4 changed files with 28 additions and 5 deletions
				
			
		|  | @ -1,5 +1,10 @@ | |||
| const FavoriteButton = { | ||||
|   props: [ 'status' ], | ||||
|   props: ['status'], | ||||
|   data () { | ||||
|     return { | ||||
|       animated: false | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     favorite () { | ||||
|       if (!this.status.favorited) { | ||||
|  | @ -7,13 +12,18 @@ const FavoriteButton = { | |||
|       } else { | ||||
|         this.$store.dispatch('unfavorite', {id: this.status.id}) | ||||
|       } | ||||
|       this.animated = true | ||||
|       setTimeout(() => { | ||||
|         this.animated = false | ||||
|       }, 500) | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     classes () { | ||||
|       return { | ||||
|         'icon-star-empty': !this.status.favorited, | ||||
|         'icon-star': this.status.favorited | ||||
|         'icon-star': this.status.favorited, | ||||
|         'animate-spin': this.animated | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| <template> | ||||
|   <div> | ||||
|     <i :class='classes' class='favorite-button fa' v-on:click.prevent='favorite()'></i> | ||||
|     <i :class='classes' class='favorite-button fa' @click.prevent='favorite()'/> | ||||
|     <span v-if='status.fave_num > 0'>{{status.fave_num}}</span> | ||||
|   </div> | ||||
| </template> | ||||
|  | @ -10,6 +10,7 @@ | |||
| <style lang='scss'> | ||||
|   .favorite-button { | ||||
|       cursor: pointer; | ||||
|       animation-duration: 0.6s; | ||||
|       &:hover { | ||||
|         color: orange; | ||||
|       } | ||||
|  | @ -17,4 +18,5 @@ | |||
|   .icon-star { | ||||
|       color: orange; | ||||
|   } | ||||
| 
 | ||||
| </style> | ||||
|  |  | |||
|  | @ -1,16 +1,26 @@ | |||
| const RetweetButton = { | ||||
|   props: [ 'status' ], | ||||
|   props: ['status'], | ||||
|   data () { | ||||
|     return { | ||||
|       animated: false | ||||
|     } | ||||
|   }, | ||||
|   methods: { | ||||
|     retweet () { | ||||
|       if (!this.status.repeated) { | ||||
|         this.$store.dispatch('retweet', {id: this.status.id}) | ||||
|       } | ||||
|       this.animated = true | ||||
|       setTimeout(() => { | ||||
|         this.animated = false | ||||
|       }, 500) | ||||
|     } | ||||
|   }, | ||||
|   computed: { | ||||
|     classes () { | ||||
|       return { | ||||
|         'retweeted': this.status.repeated | ||||
|         'retweeted': this.status.repeated, | ||||
|         'animate-spin': this.animated | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  |  | |||
|  | @ -11,6 +11,7 @@ | |||
|   @import '../../_variables.scss'; | ||||
|   .icon-retweet { | ||||
|      cursor: pointer; | ||||
|      animation-duration: 0.6s; | ||||
|      &:hover { | ||||
|       color: $green; | ||||
|      } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 xj9
						xj9