20190327のHTMLに関する記事は8件です。

jQueryを使った簡単アコーディオン実装のやり方(複数実装OK)

アコーディオン実装までの手順

この記事ではタイトル通り、jQueryでアコーディオンを実装するやり方をまとめていきます。複数の実装もできるので、参考にしてみてください。(jQueryを使うので、ファイルの読み込みを忘れずに!)

◯実装までの手順
1. クリック部分とコンテンツ部分を作る
2. コンテンツ部分を隠す+クリック部分に機能を実装

コードだけ知りたいという場合は以下を参考にどうぞ!

See the Pen Code for accordion function by Koharu Homma (@khomma) on CodePen.

STEP1: クリック部分とコンテンツ部分を作る(HTML, CSS)

まずはHTMLで、クリック部分とアコーディオン機能で表示したいコンテンツ部分を作っていきます。クリック部分をaccordion-clickクラスを持つdivタグで囲み、そのすぐ下のコンテンツ部分をaccordion-contentクラスを持つdivタグで囲みます。また、CSSで好きなようにスタイルもつけておきます。

index.html
    <div id="accordion">
        <div class="accordion-click">
            <p>ここをクリック</p>
        </div>
        <div class="accordion-content">
            <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dicta, quod. Fugit excepturi, odit. Doloremque explicabo suscipit dignissimos earum reprehenderit rerum!</p>
        </div>
    </div>

STEP2: コンテンツ部分を隠す+クリック部分に機能を実装(jQuery)

次にjQueryでアコーディオン機能を実装しますが、やることが2つあります。
1. コンテンツ部分をhideメソッドで非表示にしておく
2. クリック部分をクリックした時に、コンテンツ部分がスライド表示されるようにする

まずはコンテンツ部分を$('.accordion-content').hide();として、非表示にします。

次にクリック部分の機能を実装していきます。.accordion-clickがクリックされた時、その次にある要素.accordion-contentをスライド表示すればいいですね。最終的なコードが以下です。

script.js
$(function() {
    $('.accordion-content').hide();

    $('.accordion-click').click(function() {
        $(this).next().slideToggle();
    });
});

slideToggle()はアコーディオンが開いているか閉じているかに合わせて、自動で動きを変えてくれる関数です。また、$(this).next()でコンテンツ部分を指定するので、アコーディオンを複数に増やした時も対応できます。

まとめ

以上の数行のjqueryだけでアコーディオンの実装ができちゃうので、ぜひ気軽に試してみてください!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

誰でもプログラムを書けるようになる方法が発見される!なんだこれは?

プログラムを書けるようになる方法を見つけた!なんだこれは?

眼鏡のフレーム端を耳の横に掛けたらなぜか書けるようになった。なんだこれは?
このやり方をやれば誰でもプログラムが書けるようになると思います。頭も良くなった!と思う

プログラムを挫折した経験がある方一度お試しあれ!
15.png
このように耳の横にフレーム端を掛けてやる

自己責任で
メガネのフレームを少し曲げる必要があります。破損しても自己責任で
個人差があると思います。人によってできない人もいると思います。
以上自己責任で試してみてください。

用意するもの
必須
メガネ (耳の横にかけれるもの フレームの横幅が広いものがいいです)
紫外線防止コーティング (眼鏡屋さんで3千円くらいでやってもらえます)

お好み
片方は非球体の方がいい (目が疲れない)
黒縁じゃないほうがいい。(縁が太いと視野が狭くなる)

やり方
フレームの端を耳の横に掛ける
目をつぶり、頭の周りに衛星が回転するイメージをする

メガネをかけていない時 20回ぐらいの回転が限度 疲れてしまう
メガネをかけている時 10回ぐらいの回転が限度 スムーズに回らない うまく回らない
メガネの端を耳の横にかけている時 スムーズに回る 無限に回ることを確認する 

メガネを耳の横にかけてイメージの衛星が無限に回ったら、プログラムが書けるようになっていると思います。

個人差があるため、できない人もいるかもしれません。またある程度この掛け方で生活していく必要があります。普段からイメージトレーニングをやってください。

プログラムが書けるようになったかを確かめてみる。

メガネのこの掛け方をしてプログラムの学習サイトで授業を受けてみましょう
初心者はJavaScriptをお勧めします。

https://dotinstall.com/lessons

途中、掛け方を元に戻してみる。反応を比べてみる

プログラム書けるようになりましたか?理解できるようになりましたか?
プログラムが書けるようになっていた、理解できるようになっていたら、
あなたは今日からプログラマーです。

おめでとう!

近眼じゃない人は?メガネがないとできないの?

近眼じゃなくてもできると思います。近眼になる必要はないです。
今はメガネは必須だと思いますが、近い将来メガネがなくてもできる発明品が出てくるかもしれません。

眼鏡屋さんでメガネのフレームを買う。横幅の広いフレームを選ぶこと
最初についているプラスチックの度の入ってないレンズ
このレンズの上に紫外線防止コーティングを追加してもらう。
3千円くらいでやってもらえます。

これでできると思いますが。個人差もあるので自己責任で
眼鏡を買う前に、眼鏡屋さんで耳の横に掛けて衛星が無限に回るイメージになるか試してみましょう。無限に回るイメージができたらプログラムは書けていると思います。
まずは安いメガネで試すとよいでしょう。

初心者はどのプログラム言語から始めたらいいのか?

C# .NetCore WindowsFormをお勧めします。(画像参照)
GUIなのでわかりやすい。書籍もたくさん出ています。(Visual C# 2018逆引き大全 555の極意はお勧めです)

C#は動画学習サイトUdemyで学習できます
https://www.udemy.com/jp/

(iOSやアンドロイドをやりたい人はその言語を最初に初めてもいいと思います)

そのあと

ゲーム Unity C#
Web Asp.net MVC C#
機械学習 Tensorflow for C#
Iot Windows 10 IoT Core C#
iOS SwiftかObjective-C
Android KotlinかJava

をやるとよいでしょう
csforms02.png

便利ツール

タスク管理ソフト
https://trello.com/ja

オンラインチャット Slack
https://slack.com/intl/ja/

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

iOSでWebブラウザを表示したとき、ダブルクリックで画面がズームしないようにする方法

はじめに

iOSのWebブラウザ上でダブルタップをすると勝手にズームする現象を発見。
解消する方法を調べました。

試したこと

  1. フォントサイズを「16px」以上にする
  2. トリガーからダブルクリックをクリックに変換する
  3. イベントハンドラのtouchendを利用し、ダブルクリックを検知したらクリックに変換する
    →「3」の方法で解決しました!

1. フォントサイズを 「16px」 以上にする

画面がズームする理由を調べてみたところ、iOSではWebブラウザを表示した際、input要素に指定しているフォントサイズが16pxを下回ると、フォーカス時にズームされるという仕様があることがわかりました。
https://uxcellence.com/2014/fix-ios-input-zoom

テキストボックスに文字を入力するときズームになるケースがこれに該当しますね。
iOSの仕様どおり、フォントサイズを16px以上に設定するとズームしなくなるケースが多いようです。

なお、上記の仕様があることから、以下のように強制的にズームを拒否してはいけません。

NG例
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">

今回はダブルクリックによるズームを止めたいので、別の方法を調べました。

2. トリガーからダブルクリックをクリックに変換する

この実装で、ズームはしなくなります。
・・・・が、非活性のボタンでも問答無用で強制クリックする効力を持っているので大変危険です。

document.addEventListener('touchend', function (event) {
  event.preventDefault();
  $(event.target).trigger('click');
}, false);

3. イベントハンドラのtouchendを利用し、ダブルクリックを検知したらクリックに変換する

最終的には、ダブルクリックによる検知を自作して解決しました ^ ^

var isClicked = false;

document.addEventListener('touchend', function (event) {
  if (isClicked) {
    // double click
    if (event.cancelable) {
      event.preventDefault();
    }
    isClicked = false;
  } else {
    // single click
    isClicked = true;
    setTimeout( function() {
      isClicked = false;
    }, 350);
  }
}, false);
  • イベントハンドラのdblclickでダブルクリックを検知することができますが、ダブルクリックの途中でテキストが選択されてしまうことがあるため、今回はtouchendからダブルクリックを検知するように実装しています。
  • mousedownの方がイベントの発火が遅いため良いかと思い実装しましたが、挙動が安定しませんでした。
if (event.cancelable) {
  event.preventDefault();
}
  • 上記のように、イベントがキャンセル可能かを判定してからイベントを中止しないと以下のエラーが出力されるので注意が必要です。

[Intervention]Ignored attempt to cancel a touchend event with cancelable=false, for example because scrolling is in progress and cannot be interrupted.

参考
http://js.studio-kingdom.com/javascript/event/cancelable
https://lab.syncer.jp/Web/JavaScript/Snippet/14/
https://qiita.com/ikemai/items/d0f9ada6c8d75cceab67

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

業界業種未経験者からのエンジニア転職記 その1

こんにちはー!

業界業種未経験でITエンジニアに転職活動中のJakigannです...。
新卒入社してから約3年ギリギリ第二新卒いけるかの境目なので前から行きたかったITエンジニアに思い切って転職活動中です。
もう26だから業界変えるなら今しかないんじゃ...。という危機感がありまして...。

※以下日記のようなものなので読んで得られるものはないかもしれません

プログラミングは独学でUnityとC#を触ってゲームを(幼稚園児でも作れるレベル)作ってました。
後、学生時代にVBAをちょろっとやったぐらい。
ゲーム業界での経験を積みたくて入りやすいソーシャルゲーム運用・開発会社を中心に応募しています。

でも実際の業務で求められるスキルというか熟練度がわからなくて心配です...。
Unityなら学生でも勉強していけるので正直「専門の新卒レベル」ぐらいの実力しかないと思ってます。

それで色々と今後について悩んでいるのですが...。
何で悩んでいるのかと言えば「選択肢の多さ」なんですよ。

  1. 十数社受けて現在面接まで行ったのが数社、どれもソーシャルゲーム会社ですが面接に進んでいるのが数社あって結果待ち(つまり無い内定状態

  2. 業界業種未経験でも偽装派k...ゴホゴホならいけますからね(根拠のない自信

  3. 仮に全滅してもRubyとかのスクール行って、何かポートフォリオになるもの作って、転職活動すれば大体大丈夫じゃない?(根拠なし

4.在職中の会社からIT部に異動したらどうだ?とも声を掛けて頂いていてどれにすればええのやら:frowning2:

②は最終手段ですが恐らーくどこかしら受かりますし(根拠のない自信)
③も生活費やらスクール代やらで数十万円(住居手当とかがなくなるため)は掛かりますがその分勉強に打ち込めるので安いもんだと思ってます。
④は経済的に安定しながら実務兼勉強できるので中々魅力的...だけどシステム開発なのでJavaしか使わないかも?(確認中
①も正直なところソシャゲーは全くやらないので興味ない...けどいきなりコンシューマーは無理&ゲーム業界での経験積みたい^o^

「お前ぶれっぶれじゃねーか!」と怒られそうですが
いやだってIT言語(特にWeb系)ならどこでもいつでも勉強できるじゃないですか!
Web系言語(Html+CSS,JavaScript,PHPやらやら)も最近勉強してるんですが楽しくて...^o^
C#だと闇の中をウロウロする感じですけどこれらは成果が目に見えやすくていいですね。
Html+CSSはあまりにもわかりやすすぎて感動しました。(その分使えても自慢になりませんが...

Html+CSSは勉強(Progateとかで)で慣れてきたので今日か明日あたりからウェブページコピーしていって、早くコーディング案件を受けれるぐらいに慣れていきたいですね(副業のため&やっててたのしい

「とりあえずお前は何をしたいんだ?」と言われると当面の目標というかやりたいことがあって
1. UE4でFPSを作る
2. UE4でシェーダーゴリゴリのカットイン(格闘ゲーのフィニッシュ)を作る
3. Web系言語を使って月5万ぐらいの副収入を得る
4. UE4でVRゲーかミニゲーム作ってどこかに出展する

「Unityどこいったの!?」となりますが正直に言うとグラフィックの質感がUnityよりUE4の方が好きなんですよね...なのでUE4は絶対に極めたい!
でもUE4は最近やり始めたばかりだし、C/C++なんて触ったことないんですよね^o^
BlueprintがあるのでC++は極めなくても良さそうですが実際その手のゲーム開発会社に行くとなると
C++でもコーディングするんじゃないかな?と考えてます。
むしろBlueprintだけなら誰でもできるので競合が:frowning2:
それとUE4募集している会社様がUnityと比べると圧倒的に少なくて^o^ 後スクールもない?(東京

結論から言うと"UE4やりながらWeb系の勉強もやりたい"が本音ですね。
なんでWeb系もやるのかというと、基本的にWeb系(特にRuby)だとベンチャーがよく採用しているそうなので0から実装からのマーケティングまでやる実務経験を積めそうなのがいいんですよ。
それに学習しやすいので成果が出るまで短いというのもいいですよね。
マーケティングの勉強にもなりますし、何よりホワイト(脳内ベンチャー図)なので定時上がり後にUE4で遊べるんじゃないかーってところが夢ありますね...! (そのためにポートフォリオ作らなきゃ^o^
交渉してリモートワークできれば空いた時間で勉強&UE4コネコネでスキルマックスエンドじゃないですか!!(希望的観測

ソシャゲー会社(まだ受かってない)はゲーム業界での経験積みながらUnityやらC#やらの勉強できるのがいいですよね。実際のゲーム運営がどうなってるのかわかるのもいいですし。
ただ恐らく超激務の可能性が...。実務でやりながら勉強はできますけど、業務外でも勉強していかないと詰みだと思ってるので恒常的に残業しているような環境にはあまり身を置きたくないのが心情です。
(身体にも悪いですしね) 何よりソシャゲー自体に興味が...^o^

結局自分でゲーム作るとなってもTwitterやらブログやらでコツコツ宣伝しないといけないのでWeb系の実務(コーディング,SEO,マーケティング)は絶対役に立つと思ってます。
そう考えるとWeb系に入ってOFFで趣味程度にコツコツUE4で遊んで色々と作って出展も十分アリだと思うんですよ。言語は違いますが開発経験は付くので悪くないじゃん...!という感じです。

なので結論を申し上げますと...

        "ポートフォリオができるまで、どこでどんな経験を積みながら時間を稼ぐか?"

という問題になってるんですよ。
ポートフォリオあれば転職できる根拠にはなりませんがコツコツやってればどこか採ってくれるんじゃないかって思ってます(希望的観測)

とこんな感じで色々と考えるとパターンがありすぎてドンガラガッシャン状態なんですよ。
皆さんだったらどんなパターンを選ぶのか気になります。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Portalsをさわってみた

背景

Portalsとは

  • <portal>という新しいHTMLタグのことです
  • <iframe>のように別のページを埋め込むことができます
  • <iframe>と違うところは表示したページに遷移させることができる点です
  • すでにページ上に埋め込まれているページに遷移するため高速に遷移することができます
  • ただし<iframe>のように埋め込んだ中のページを操作することはできずプレビューのみといったイメージです

作ったもの

  • 言葉だけだとよくわからないと思うのでデモアプリを載せます

demo.gif

  • mouseEnter/mouseLeaveでPortalsの表示/非表示を切り替えてクリック時に遷移するように実装してあります
  • 普段使い慣れているのでReactで書いています
  • コードあまりきれいではないですがリポジトリはこちらです
  • デモアプリはこちらです
  • ※ChromeCanaryを引数付きで起動しないと動作しません

    • 上記ブログ記事より引用

    現状 Chrome Canary で Portal は試せます。起動フラグを付けて Canary を立ち上げてください。
    Mac: open -a Google\ Chrome\ Canary --args --enable-features=Portals
    Windows: ショートカットを右クリック、リンク先に --args -enable-features=Portals のオプションを付けて起動。
    Linux: Canary は Linux ではサポートされていません。代替として Chromium をご利用ください。

Portalsの使い方

  • デモアプリではややこしいことをしていますが単に使うだけであればとても簡単です
  • 以下のファイルを作成してブラウザで開いてみて下さい
    • ※ChromeCanaryを引数付きで起動するのを忘れずに
  • ①ページを表示するとQiitaのトップページが表示されます
  • ②画面をクリックするとQiitaへ遷移します
index.html
<portal src="https://qiita.com" style="height: 1000px; width: 1000px"></portal>
<script>
  const portal = document.querySelector('portal');
  portal.addEventListener('click', () => portal.activate());
</script>

demo2.gif

①ページを表示するとQiitaのトップページが表示される

  • <portal>タグのsrc属性に表示したいURLを設定するだけで表示することができます
  • 上のデモで表示/非表示を切り替えていたのはタグ自体を挿入したり削除したりしていただけです

②画面をクリックするとQiitaへ遷移する

  • Portalsでページ遷移させるためにはJavaScriptによる操作が必須となります
  • <portal>のDOMを取得し.activate()を実行するとPortal内に表示しているページに遷移することができます

まとめ

  • Portalsはiframeのようなものと冒頭で紹介しましたが、単に別のページを埋め込むだけでなく新たなUXの実現ができるような面白いタグだということがわかりました
  • まだ一般的なブラウザでは動作しませんが実装はとても簡単なので今後が楽しみです
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

加圧シャツサイトのHTML

今はWordpressがあるため、初心者でもサイト制作は可能になりました。ツールを使うことと、自作タグ打ちのどちらが優れているか?

例えば表作成では付属のツールと自作では圧倒的に自作が優れている。Wordpressでサイト制作するタイプは、自作タグ打ちはしないことがおおいから不要なのでしょうか。

加圧シャツの表作成の例

サイトの中心は記事。SEOという専門の世界でも、画像や動画よりは文字を重視します。記事の内容が10とすれば、画像動画などの補助コンテンツは2か3程度でしょう。

HTMLでの画像はもちろんそのまま投稿というカタチが一般的。リサイズや圧縮加工というと、アプロードする前に加工します。

着圧と加圧の写真の使い方例

画像に文字入れ、加工するのはプログラミングとは違います。フォトショップ、Windows付属のエディターでも十分。プロのような加工が好みなら有料ソフトを使用します。

WEBでのアクセスアップにはデザイン性も重要。しかしもっと重要視されているのがSEOという技術です。技術的にはプログラミングとは別世界。Googleという検索エンジンの仕様がすべて。

例えば動画埋め込みや写真を織り交ぜた頁があるとします。

加圧トレーニングの例

このようなWordpressサイトのプログラマーとしての評価は低いでしょう。SEOにおいては高い評価を受けられる。コーディングが拙いことよりもサイトに独自価値があるかないかです。このように求められる違いによって適切なサイト制作を行うことが理想とされます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

超簡単! jQueryでスライダーを自作

超簡単! jQueryでスライダーを自作

Webページにスライダーを導入すればコンテンツが多くなった時や、
スマホ対応のページを作るときに、見た目をすっきりとさせることができます。
最近ではおしゃれなデザインのスライダーを簡単に導入できる
プラグインがたくさんありますが、今回は以下の手順で自作してみました。

読む対象

HTMLとCSSはできるがjQueryがうまく使えないという方。
Webページをシンプルに見せたいという方。
プラグインでスライダーを導入したことはあるが仕組みが分からないという方。

8つの手順で実装

手順①
スライドしたい要素に適切なclass名(例:slide)をつける。

手順②
表示するスライドに適切なclass名(例:active)をつける。
最初は1枚目のスライドを表示してほしいので一番最初につけました。

<div class="slide active">
  <h2>スライド1枚目</h2>
  <img src="画像のパス">
</div>
<div class="slide">
  <h2>スライド2枚目</h2>
  <img src="画像のパス">
</div>
<div class="slide">
  <h2>スライド3枚目</h2>
  <img src="画像のパス">
</div>
<div class="slide">
  <h2>スライド4枚目</h2>
  <img src="画像のパス">
</div>

手順③
cssファイルでslideクラスにdisplay: none;を適用する。

手順④
手順③の文以降にactiveクラスにdisplay: block;を適用する。

example.css
.slide {
    display: none;
}

.active {/*.slide{...}よりも下に記述*/
    display: block;
}

手順⑤
slideクラスの前後にnextボタンとprevボタンを作るための下準備として
Font Awesomeを利用できるようにheadタグ中に以下の1文を宣言します。

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">

手順⑥
slideクラスの前後に以下のようにクラスを作る。

<div class="button prev">
  <i class="fas fa-chevron-circle-left"></i>
</div>
/*ここに手順②のコードが入る*/
<div class="button next">
  <i class="fas fa-chevron-circle-right"></i>
</div>

このiタグの中身はFont Awesomeからとってきたアイコンです。
今回はarrowで検索をしてprev、next用の矢印アイコンを持ってきました。
利用したいアイコンを選択すれば自動でコードが出てくるので、
挿入したい位置にコピペでOKです。
大きさを選べたり、cssで色や位置を変更できるので非常に便利です。

手順⑦
js形式のファイルに以下のコードを記述する。

sample.js
$(document).ready(function(){
    function toggleChangeBtn() {
        var slideIndex = $('.slide').index($('.active'));/*activeクラスがついている要素(現在表示中のスライド)のindexを取得*/
        $('.button').show();/*両ボタンを表示*/
        if(slideIndex == 0){/*一番最初の要素が表示されているとき*/
            $('.prev').hide();/*prevボタンを隠す。*/
        }else if(slideIndex == $('.slide').length - 1){/*一番最後の要素が表示されているとき*/
            $('.next').hide();/*nextボタンを隠す。*/
        }
    }

    toggleChangeBtn();

    $('.next').click(function() {/*nextボタンを押したとき*/
        var $displaySlide = $('.active');/*現在表示中のスライドを取得*/
        $displaySlide.removeClass('active');/*そのスライドからactiveクラスを除いて表示されないようにする。*/
        $displaySlide.next().addClass('active');/*次のスライドにactiveクラスをつけ、表示させる。*/
        toggleChangeBtn();/*nextボタンを隠すか判断*/
    });
    $('.prev').click(function() {/*prevボタンを押したとき*/
       var $displaySlide = $('.active');/*現在表示中のスライドを取得*/
       $displaySlide.removeClass('active');/*そのスライドからactiveクラスを除いて表示されないようにする。*/
       $displaySlide.prev().addClass('active');/*前のスライドにactiveクラスをつけ、表示させる。*/
       toggleChangeBtn();/*prevボタンを隠すか判断*/
    });
});

手順⑧
HTMLファイルのheadタグ内でjQueryとsample.jsを読み込みます。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="sample.js"></script>

最後に

今回は超基本のスライダーを作成しました。
この内容が理解できていればスライドを一枚ずつではなく
二枚ずつ表示することもできたり、
スライダーの下に今、何枚目が表示されているのかのナビゲーション
をつけれたりできるようになります。

参考

Font Awesomeの使い方

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

3/26

css のmarginコマンドの学習
 <!DOCTYPE html>

<meta charset="UTF-8">

<link rel=”stylesheet” href=”style.css”>

<title>書いてみよう!</title>

<p class="first">一番目の要素</p>

<p class="second">二番目の要素</p>

css

.first {
background-color: skyblue;

}

.second {

background-color: orange;

padding: 10px;

margin: 10px;

}

※{margin: 20px 10px 5px 0px;}

上から時計回りで連続指定も可能

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む