Re-implemented paper-fab menu

This commit is contained in:
Stefan Zermatten
2015-05-16 00:20:49 +02:00
parent b0ac1dcc29
commit d856f3a358
8 changed files with 102 additions and 36 deletions

View File

@@ -15,8 +15,7 @@
"dependencies": { "dependencies": {
"polymer": "Polymer/polymer#~0.5.5", "polymer": "Polymer/polymer#~0.5.5",
"core-elements": "Polymer/core-elements#~0.5.5", "core-elements": "Polymer/core-elements#~0.5.5",
"paper-elements": "Polymer/paper-elements#~0.5.5", "paper-elements": "Polymer/paper-elements#~0.5.5"
"paper-fab-menu": "cwdoh/paper-fab-menu"
}, },
"resolutions": { "resolutions": {
"core-component-page": "^0.5.0", "core-component-page": "^0.5.0",

View File

@@ -100,21 +100,20 @@
<div class="fab-buffer"></div> <div class="fab-buffer"></div>
</div> </div>
{{#if canEditCharacter _id}} {{#if canEditCharacter _id}}
<paper-fab-menu id="inventoryAddMenu" {{#fabMenu}}
icon="add" <core-tooltip label="New container" position="left">
closeIcon="close" <paper-fab icon="work"
duration="0.3"> class="addContainer"
<paper-fab-menu-item id="addItem" mini>
icon="note-add" </paper-fab>
color="#d23f31" </core-tooltip>
tooltip="Item"> <core-tooltip label="New item" position="left">
</paper-fab-menu-item> <paper-fab icon="note-add"
<paper-fab-menu-item id="addContainer" class="addItem"
icon="work" mini>
color="#d23f31" </paper-fab>
tooltip="Container"> </core-tooltip>
</paper-fab-menu-item> {{/fabMenu}}
</paper-fab-menu>
{{/if}} {{/if}}
</div> </div>
</template> </template>

View File

@@ -103,7 +103,7 @@ Template.inventory.helpers({
}); });
Template.inventory.events({ Template.inventory.events({
"tap #addItem": function(event){ "tap .addItem": function(event){
var charId = this._id; var charId = this._id;
Items.insert({ Items.insert({
charId: charId, charId: charId,
@@ -120,7 +120,7 @@ Template.inventory.events({
}); });
}); });
}, },
"tap #addContainer": function(event){ "tap .addContainer": function(event){
var containerId = Containers.insert({ var containerId = Containers.insert({
name: "New Container", name: "New Container",
isCarried: true, isCarried: true,

View File

@@ -128,20 +128,19 @@
</div> </div>
</div> </div>
{{#if canEditCharacter _id}} {{#if canEditCharacter _id}}
<paper-fab-menu id="inventoryAddMenu" {{#fabMenu}}
icon="add" <core-tooltip label="New spell list" position="left">
closeIcon="close" <paper-fab icon="work"
duration="0.3"> class="addSpellList"
<paper-fab-menu-item id="addSpell" mini>
icon="note-add" </paper-fab>
color="#d23f31" </core-tooltip>
tooltip="Spell"> <core-tooltip label="New spell" position="left">
</paper-fab-menu-item> <paper-fab icon="note-add"
<paper-fab-menu-item id="addSpellList" class="addSpell"
icon="work" mini>
color="#d23f31" </paper-fab>
tooltip="Spell List"> </core-tooltip>
</paper-fab-menu-item> {{/fabMenu}}
</paper-fab-menu>
{{/if}} {{/if}}
</template> </template>

View File

@@ -184,7 +184,7 @@ Template.spells.events({
heroId: this._id, heroId: this._id,
}); });
}, },
"tap #addSpellList": function(event){ "tap .addSpellList": function(event){
var charId = this.charId; var charId = this.charId;
SpellLists.insert({ SpellLists.insert({
name: "New SpellList", name: "New SpellList",
@@ -201,7 +201,7 @@ Template.spells.events({
} }
}); });
}, },
"tap #addSpell": function(event){ "tap .addSpell": function(event){
var charId = this.charId; var charId = this.charId;
var listId = SpellLists.findOne({charId: this._id})._id; var listId = SpellLists.findOne({charId: this._id})._id;
Spells.insert({ Spells.insert({

View File

@@ -0,0 +1,8 @@
<template name="fabMenu">
<paper-fab class="floatyButton expand-menu {{#if active}}active{{/if}}"
icon="add"></paper-fab>
<div class="{{#if active}}active{{/if}} mini-holder"
layout vertical center>
{{> UI.contentBlock}}
</div>
</template>

View File

@@ -0,0 +1,15 @@
Template.fabMenu.onCreated(function() {
this.active = new ReactiveVar(false);
});
Template.fabMenu.helpers({
active: function() {
return Template.instance().active.get();
},
});
Template.fabMenu.events({
"tap .expand-menu": function(event, instance) {
instance.active.set(!instance.active.get());
},
});

View File

@@ -0,0 +1,46 @@
@import "bourbon/bourbon";
.mini-holder {
position: absolute;
padding: 4px;
bottom: 80px;
right: 24px;
width: 56px;
pointer-events: none;
flex-direction: column-reverse !important;
core-tooltip{
@include transform(scale(0));
@include transition-property(transform);
@include transition-duration(0.3s);
@include transition-timing-function(ease-in-out);
margin: 4px;
}
&.active {
pointer-events: auto;
core-tooltip{
@include transform(scale(1));
}
core-tooltip:nth-child(2){
@include transition-delay(0.1s);
}
core-tooltip:nth-child(3){
@include transition-delay(0.2s);
}
core-tooltip:nth-child(4){
@include transition-delay(0.3s);
}
core-tooltip:nth-child(5){
@include transition-delay(0.4s);
}
}
}
.expand-menu {
&::shadow core-icon {
@include transition(transform 0.3s ease-in-out);
}
&.active::shadow core-icon{
@include transform(rotate(405deg));
}
}