Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

REACTJS - Aplicação de Página �nica - #4 Botão Mobile

22/10/2018

Neste tutorial criaremos o botão mobile e a função toggle relativa a ele no React JS. Faremos também a estilização necessária para seu funcionamento.

Botão Mobile no ReactJS

O primeiro passo é criarmos os três retângulos paralelos no nosso programa de design, no caso Fireworks. Iremos exportar esse botão como png e fundo transparente.

No componente ButtonMob faremos o método clickMe que fará a função toggle:

import React from 'react';

export default class ButtonMob extends React.Component {

    constructor()
    {
        super();
        this.state={
            visNav:'flex'
        }
    }

    /* Fará a função de toggle */
    clickMe()
    {
        if(this.state.visNav === 'flex'){
            this.setState({
                visNav:'none'
            });
        }else{
            this.setState({
                visNav:'flex'
            });
        }
        document.querySelector(".nav").style.display=this.state.visNav;
    }

    render(){
        return(
            <div className="buttonMob" onClick={this.clickMe.bind(this)}>
                <img src="/img/botao.png" alt="Botão Mobile"/>
            </div>
        );
    }
}

Repare que no código acima trabalhamos com estados e atribuimos o estado ao estilo display do elemento nav.

Por fim estilizamos a classe header de forma a ordenar os elementos nav e buttonmob:

/*Small Smartphones*/
@media screen and (max-width: 480px) {
    .header{display:flex; flex-direction: column;}

    .nav{display:none; flex-direction: column; order:2;}
        .nav a{width: 100%; }

    .buttonMob{order:1; text-align: right; padding: 5px 5% 5px 0;}
}

/*Medium Smartphones*/
@media screen and (min-width: 481px) and (max-width: 768px) {
    .header{display:flex; flex-direction: column;}

    .nav{display:none; flex-direction: column; order:2;}
        .nav a{width: 100%; }

    .buttonMob{order:1; text-align: right; padding: 5px 5% 5px 0;}
}

/*Large Smartphones and small notebooks*/
@media screen and (min-width: 769px) and (max-width: 1199px) {
    .nav{display:flex;}
        .nav a{width: 25%;}

    .buttonMob{display:none;}
}

/*XLarges screens*/
@media screen and (min-width: 1200px) {
    .nav{display:flex;}
        .nav a{width: 25%;}

    .buttonMob{display:none;}
}

Sucesso nos códigos e na vida!

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

REACTJS - Aplicação de Página �nica - #3 Criando os Links
Na aula de hoje vamos dividir nossa estilização em media-queries, vamos importar um módulo externo e criar a nossa div nav.
Saiba mais!
REACTJS - Aplicação de Página �nica - #5 Logomarca e Endereço
Neste vídeo-tutorial trabalharemos com a criação da logomarca do empreendimento no CorelDraw e trataremos da construção dos componentes address e logo.
Saiba mais!
React JS
Nessa seção aprenderemos sobre essa importante biblioteca Javascript desenvolvida pelo Facebook para facilitar a construção backend dos nossos websites.
Saiba mais!