質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

2回答

2681閲覧

this.className #btn.pushed;

goforward

総合スコア705

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/04/05 01:57

編集2017/04/05 01:59

javascript

1<!DOCTIPE html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <title>おみくじ</title> 6 <style> 7 body { 8 background: #e0e0e0; 9 text-align: center; 10 font-size: 16px; 11 color: #fff; 12 font-family: Arial, sans-serif; 13 } 14 #result { 15 margin: 30px auto; 16 width: 180px; 17 height: 180px; 18 border-radius: 50%; 19 line-height: 180px; 20 font-size: 48px; 21 font-weight: bold; 22 background: #f44336; 23 box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); 24 } 25 #btn { 26 margin:0 auto; 27 width: 200px; 28 padding: 5px; 29 border-radius: 5px; 30 background: #00aaff; 31 box-shadow: 0 4px 0px #0088cc; 32 cursor: pointer; 33 } 34 #btn:hover { 35 opacity: 0.8; 36 } 37 #btn.pushed { 38 margin-top: 32px; 39 box-shadow: 0 2px 0px #0088cc; 40 41 } 42 </style> 43</head> 44<body> 45 <div id="result">?</div> 46 <div id="btn">あなたの運勢は?</div> 47 <script> 48 (function() { 49 "use strict"; 50 document.getElementById("btn").addEventListener('click', function() { 51 document.getElementById('result').innerHTMLs = 'hit'; 52 }); 53 document.getElementById("btn").addEventListener('mousedown', function() { 54 this.className = 'pushed'; 55 }); 56 document.getElementById("btn").addEventListener('mouseup', function() { 57 this.className = ''; 58 }); 59 })(); 60 61 </script> 62</body> 63</html> 64

javascript

1this.className = 'pushed'; 2#btn.pushed;

thisがオブジェクトでclassNameはクラスですか?
なぜ具体→抽象なのでしょうか?ふつうは抽象→具体だと思います。
className = 'pushed'もvar 宣言がないので変数(インスタンス)ではありせんし

#btn.pushed; のpushedはメソッドですか?#btnがオブジェクトでそれなら理解できます。本に書いてありますので

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

this === event.currentTarget

JavaScript

1document.getElementById("btn").addEventListener('mousedown', function() { 2 this.className = 'pushed'; 3});

addEventListener は第二引数にとるイベントハンドラ関数において event.currentTargetthis 束縛します。
つまり、this === event.currentTarget です。

このコードにクラス構文は使われていません。
勘違いされているといけないので念のため付け加えますが、「this を使う事」は「クラスである事」を指しているわけではありません。
イベントハンドラ関数の他にも Function.prototype.callFunction.prototype.bindthis 束縛する事もあり、this は様々な場所で使われます。

class セレクタ (class selector)

CSS

1#btn.pushed { 2 margin-top: 32px; 3 box-shadow: 0 2px 0px #0088cc; 4}

style要素内に書かれた記述はCSSです。
.pushed は「class セレクタ」と呼ばれるもので、指定したclassトークン(この場合は pushed)を持つ要素を選択します。
JavaScript においては querySelector 等でclassセレクタを指定する事が可能です。

Re: lastsamurai さん

投稿2017/04/05 04:13

編集2017/04/05 04:16
think49

総合スコア18162

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

thisがオブジェクトでclassNameはクラスですか?

プロパティです。
element.className - Web API インターフェイス | MDN

#btn.pushed; のpushedはメソッドですか?

そんなコードは書いていないと思うのですが。#btn.pushed{}ならjavascriptではなくてCSSです。
クラスセレクタ - CSS | MDN

投稿2017/04/05 02:03

編集2017/04/05 02:24
Lhankor_Mhy

総合スコア36087

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goforward

2017/04/05 04:14

cssに戻りながら少々考えさせていただきます。尚https://developer.mozilla.org/ja/(このページは)今この瞬間より使わせていただきます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問