Como mudar background em JavaScript

Neste artigo, exploraremos como mudar o background JavaScript. O processo envolve a manipulação da propriedade de estilo do elemento HTML que representa o corpo da página, ou de outros elementos específicos. 

Com o uso da propriedade `style` do objeto HTML, podemos definir a cor do background de forma dinâmica e interativa.

Além disso, veremos como criar efeitos visuais mais interessantes através da aplicação de gradientes de cores. Utilizando métodos como `linear-gradient()` e `radial-gradient()`, podemos combinar diferentes cores para criar transições suaves e animações atrativas.

Acompanhe o texto abaixo para aprender como realizar essas modificações e tornar suas páginas web mais envolventes e visualmente agradáveis.

Como mudar o background JavaScript?

Para mudar o background (ou fundo) de uma página web usando JavaScript, você pode fazer isso alterando a propriedade de estilo do elemento HTML básico que representa o corpo da página (ou qualquer outro elemento que você deseja mudar o background).

Dessa maneira, você pode fazer isso usando a propriedade `style` do objeto do elemento HTML e definindo o valor da propriedade `background`.

Aqui está um exemplo de como você pode fazer isso:

HTML:

<!DOCTYPE html>

<html>

<head>

  <title>Mudar Background com JavaScript</title>

</head>

<body>

  <h1>Exemplo de Mudança de Background</h1>

  <button onclick="mudarBackground()">Mudar Background</button>

  <script src="seu_script.js"></script>

</body>

</html>

JavaScript (seu_script.js):

function mudarBackground() {

  // Obtendo o elemento do corpo da página

  var body = document.body;

  // Definindo o novo background

  body.style.background = "lightblue"; // Você pode usar qualquer cor válida aqui, como "blue", "#FF0000", "rgba(0, 255, 0, 0.5)", etc.

}

Assim, neste exemplo, o botão “Mudar Background” chama a função `mudarBackground()` quando é clicado. Essa função seleciona o elemento do corpo da página usando `document.body` e, em seguida, define a propriedade `background` do estilo para a cor “lightblue” (azul claro). Você pode alterar essa cor para qualquer outra cor que desejar.

Lembre-se, no entanto, que o código JavaScript deve estar em um arquivo separado ou entre as tags `<script>` dentro da página HTML para que funcione corretamente. Certifique-se de que o arquivo JavaScript esteja incluído corretamente na página.

Sintaxe do código

Usando o método .style.backgroundColor

O método .style.backgroundColor é usado em JavaScript para alterar o background (fundo) de um elemento HTML através da propriedade CSS "background-color". Este método permite que você modifique a cor de fundo de um elemento diretamente no código, sem precisar editar o arquivo CSS separadamente.

Aqui está como você pode usá-lo:

1. Selecione o elemento HTML desejado: Comece selecionando o elemento HTML que você deseja alterar o background. Isso pode ser feito usando métodos como document.getElementById(), document.querySelector() ou outros seletores do DOM.

Exemplo: 

<style>

    /* Estilo inicial da div */

    .meuDiv {

      width: 200px;

      height: 200px;

      background-color: blue;

    }

  </style>

<div class="meuDiv" id="minhaDiv"></div>

//Esse exemplo cria uma caixa que servirá para a troca da cor

2. Aplique a cor de fundo: Depois de selecionar o elemento, utilize o método .style.backgroundColor para definir a nova cor de fundo. A cor pode ser especificada de várias formas, como nomes de cores (por exemplo, “red”, “blue”, “green”) ou em formato hexadecimal (por exemplo, “#FF0000” para vermelho).

Exemplo:

const minhaDiv = document.getElementById("minhaDiv");

    minhaDiv.style.backgroundColor = "#FF0000";

3. Transição suave: Se você deseja aplicar uma transição suave ao alterar a cor de fundo, pode utilizar a propriedade CSS "transition". Isso fará com que a mudança de cor ocorra gradualmente, em vez de ser instantânea.

Antes do exemplo com transição suave, vamos criar o botão:

<button onclick="mudarCorDeFundo()">Mudar Cor de Fundo</button>

 <script>

    function mudarCorDeFundo() {

      // Verifica a cor atual da div e alterna entre azul e vermelho

      if (minhaDiv.style.backgroundColor === "blue") {

        minhaDiv.style.transition = "background-color 1s";

         minhaDiv.style.backgroundColor = "red";

      } else {

        minhaDiv.style.transition = "background-color 1s";

        minhaDiv.style.backgroundColor = "blue";

      }

    }

  </script>

Neste exemplo, nós alteramos o background do elemento para vermelho. Usamos uma transição de 1 segundo. Essa mudança proporciona uma experiência visual mais agradável para o usuário. Ele se parecerá com isso visualmente:

Resumindo, o método .style.backgroundColor é usado para alterar o background de um elemento HTML, permitindo que você aplique facilmente cores diferentes a elementos específicos diretamente pelo JavaScript. 

Combinado com a propriedade "transition", é possível criar animações suaves e visualmente agradáveis ao modificar a cor de fundo de um elemento na página web.

Usando JQuery

Para mudar o background usando jQuery, você pode utilizar o método `.css()` para alterar a propriedade CSS `background` de um elemento HTML. Esse método permite que você modifique o estilo do elemento selecionado de forma dinâmica.

Antes de passar a um exemplo completo de como fazer isso, é preciso importar a lib. Como importar o jQuery usando um CDN:

<!DOCTYPE html>

<html>

<head>

  <title>Exemplo de Importação do jQuery</title>

  <!-- Importe o jQuery usando um CDN -->

  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

</head>

<body>

  <!-- Seu conteúdo HTML e scripts usando jQuery aqui -->

</body>

</html>

Neste exemplo, o jQuery está sendo importado através do link https://code.jquery.com/jquery-3.6.0.min.js. Você pode substituir 3.6.0 pela versão mais recente disponível no site do jQuery, caso seja diferente.

Continuando ao exemplo:

<!DOCTYPE html>

<html>

<head>

  <title>Mudar Background com jQuery</title>

  <style>

    body {

      text-align: center;

      padding: 50px;

      font-family: Arial, sans-serif;

    }

    .change-background {

      padding: 20px;

      border: 1px solid #ccc;

      cursor: pointer;

    }

    .blue-background {

      background-color: #3498db;

      color: #fff;

    }

    .green-background {

      background-color: #27ae60;

      color: #fff;

    }

  </style>

  <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

</head>

<body>

  <h1>Mudar Background com jQuery</h1>

  <p>Clique nos botões abaixo para alterar o background:</p>

  <button class="change-background blue-background">Azul</button>

  <button class="change-background green-background">Verde</button>

  <script>

    $(document).ready(function() {

      // Quando os botões com a classe "change-background" são clicados

      $(".change-background").on("click", function() {

        // Obtemos a classe do botão clicado

        var newClass = $(this).attr("class").split(" ")[1];

        // Removemos todas as classes de background do body

        $("body").removeClass();

        // Adicionamos a nova classe de background ao body

        $("body").addClass(newClass);

      });

    });

  </script>

</body>

</html>

Neste exemplo, temos duas classes CSS definidas: `.blue-background` e `.green-background`. Quando um dos botões é clicado, a classe correspondente ao botão é extraída usando o jQuery e aplicada ao elemento `body`, mudando assim o background da página.

Utilizamos a função `.on("click", function() { ... })` para adicionar um evento de clique aos botões. Dentro desta função, obtemos a classe do botão clicado usando `$(this).attr("class")` e a separamos para pegar apenas a classe de background usando `split(" ")[1]`. 

Em seguida, removemos todas as classes de background do `body` com `$("body").removeClass()`, garantindo que apenas uma classe seja aplicada por vez. Por fim, adicionamos a nova classe de background usando `$("body").addClass(newClass)`.

Isso permitirá que o usuário alterne entre os backgrounds azul e verde clicando nos botões.

Possíveis erros ao mudar o background JavaScript

Ao mudar o background usando JavaScript, podem surgir alguns possíveis erros e desafios. Descreveremos alguns deles, juntamente com suas soluções:

Seleção inadequada de elementos

Um erro comum é selecionar elementos incorretos no DOM para aplicar as mudanças de background. Isso pode levar a resultados inesperados ou até mesmo nenhuma mudança aparente no visual da página. 

Para evitar isso, é importante certificar-se de selecionar os elementos corretos usando métodos como `document.querySelector()` ou `document.getElementById()`.

Classes de CSS conflitantes

As classes CSS com o mesmo nome podem causar conflitos e impedir a correta alteração do background. Para resolver isso, portanto, é importante tornar as classes de background mais específicas, evitando conflitos com outras regras CSS já existentes.

Erros de digitação

Erros de digitação nos nomes das classes ou IDs podem causar problemas na aplicação do background desejado. Certifique-se de que os nomes das classes estejam escritos corretamente e correspondam exatamente aos definidos no CSS.

Evento de clique duplicado

Se registramos o evento de clique mais de uma vez para o mesmo elemento, o background pode mudar várias vezes ou ficar inconsistente. Para evitar isso, utilize o método .off() para remover quaisquer eventos duplicados antes de adicionar um novo.”

Desempenho e velocidade

Realizar muitas mudanças de background rapidamente pode prejudicar o desempenho da página, gerando uma experiência de usuário ruim. Assim, melhore a performance agrupando as mudanças em poucas ações ou usando animações suaves para transições.

Compatibilidade entre navegadores

Alguns navegadores podem interpretar o JavaScript ou CSS de forma diferente, levando a resultados inconsistentes. Teste a aplicação em diferentes navegadores e versões para garantir a compatibilidade.

Acessibilidade

Ao mudar o background, é importante considerar a acessibilidade para usuários com deficiências visuais. Certifique-se de que o texto e outros elementos da página sejam legíveis e contrastantes o suficiente para garantir uma experiência de usuário inclusiva.

Ao enfrentar esses desafios, lembre-se de testar, depurar e iterar sobre o código para garantir que as mudanças de background funcionem conforme o esperado em diferentes cenários. 

Além disso, sempre procure seguir as melhores práticas de programação e design para garantir um código limpo e uma experiência do usuário agradável.

Alternativas de como mudar o background JavaScript

Usando CSS custom properties (variáveis CSS)

Podemos definir variáveis CSS para armazenar as cores de background e, em seguida, atualizá-las conforme necessário. Veja como ficaria:

<!DOCTYPE html>

<html>

<head>

  <title>Mudar Background com CSS custom properties</title>

  <style>

    body {

      --bg-color: #fff; /* Valor padrão */

      background-color: var(--bg-color);

    }

    .blue-background {

      --bg-color: #3498db;

    }

    .green-background {

      --bg-color: #27ae60;

    }

  </style>

</head>

<body>

  <h1>Mudar Background com CSS custom properties</h1>

  <p>Clique nos botões abaixo para alterar o background:</p>

  <button class="blue-background">Azul</button>

  <button class="green-background">Verde</button>

  <script>

    const buttons = document.querySelectorAll('button');

    const body = document.querySelector('body');

    buttons.forEach(button => {

      button.addEventListener('click', () => {

        const newClass = button.className.split(' ')[0];

        body.className = newClass;

      });

    });

  </script>

</body>

</html>

Utilizando classes CSS adicionais

Podemos criar classes CSS específicas para cada cor de background e adicionar ou remover essas classes conforme necessário. Veja um exemplo:

<!DOCTYPE html>

<html>

<head>

  <title>Mudar Background com classes CSS adicionais</title>

  <style>

    body {

      text-align: center;

      padding: 50px;

      font-family: Arial, sans-serif;

    }

    .blue-background {

      background-color: #3498db;

      color: #fff;

    }

    .green-background {

      background-color: #27ae60;

      color: #fff;

    }

  </style>

</head>

<body>

  <h1>Mudar Background com classes CSS adicionais</h1>

  <p>Clique nos botões abaixo para alterar o background:</p>

  <button class="blue-background">Azul</button>

  <button class="green-background">Verde</button>

  <script>

    const buttons = document.querySelectorAll('button');

    const body = document.querySelector('body');

    buttons.forEach(button => {

      button.addEventListener('click', () => {

        const newClass = button.className.split(' ')[0];

        body.className = newClass;

      });

    });

  </script>

</body>

</html>

Essas são apenas algumas das alternativas para mudar o background usando JavaScript. Os desenvolvedores podem escolher cada abordagem de acordo com suas necessidades e preferências, pois cada uma delas tem suas vantagens.

Dessa maneira, é importante é entender as diferentes possibilidades disponíveis para realizar essa tarefa de forma eficiente e adequada ao contexto do projeto.

Manipulação de gradientes de fundo com JavaScript

Além de simplesmente mudar a cor de fundo, podemos criar efeitos mais interessantes utilizando gradientes de cores. Essa técnica permite misturar duas ou mais cores para criar transições suaves e efeitos visuais atrativos. 

Nesse tópico, exploraremos como criar e manipular gradientes de fundo usando JavaScript e como aplicá-los a elementos específicos da página para um design mais dinâmico e envolvente.

Gradientes Lineares

Para criar um gradiente linear de fundo, podemos usar o método `linear-gradient()` da propriedade `background`. O seguinte exemplo demonstra como criar um gradiente de duas cores, que se estende horizontalmente:

<!DOCTYPE html>

<html>

<head>

  <title>Gradiente Linear com JavaScript</title>

  <style>

    body {

      text-align: center;

      padding: 50px;

      font-family: Arial, sans-serif;

      background: linear-gradient(to right, #3498db, #27ae60);

    }

  </style>

</head>

<body>

  <h1>Gradiente Linear com JavaScript</h1>

  <p>Este é um exemplo de gradiente linear que se estende horizontalmente.</p>

</body>

</html>

Gradientes Radiais

Podemos criar gradientes radiais usando o método `radial-gradient()`. O exemplo a seguir demonstra como criar um gradiente radial com três cores diferentes:

<!DOCTYPE html>

<html>

<head>

  <title>Gradiente Radial com JavaScript</title>

  <style>

    body {

      text-align: center;

      padding: 50px;

      font-family: Arial, sans-serif;

      background: radial-gradient(circle, #3498db, #27ae60, #e74c3c);

    }

  </style>

</head>

<body>

  <h1>Gradiente Radial com JavaScript</h1>

  <p>Este é um exemplo de gradiente radial que combina três cores.</p>

</body>

</html>

Alterando Gradientes Dinamicamente

Para tornar os gradientes mais dinâmicos, podemos utilizar JavaScript para alterar as cores ou os pontos de início e fim do gradiente. No exemplo a seguir, criamos um botão que alterna entre dois gradientes diferentes ao ser clicado:

<!DOCTYPE html>

<html>

<head>

  <title>Alterando Gradientes com JavaScript</title>

  <style>

    body {

      text-align: center;

      padding: 50px;

      font-family: Arial, sans-serif;

      background: linear-gradient(to right, #3498db, #27ae60);

      transition: background 0.5s ease;

    }

    .alternate-gradient {

      background: linear-gradient(to right, #e74c3c, #f39c12);

    }

    button {

      padding: 10px 20px;

      background-color: #333;

      color: #fff;

      border: none;

      cursor: pointer;

    }

  </style>

</head>

<body>

  <h1>Alterando Gradientes com JavaScript</h1>

  <p>Clique no botão abaixo para alternar entre dois gradientes diferentes:</p>

  <button onclick="toggleGradient()">Alternar Gradiente</button>

  <script>

    let isAlternate = false;

    function toggleGradient() {

      const body = document.body;

      isAlternate = !isAlternate;

      if (isAlternate) {

        body.classList.add('alternate-gradient');

      } else {

        body.classList.remove('alternate-gradient');

      }

    }

  </script>

</body>

</html>

Portanto, com a manipulação de gradientes de fundo usando JavaScript, podemos adicionar uma dimensão criativa e interativa às mudanças de background em uma página web. 

A criação de gradientes lineares ou radiais permite criar transições suaves entre cores e proporcionar uma experiência visual agradável para os usuários. Além disso, ao usar JavaScript para alternar entre gradientes, podemos criar animações e efeitos dinâmicos, tornando a página mais envolvente e atraente. 

Assim, a combinação de gradientes e interatividade adiciona uma riqueza de possibilidades ao design de interfaces web, permitindo aos desenvolvedores criar experiências mais envolventes e agradáveis para seus usuários.

Conclusão

Em suma, neste artigo, mostramos como mudar o background usando JavaScript. Aprendemos a manipular a propriedade style do objeto HTML para definir a cor do background de forma dinâmica.

Criamos efeitos visuais interessantes com gradientes de cores usando os métodos linear-gradient() e radial-gradient().

Dessa forma, com o método .style.backgroundColor, alteramos diretamente a cor de fundo de um elemento no código, proporcionando flexibilidade e facilidade na personalização das páginas web. As transições suaves tornaram as mudanças de cor mais agradáveis aos olhos do usuário.

Exploramos alternativas, como o uso de CSS custom properties e classes CSS adicionais para mudar o background, cada uma com suas vantagens e aplicações específicas.

Para garantir uma experiência positiva para todos os usuários, é importante considerar a compatibilidade entre navegadores e a acessibilidade. Sempre que surgirem possíveis erros, é necessário testar, depurar e iterar o código para obter resultados consistentes e satisfatórios.

Em conclusão, combinando cores e interatividade adequadamente, podemos criar páginas web mais envolventes, atraentes e visualmente agradáveis para os usuários.

É importante lembrar, também, que esses recursos são úteis na otimização SEO e ranqueamento do site. Não deixe de aprender mais para otimizar o seu site.

Este artigo foi útil?

Obrigado pela resposta!
Daiana S

Daiana S

Graduada em Letras pelo Instituto Federal da Paraíba e especializada em redação geral. Gosto de escrever sobre tudo e me dedico em vários níveis de expressividade. No geral, todos os meus hobbies giram em torno de escrever alguma coisa e fazer isso bem.

Contato: daiana.blog@homehost.com.br

Ganhe 30% OFF

Indique seu nome e e-mail,e ganhe um cupom de desconto de 30% para sempre na Homehost!