はしばみあきら blog

プログラミングアウトプットするブログ。202010スタート

【RailsでLINEを作る】ログイン画面を作る

JavaScriptの勉強をしようと思って作ったのはいいけど中々JSにたどり着けません。

きたやまです。

ログイン画面を作る

実際のPC版のLINEのログイン画面がこんな感じ。

f:id:hashibamiakira:20201003172742p:plain

なるべく近づけていきます。

今回、仲間の力を貸してもらってhtmlにはslimを導入し、sassにはBEM記法をなるべく取り入れていくようにします。

f:id:hashibamiakira:20201003173024p:plain

これで合っているんだろうか...slimはsyntaxエラーが出るとしてもBEMは難しいです。

ここまででとりあえずできたのはこんな感じ。

f:id:hashibamiakira:20201003173232p:plain

ここからJSを組み込んでいきます。

ところがJSの記事があまりに少なく...jQueryでの実装が多くなりそうな予感。

$(document).ready(function(){

  // ログイン画面で何も入力しないとボタンを押せないようにする
  const $submitBtn = $('#submit')
  const $session_actions = $('.session__actions');
  $(window).load(function(){
    $($submitBtn).prop('disabled', true);
  });
  $('#new_user input').on('keyup keydown', function(){
    if (
      $('#new_user input[type="email"]').val() !== "" &&
      $('#new_user input[type="password"]').val() !== ""
    ) {
      $submitBtn.prop('disabled', false);
      $session_actions.addClass("session__hover");
      $session_actions.removeClass("session__actions");
    } else {
      $submitBtn.prop('disabled', true);
      $session_actions.addClass("session__actions");
      $session_actions.removeClass("session__hover")
    }
  });

  // パスワード入力時には目のアイコンを表示する
  $('input[name="user[password]"]').on('load keyup', function(){
    if ($(this).val() === ""){
      $('#pass_check').css({ 'display' : 'none'});
    } else {
      $('#pass_check').css({ 'display' : 'block'});
    }
  });

  // パスワード表示ボタンを作る
  $(function(){
    let password = '#password';
    let pass_check = '#pass_check';

    $(pass_check).mousedown(function(){
      $(password).attr('type','text');
      $(pass_check).css({ 'color' : '#0a0'});
    }).mouseup(function(){
      $(password).attr('type','password');
      $(pass_check).css({ 'color' : '#ddd'})
    });
  });

});

色々と掛け合わせて足りない頭ぶんまわしでこれだけ書くのに4時間くらいかかりましたオスオス。

次はログイン画面を作っていくんだけど、そもそもLINEのログイン画面はどうやって出すんだ??

またボチボチ更新していきます。