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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

3152閲覧

Javascript + html でポップアップウインドウ

jinba

総合スコア310

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2017/06/15 15:19

http://cosarin.com/js_easy_popup/

↑まさしく上記サイトのようなことがしたいのですが
私の知識では上記サイトの説明では理解できません。

根本的に間違いだらけなのでしょうが何が間違いか、どこから勉強したらいいか
皆目見当がつきません

<html> <head> <title>タイトル</title> <style type="text/css"> <!-- /* common setting */ .popup { display: none; position: fixed; top: 50%; left: 50%; background-color: #fff; overflow: hidden; z-index: 101; } .popup_inner { padding: 20px; } #overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: #000; opacity: 0.7; z-index: 100; } /* individual setting */ #popup1 { width: 600px; } //--> </style> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <a href="#popup1" class="popup_btn">ボタン</a> <div id="popup1" class="popup"> <div class="popup_inner"> <h4>タイトル</h4> <p>テキストテキストテキストテキストテキストテキストテキストテキスト</p> <p>テキストテキストテキストテキストテキストテキストテキストテキスト</p> <p>テキストテキストテキストテキストテキストテキストテキストテキスト</p> <p>テキストテキストテキストテキストテキストテキストテキストテキスト</p> <p>テキストテキストテキストテキストテキストテキストテキストテキスト</p> <div> <a href="#close_btn" class="close_btn">閉じる</a> </div> </div> </div> <div id="overlay"></div> <script type="text/javascript"> (function($){ $(function(){ $(document) .on('click', '.popup_btn', function(){ var $popup = $((this).attr('href')); // ポップアップの幅と高さからmarginを計算する var mT = ($popup.outerHeight() / 2) * (-1) + 'px'; var mL = ($popup.outerWidth() / 2) * (-1) + 'px'; // marginを設定して表示 $('.popup').hide(); $popup.css({ 'margin-top': mT, 'margin-left': mL }).show(); $('#overlay').show(); return false; }) .on('click', '.close_btn, #overlay', function(){ $('.popup, #overlay').hide(); return false; }); }); })(jQuery); </script> </body> </html>

サイトを参考にコピペで構築してみたのですが
上記が限界です

http://cosarin.com/js_easy_popup/

↑上記サイトの説明をもうすこしかみ砕いて初心者にもわかるようご教授ください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

申し訳ないのですが、何が分からないのか分からないです。
全ての詳細の解説を求めているのであれば丸投げ質問となるので、解説の回答は控えさせていただきます。
また、参照先サイトでも最低限の解説は日本語でしてあるので、それを元に不明な機能の意味をひとつひとつ調べていってください。

動作検証したわけではないですが、コードを見た感じ不足しているものは「jQueryの読み込み」です。jQueryはJavascriptのライブラリです。処理の集合体ですね。
参考:jQueryってなに?超初心者向け入門講座
↑のサイトに読み込み方法が2種類あるので参考にして設置してください。
おそらく今の状態ですとブラウザの開発ツールなどで確認するとエラーが出ているのではないでしょうか。
jQueryを読み込ませることでひとまずそのおおもとのエラーは解消されるはず。
あとは適宜調整してみてください。

※余談部分は本件の回答とは外れていて長文となるためコメントに移行しました。

投稿2017/06/15 21:39

編集2017/06/15 22:14
m.ts10806

総合スコア80850

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

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

m.ts10806

2017/06/15 22:14

# 以下、余談です。 厳しいことを言うようですが、 何も分からない状態でコピペコードの解説だけを求めても結局理解にはつながりませんし、知識は身につきません。 質問者さんはHTML,CSS,javascriptをどこまで理解できているのか、というのもありますが、 ただコピペでやっただけでは動くかどうかはわかりませんし、書いた限りは自分のコードなのでその部分は自身の責任をもって動くようにする必要があります。 参考先のサイトのコードにはたまに単純なプログラムミスがあるものもあります。それらも自身で見つけて解決しなければなりません。 デモは動くコードを書いてあっても、画面でコピーできるコードが全く同じとは限りません。 参考先のサイトはあくまで「参考先」です。本来の使い方としては参考先のコードを基盤としてカスタマイズをかけていくものですよね。 例えば、参考先の通りに動くようになったとして、それがそのまま自身の使いたいページに当てはまることはほとんどありません。 ポップアップウィンドウのデザインを加工したり、表示・非表示のときにアニメーションを加えたりetc.. そうなったときに、また自身のリクエストに完璧に沿った参考先を探しますか? 続けていくうちに手詰まりになって、やりたいことを半端な状態で諦める未来がくるのではないでしょうか(昔、私もそうでした) もう少し簡単なところから、きちんと理解していって自分で出来るように勉強を進めていくと良いと思いますよ。
jinba

2017/06/16 04:53

質問が言葉足らずでした PHPで投稿フォームを作っていて、確認画面を別ページに偏移するよりも ダイアログのようなものが出た方がスマートでは無いか? との考えから 「確認画面」「ダイアログ」などのキーワードで検索し調べていたところ http://cosarin.com/js_easy_popup/ 上記サイトに出会いました このような方法ならかなり融通が利くのではと動かしてみたくなったところ 上記サイトでは『jquery』は理解しているものとするといった書き方だったため 『jquery』の知識が皆無でまったく理解できませんでしたし 『jquery』で検索してみるということすら思いつけませんでした。 matsu1006様から『jquery』というヒントをもらえたので何とか動かすところまで行きました これからカスタマイズしていこうと思います
m.ts10806

2017/06/16 05:26 編集

なるほど。そういうことですね。 経緯の説明もあるともっと適切な回答(こうした方がいいのではという提案とかも)がもらえることがありますので今後質問するときにご留意ください。 送信する前に「記載の内容でよろしいでしょうか?」と出し、OK⇒送信 キャンセル⇒ポップアップ閉じる というようなよくある形ですね。 簡単でよければwindow.confirm()を使う手もありますし、ちょっとデザインも入ったjQuery Alert Dialogsというものもあります。もちろん今回調べられたポップアップを使う手もあります。 今回ご提示のサイトは確かにjQuery前提で書かれているため説明が若干不親切な部分はありますね。 jQueryはjQuery独自の記法で書かれていますので分かるようになるとひと目でわかるようになります。 まずは「なんか見たことのない関数?みたいなのがあるからそのままGoogle検索だ」とやってみると良いですね。 がんばってください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問