|  | @@ -0,0 +1,108 @@
 | 
	
		
			
				|  |  | +<script>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +export default {
 | 
	
		
			
				|  |  | +  data() {
 | 
	
		
			
				|  |  | +    return {
 | 
	
		
			
				|  |  | +      // granim1: null,
 | 
	
		
			
				|  |  | +      // granim2: null
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  mounted() {
 | 
	
		
			
				|  |  | +    this.initGradients()
 | 
	
		
			
				|  |  | +    this.initTrame()
 | 
	
		
			
				|  |  | +    window.addEventListener("resize", this.onWindowResize.bind(this));
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  // computed: {
 | 
	
		
			
				|  |  | +  // },
 | 
	
		
			
				|  |  | +  // created () {
 | 
	
		
			
				|  |  | +  // },
 | 
	
		
			
				|  |  | +  methods: {
 | 
	
		
			
				|  |  | +    initGradients () {
 | 
	
		
			
				|  |  | +      let gradientBackground = this.$refs['background-gradient'];
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      let gradients = [];
 | 
	
		
			
				|  |  | +      let num_colors = Math.floor(2 + Math.random()*2);
 | 
	
		
			
				|  |  | +      for (let i = 0; i < Math.floor(2 + Math.random()*4); i++) {
 | 
	
		
			
				|  |  | +      // for (let i = 0; i < 1; i++) {
 | 
	
		
			
				|  |  | +        let colors = [];
 | 
	
		
			
				|  |  | +        // let hue = Math.floor(Math.random()*360)
 | 
	
		
			
				|  |  | +        for (let j = 0; j < num_colors; j++) {
 | 
	
		
			
				|  |  | +          let pos = (1/num_colors*j + 1/num_colors/3 + Math.random()*1/num_colors/3)*100;
 | 
	
		
			
				|  |  | +          console.log('gradient pos', pos);
 | 
	
		
			
				|  |  | +          
 | 
	
		
			
				|  |  | +          colors.push({ 
 | 
	
		
			
				|  |  | +            color: this.getRandBGColor(), 
 | 
	
		
			
				|  |  | +            // pos: parseFloat(`${parseFloat(Math.random()).toFixed(2)}`.slice(1))
 | 
	
		
			
				|  |  | +            // pos: parseFloat(`${parseFloat(pos).toFixed(2)}`.slice(1))
 | 
	
		
			
				|  |  | +            pos: parseInt(pos)
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // colors.sort((a,b) => {
 | 
	
		
			
				|  |  | +        //   return a.pos > b.pos ? 1 : -1
 | 
	
		
			
				|  |  | +        // })
 | 
	
		
			
				|  |  | +        gradients.push(colors)
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      console.log('gradients', gradients);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      let cssgrad = '';
 | 
	
		
			
				|  |  | +      gradients.forEach((gradient, index) => {
 | 
	
		
			
				|  |  | +        let alpha = Math.floor(Math.random()*360);
 | 
	
		
			
				|  |  | +        cssgrad += `\n  linear-gradient(${alpha}deg`;
 | 
	
		
			
				|  |  | +        gradient.forEach(color => {
 | 
	
		
			
				|  |  | +          cssgrad += `, ${color.color} ${color.pos}%`
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +        cssgrad += index < gradients.length-1 ? '),' : ')';
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      // cssgrad += ';';
 | 
	
		
			
				|  |  | +      console.log('cssgrad', cssgrad);
 | 
	
		
			
				|  |  | +      gradientBackground.style.background = cssgrad;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    getRandBGColor (hue) {
 | 
	
		
			
				|  |  | +      let h = !hue ? Math.floor(Math.random()*360) : hue + -30 + Math.floor(Math.random()*60);
 | 
	
		
			
				|  |  | +      let s = 25 + Math.floor(Math.random()*5);
 | 
	
		
			
				|  |  | +      let l = 40 + Math.floor(Math.random()*10);
 | 
	
		
			
				|  |  | +      let a = `${parseFloat(0.2 + Math.random()*.4).toFixed(3)}`.slice(1);
 | 
	
		
			
				|  |  | +      let hsla = `hsla(${h}, ${s}%, ${l}%, ${a})`;
 | 
	
		
			
				|  |  | +      // console.log(hsla);
 | 
	
		
			
				|  |  | +      return hsla;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    initTrame () {
 | 
	
		
			
				|  |  | +      let canvasBackgroundTrame = this.$refs['canvas-background-trame'];
 | 
	
		
			
				|  |  | +      canvasBackgroundTrame.width = canvasBackgroundTrame.parentElement.clientWidth;
 | 
	
		
			
				|  |  | +      canvasBackgroundTrame.height = canvasBackgroundTrame.parentElement.clientHeight;
 | 
	
		
			
				|  |  | +      let ctx = canvasBackgroundTrame.getContext('2d');
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      ctx.clearRect(0,0, canvasBackgroundTrame.width, canvasBackgroundTrame.height);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      let step = 1;
 | 
	
		
			
				|  |  | +      for (let i = 0; i < parseInt(canvasBackgroundTrame.width); i+=step) {
 | 
	
		
			
				|  |  | +        for (let j = 0; j < parseInt(canvasBackgroundTrame.height); j+=step) {
 | 
	
		
			
				|  |  | +          if (Math.random() > 0.6) {
 | 
	
		
			
				|  |  | +            ctx.beginPath();
 | 
	
		
			
				|  |  | +            // ctx.arc(i, j, 0.5, 0, 2 * Math.PI, false);
 | 
	
		
			
				|  |  | +            ctx.rect(i, j, 1, 1);
 | 
	
		
			
				|  |  | +            ctx.fillStyle = "rgba(0,0,0,0.1)";
 | 
	
		
			
				|  |  | +            ctx.fill();
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    onWindowResize () {
 | 
	
		
			
				|  |  | +      this.initTrame()
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +</script>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<template>
 | 
	
		
			
				|  |  | +  <div class="map-bg gradient" ref="background-gradient"></div>
 | 
	
		
			
				|  |  | +  <canvas class="map-bg trame" ref="canvas-background-trame"></canvas>
 | 
	
		
			
				|  |  | +</template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<style lang="css" scoped>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +</style>
 |