見出し画像

Web言語マスター復活への道/13日目

今日も1日過ぎていきました、ほんとあっという間。資料作成で終わりました🙄

目標

1日考えましたが、下の流れでいこうと思います。理由はサーバーサイドのが得意だからです。node.jsは少し勉強したことあるのでなんとなくわかりますが、他は需要度とか難易度が不明なので、軌道修正多分します。案件数とかも後で調べてみます。
1. jqueryをもう少し勉強
2. vue.js→node.jsでjavascriptの大枠を掴む
3. ポートフォリオを作成
4. 就活する
5. rubyを勉強する
6. ruby on rails勉強する


今日の目標
・jQueryベースでタブ作成

本日の作業

・jQueryでタブ作成
以下サイト参考に、作成しました。見ずに作成しようかと思いましたが、htmlのlist形式でないとなかなか表示が難しかったので、だいぶ見ました。

index.html

<!DOCTYPE html>
<html lang="ja">

<head>
   <meta charset="utf-8">
   <title>JavaScript Test</title>
   <link rel="stylesheet" href="main.css">
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
   <script src="main.js"></script>

</head>

<body>
   <div class="tab-test">
       <ul id="tab" class="list-tab">
           <li class="active">タブ1</li>
           <li>タブ2</li>

       </ul>
   </div>

   <div class="text-test">
       <div class="text active">
           <p>タブ1テキスト</p>
       </div>
       <div class="text">
           <p>タブ2テキスト</p>
       </div>

</body>

</html>

main.css

ul {
   margin: 0;
   padding: 0;
   list-style-type: none;
}

p {
   margin: 0;
}

.tab-test {
   overflow: hidden;
}

.list-tab {
   display: flex;
   margin: 0 -2px;
   border-bottom: aqua;
}

.list-tab > li {
   display: block;
   padding: 5px 1px;
   margin: 0 2px;
   width: 100%;
   color: white;
   text-align: center;
   background: grey;
   box-sizing: border-box;
}

.list-tab .active {
   background: aqua;
}

.text {
   display: none;
   padding: 1px;
   border-bottom: 1px solid aqua;
   border-left: 1px solid aqua;
   border-right: 1px solid aqua;
   color: grey;
}

.text.active {
   display: block;
}

main.js

$(function(){
   $("#tab li").click(function(){
     $("#tab li").removeClass("active");
     $(this).addClass("active");
     var index = $(this).index();
     
     $(".text").removeClass("active");
     $(".text").eq(index).addClass("active");
   });
 });

結果

画像1


・vue.js

最シンプルコード。yaml記載形式に似てきたような

index.html

<!DOCTYPE html>
<html lang="ja">
 <head>
   <meta charset="utf-8" />
   <title>Vue.js Test</title>
   <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
 </head>
 <body>
   <div id="example">{{ greeting }}</div>
   <script src="main.js"></script>
 </body>
</html>

main.js

var app = new Vue({
 el: "#example",
 data: {
   greeting: "Hello Vue.js!"
 }
});


・urlパターンとnameパターンも試しました。"el"ってのが現時点よくわかっていないままコーディングしてます。


所感

jQueryのタブづくりは、今までの難易度の数倍上がっているように思います。ここで1挫折した記憶あります。実際、list形式でない場合のコーディング方法がいまいちな状態です。
vue.jsも触りのみですが、v-xxxが難しいような気がします。2-3日で基礎部分の理解を目標にします🤓

この記事が気に入ったらサポートをしてみませんか?