Wir sind
MA-NO WEB DESIGN AND DEVELOPMENT ist eine Agentur, die sich auf Webdesign und Webentwicklung in Palma de Mallorca, Grafikdesign, Anwendungsentwicklung und SEO-Optimierung spezialisiert hat. Wir haben ein leistungsfähiges multinationales und multidisziplinäres kreatives Team, das einen Qualitätsservice bietet, schnell und auf der Höhe Ihres Projekts.
Nutzer, die unsere Websites besucht haben
Von unseren Kunden verdiente Summe
MA-NO ist eine Agentur, die sich auf digitale Produkte spezialisiert hat, die Emotionen wecken, Persönlichkeit haben und zu Ergebnissen führen. Webagentur auf den Balearen mit 10 Jahren Erfahrung in der Gestaltung von Websites für große und kleine Unternehmen auf Mallorca und in ganz Spanien, zahlreiche Erfolgsgeschichten sprechen für uns. Diese Erfahrung bringen wir in jedes Projekt ein, um ein hohes Maß an Service und Qualität zu bieten.
Die agenturWir bieten umfassende Projektentwicklungsdienste auf lokaler, regionaler, nationaler und internationaler Ebene mit messbaren Ergebnissen. Wir sind die Webdesign-Firma auf Mallorca, die das beste Design und die beste digitale Strategie bei der Gestaltung von Unternehmenswebsites und Online-Shops bietet.
DienstleistungenWir entwickeln digitale Projekte für wichtige Marken und das ist uns nicht zu Kopf gestiegen (obwohl wir sehr gut darin sind und das wissen wir).
Ma-No hört zu, passt sich an und arbeitet mit Ihnen zusammen, um Ihre Online-Präsenz von Meh zu WOW zu machen. Brauchen Sie einen kompletten Service? Wir können Ihnen mit Strategie, Kampagnen, Werbung, Branding, Video, Fotografie und mehr helfen.
MA-NO ist eine Agentur, die sich auf digitale Produkte spezialisiert hat, die Emotionen wecken, Persönlichkeit haben und zu Ergebnissen führen.
Wir werden Erfahrungen, Professionalität und etwas Humor miteinander teilen und mit Ihnen zusammenarbeiten, um Ihre komplexen Probleme zu lösen und Ihre Ziele zu erreichen.
· Unser Tag ist nicht langweilig und Ihrer sollte es auch nicht sein ·
Opciones de Accesibilidad
Ajuste de contenido
Control saturación
Screen reader
Control volumen
Array ( [path] => Array ( [0] => de ) [path-first-chunk] => Array ( ) [path-last-chunk] => de [path-prelast-chunk] => Array ( [0] => de ) [file-name] => de [file-mime] => de [file-is-file] => 0 [file-get-values] => Array ( ) [path-middle-chunks] => [plugins] => Array ( [item-nav-path] => [nav-path] => /index.php [path-models] => /var/www/torpedobits.com/plugins//public/models/index.php [path-files] => /var/www/torpedobits.com/plugins//public/views/index.php [path-item-models] => /var/www/torpedobits.com/plugins//public/models//item.php [path-item-files] => /var/www/torpedobits.com/plugins//public/views//item.php ) [PARAMS] => Array ( [css_style] => .typewrite_container {font-size:24px;font-weight:bold;} .swiper-container .sldtext{ top:10% } .particle-network-animation { position: relative; float:left; display:block; height: 100vh; width:100%; /*background-color: #fff; background: rgb(0,154,145); background: radial-gradient(circle, rgba(0,154,145,1) 0%, rgba(9,121,116,1) 35%, rgba(0,20,18,1) 100%);*/ } .particle-network-animation::before { z-index: -2; content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background-image: url(/cache/galleries/generica/photo-1450849608880-6f787542c88a.webp); background-position: center center; background-size: cover; opacity: 0.2; } .particle-network-animation .sldtext{z-index:1;} .particle-network-animation canvas { display: block; float: left; position: absolute; top: 0; left: 0; z-index: -1; } .glow { z-index: -1; position: fixed; top: 50%; left: 50%; background-image: radial-gradient(circle closest-side, rgba(255, 255, 255, 0.025), transparent); } .glow-1 { width: 150vw; height: 150vh; margin-top: -75vh; margin-left: -75vw; animation: glow-1-move 25s linear infinite both; } @keyframes glow-1-move { from { transform: translate(-100%, 100%); } to { transform: translate(100%, -100%); } } .glow-2 { width: 100vw; height: 100vh; margin-top: -50vh; margin-left: -50vw; animation: glow-2-move 25s linear 8.3333333333s infinite both; } @keyframes glow-2-move { from { transform: translate(-100%, 0%); } to { transform: translate(100%, 100%); } } .glow-3 { width: 120vw; height: 120vh; margin-top: -60vh; margin-left: -60vw; animation: glow-3-move 25s linear 16.6666666667s infinite both; } @keyframes glow-3-move { from { transform: translate(100%, 100%); } to { transform: translate(0%, -100%); } } .mySwiper { -webkit-box-shadow: none; box-shadow: none; height:300px; } .mySwiper .swiper-slide { text-align: center; font-size: 18px; width: 300px; height: 300px; /* Center slide text vertically */ display: -webkit-box; display: -ms-flexbox; display: -webkit-flex; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; -webkit-justify-content: center; justify-content: center; -webkit-box-align: center; -ms-flex-align: center; -webkit-align-items: center; align-items: center; } [javascript] => const swipercat = new Swiper('.swiper-container-parked', { // Optional parameters // direction: 'vertical', loop: false, // If we need pagination pagination: { el: '.swiper-pagination', }, // Navigation arrows navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev', }, // And if we need scrollbar scrollbar: { el: '.swiper-scrollbar', }, }); /** * Particle Network Animation * Inspiration: https://github.com/JulianLaval/canvas-particle-network */ (function() { var ParticleNetworkAnimation, PNA; ParticleNetworkAnimation = PNA = function() {}; PNA.prototype.init = function(element) { this.$el = $(element); this.container = element; this.canvas = document.createElement('canvas'); this.sizeCanvas(); this.container.appendChild(this.canvas); this.ctx = this.canvas.getContext('2d'); this.particleNetwork = new ParticleNetwork(this); //this.bindUiActions(); return this; }; PNA.prototype.bindUiActions = function() { $(window).on('resize', function() { // this.sizeContainer(); this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); this.sizeCanvas(); this.particleNetwork.createParticles(); }.bind(this)); }; PNA.prototype.sizeCanvas = function() { this.canvas.width = this.container.offsetWidth; this.canvas.height = this.container.offsetHeight; }; var Particle = function(parent, x, y) { this.network = parent; this.canvas = parent.canvas; this.ctx = parent.ctx; this.particleColor = returnRandomArrayitem(this.network.options.particleColors); this.radius = getLimitedRandom(1.5, 4.5); this.opacity = 1; this.x = x || Math.random() * this.canvas.width; this.y = y || Math.random() * this.canvas.height; this.velocity = { x: (Math.random() - 0.5) * parent.options.velocity, y: (Math.random() - 0.5) * parent.options.velocity }; }; Particle.prototype.update = function() { if (this.opacity < 1) { this.opacity += 0.1; } else { this.opacity = 1; } // Change dir if outside map if (this.x > this.canvas.width + 100 || this.x < -100) { this.velocity.x = -this.velocity.x; } if (this.y > this.canvas.height + 100 || this.y < -100) { this.velocity.y = -this.velocity.y; } // Update position this.x += this.velocity.x; this.y += this.velocity.y; }; Particle.prototype.draw = function() { // Draw particle this.ctx.beginPath(); this.ctx.fillStyle = this.particleColor; this.ctx.globalAlpha = this.opacity; this.ctx.arc(this.x, this.y, this.radius, 0, 2 * Math.PI); this.ctx.fill(); }; var ParticleNetwork = function(parent) { this.options = { velocity: 1, // the higher the faster density: 12000, // the lower the denser netLineDistance: 300, netLineColor: '#00a4ad', particleColors: ['#aaa'] // ['#6D4E5C', '#aaa', '#FFC458' ] }; this.canvas = parent.canvas; this.ctx = parent.ctx; this.init(); }; ParticleNetwork.prototype.init = function() { // Create particle objects this.createParticles(true); // Update canvas this.animationFrame = requestAnimationFrame(this.update.bind(this)); //this.bindUiActions(); }; ParticleNetwork.prototype.createParticles = function(isInitial) { // Initialise / reset particles var me = this; this.particles = []; var quantity = this.canvas.width * this.canvas.height / this.options.density; if (isInitial) { var counter = 0; clearInterval(this.createIntervalId); this.createIntervalId = setInterval(function() { if (counter < quantity - 1) { // Create particle object this.particles.push(new Particle(this)); } else { clearInterval(me.createIntervalId); } counter++; }.bind(this), 140); } else { // Create particle objects for (var i = 0; i < quantity; i++) { this.particles.push(new Particle(this)); } } }; ParticleNetwork.prototype.createInteractionParticle = function() { // Add interaction particle this.interactionParticle = new Particle(this); this.interactionParticle.velocity = { x: 0, y: 0 }; this.particles.push(this.interactionParticle); return this.interactionParticle; }; ParticleNetwork.prototype.removeInteractionParticle = function() { // Find it var index = this.particles.indexOf(this.interactionParticle); if (index > -1) { // Remove it this.interactionParticle = undefined; this.particles.splice(index, 1); } }; ParticleNetwork.prototype.update = function() { if (this.canvas) { this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); this.ctx.globalAlpha = 1; // Draw connections for (var i = 0; i < this.particles.length; i++) { for (var j = this.particles.length - 1; j > i; j--) { var distance, p1 = this.particles[i], p2 = this.particles[j]; // check very simply if the two points are even a candidate for further measurements distance = Math.min(Math.abs(p1.x - p2.x), Math.abs(p1.y - p2.y)); if (distance > this.options.netLineDistance) { continue; } // the two points seem close enough, now let's measure precisely distance = Math.sqrt( Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2) ); if (distance > this.options.netLineDistance) { continue; } this.ctx.beginPath(); this.ctx.strokeStyle = this.options.netLineColor; this.ctx.globalAlpha = (this.options.netLineDistance - distance) / this.options.netLineDistance * p1.opacity * p2.opacity; this.ctx.lineWidth = 0.7; this.ctx.moveTo(p1.x, p1.y); this.ctx.lineTo(p2.x, p2.y); this.ctx.stroke(); } } // Draw particles for (var i = 0; i < this.particles.length; i++) { this.particles[i].update(); this.particles[i].draw(); } if (this.options.velocity !== 0) { this.animationFrame = requestAnimationFrame(this.update.bind(this)); } } else { cancelAnimationFrame(this.animationFrame); } }; ParticleNetwork.prototype.bindUiActions = function() { // Mouse / touch event handling this.spawnQuantity = 3; this.mouseIsDown = false; this.touchIsMoving = false; this.onMouseMove = function(e) { if (!this.interactionParticle) { this.createInteractionParticle(); } this.interactionParticle.x = e.offsetX; this.interactionParticle.y = e.offsetY; }.bind(this); this.onTouchMove = function(e) { e.preventDefault(); this.touchIsMoving = true; if (!this.interactionParticle) { this.createInteractionParticle(); } this.interactionParticle.x = e.changedTouches[0].clientX; this.interactionParticle.y = e.changedTouches[0].clientY; }.bind(this); this.onMouseDown = function(e) { this.mouseIsDown = true; var counter = 0; var quantity = this.spawnQuantity; var intervalId = setInterval(function() { if (this.mouseIsDown) { if (counter === 1) { quantity = 1; } for (var i = 0; i < quantity; i++) { if (this.interactionParticle) { this.particles.push(new Particle(this, this.interactionParticle.x, this.interactionParticle.y)); } } } else { clearInterval(intervalId); } counter++; }.bind(this), 50); }.bind(this); this.onTouchStart = function(e) { e.preventDefault(); setTimeout(function() { if (!this.touchIsMoving) { for (var i = 0; i < this.spawnQuantity; i++) { this.particles.push(new Particle(this, e.changedTouches[0].clientX, e.changedTouches[0].clientY)); } } }.bind(this), 200); }.bind(this); this.onMouseUp = function(e) { this.mouseIsDown = false; }.bind(this); this.onMouseOut = function(e) { this.removeInteractionParticle(); }.bind(this); this.onTouchEnd = function(e) { e.preventDefault(); this.touchIsMoving = false; this.removeInteractionParticle(); }.bind(this); this.canvas.addEventListener('mousemove', this.onMouseMove); this.canvas.addEventListener('touchmove', this.onTouchMove); this.canvas.addEventListener('mousedown', this.onMouseDown); this.canvas.addEventListener('touchstart', this.onTouchStart); this.canvas.addEventListener('mouseup', this.onMouseUp); this.canvas.addEventListener('mouseout', this.onMouseOut); this.canvas.addEventListener('touchend', this.onTouchEnd); }; ParticleNetwork.prototype.unbindUiActions = function() { if (this.canvas) { this.canvas.removeEventListener('mousemove', this.onMouseMove); this.canvas.removeEventListener('touchmove', this.onTouchMove); this.canvas.removeEventListener('mousedown', this.onMouseDown); this.canvas.removeEventListener('touchstart', this.onTouchStart); this.canvas.removeEventListener('mouseup', this.onMouseUp); this.canvas.removeEventListener('mouseout', this.onMouseOut); this.canvas.removeEventListener('touchend', this.onTouchEnd); } }; var getLimitedRandom = function(min, max, roundToInteger) { var number = Math.random() * (max - min) + min; if (roundToInteger) { number = Math.round(number); } return number; }; var returnRandomArrayitem = function(array) { return array[Math.floor(Math.random()*array.length)]; }; pna = new ParticleNetworkAnimation(); pna.init($('.particle-network-animation')[0]); }()); var swiper = new Swiper(".mySwiper", { /* navigation: { nextEl: ".swiper-button-next", prevEl: ".swiper-button-prev", }, pagination: { el: ".swiper-pagination", clickable: true, },*/ slidesPerView: 4, spaceBetween: 40, breakpoints: { 320: { slidesPerView: 2, spaceBetween: 20 }, 480: { slidesPerView: 3, spaceBetween: 30 }, 640: { slidesPerView: 4, spaceBetween: 40 } }, loop: true, loopFillGroupWithBlank: true, autoplay: { delay: 2500, disableOnInteraction: false, }, }); [main_title] => Web-Design, Web-Entwicklung, SEO-Optimierung auf Mallorca [is_indexable] => [is_followable] => [gallery] => categories-2 ) )