beat.vue 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <template>
  2. <div class="beat-wrapper">
  3. <input v-model="divisioni" type="number" min="1" oninput="validity.valid||(value='');">
  4. <!--- trovare modo per prevenire scrittura di input-->
  5. <div class="division-wrapper">
  6. <div class="beat" v-for="j in nDivisioni" :key='j'>
  7. <div>{{randomColori()}}</div>
  8. <div class="suddivisione" :style="{'background-color': colore }"></div>
  9. </div>
  10. </div>
  11. <!-- <beatMenu></beatMenu>-->
  12. </div>
  13. </template>
  14. <script>
  15. export default {
  16. name: 'beat',
  17. data() {
  18. return {
  19. colore: 'red',
  20. divisioni: 1
  21. }
  22. },
  23. computed: {
  24. nDivisioni() {
  25. var n = parseInt(this.divisioni);
  26. return isNaN(n) ? 0 : n;
  27. }
  28. },
  29. methods: {
  30. checkDivisioni: function (){
  31. console.log("numero dell'input è" + this.nDivisioni)
  32. },
  33. randomColori: function (){
  34. var letters = '0123456789ABCDEF';
  35. var color = '#';
  36. for (var i = 0; i < 6; i++) {
  37. color += letters[Math.floor(Math.random() * 16)];
  38. }
  39. console.log(color);
  40. this.colore = color;
  41. }
  42. }
  43. }
  44. </script>
  45. <style>
  46. .beat{
  47. flex: 1 1 auto;
  48. width: 100%;
  49. height: 100%;
  50. }
  51. .active{
  52. background-color:black;
  53. }
  54. input {
  55. background:transparent;
  56. width:100%;
  57. }
  58. .division-wrapper {
  59. flex:1 1 auto;
  60. display: flex;
  61. }
  62. .beat {
  63. height:1em;
  64. display:flex;
  65. flex:1 1 auto;
  66. }
  67. .suddivisione{
  68. flex:1 1 auto;
  69. border:none;
  70. }
  71. input[type=number]::-webkit-inner-spin-button,
  72. input[type=number]::-webkit-outer-spin-button {
  73. -webkit-appearance: none;
  74. -moz-appearance: none;
  75. appearance: none;
  76. margin: 0;
  77. }
  78. input[type=number] {
  79. -moz-appearance:textfield;
  80. padding-left:0.2em;
  81. color:lightgray;
  82. border:none;
  83. }
  84. </style>