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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

1回答

1053閲覧

webページ ボタンで追加?

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2018/06/30 14:55

前提・実現したいこと

webページ上でボタンを押すと該当のソースコードにかいたhtmlの<div>をページ上にいくつでも表示できるようにしたいのですが方法がわかりません

該当のソースコード

html

1<button onclick="AddDiv();"> 四角を追加</button> 2<!--ここのボタンで下のものを表示できるようにしたい--> 3 4 <div id="pane"> 5 <div id="title">Resize</div> 6 </div> 7 8 <div id="ghostpane"></div></div>

css

1body { 2 overflow: hidden; 3} 4 5#pane { 6 position: absolute; 7 width: 45%; 8 height: 45%; 9 top: 20%; 10 left: 20%; 11 12 13 margin: 0; 14 padding: 0; 15 z-index: 99; 16 border: 2px solid purple; 17 background: #fefefe; 18} 19 20#title { 21 font-family: monospace; 22 background: purple; 23 color: white; 24 font-size: 24px; 25 height: 30px; 26 text-align: center; 27} 28 29#ghostpane { 30 background: #999; 31 opacity: 0.2; 32 33 width: 45%; 34 height: 45%; 35 top: 20%; 36 left: 20%; 37 38 position: absolute; 39 margin: 0; 40 padding: 0; 41 z-index: 98; 42 43 -webkit-transition: all 0.25s ease-in-out; 44 -moz-transition: all 0.25s ease-in-out; 45 -ms-transition: all 0.25s ease-in-out; 46 -o-transition: all 0.25s ease-in-out; 47 transition: all 0.25s ease-in-out; 48} 49

js

1"use strict"; 2 3// Minimum resizable area 4var minWidth = 60; 5var minHeight = 40; 6 7// Thresholds 8var FULLSCREEN_MARGINS = -10; 9var MARGINS = 4; 10 11// End of what's configurable. 12var clicked = null; 13var onRightEdge, onBottomEdge, onLeftEdge, onTopEdge; 14 15var rightScreenEdge, bottomScreenEdge; 16 17var preSnapped; 18 19var b, x, y; 20 21var redraw = false; 22 23var pane = document.getElementById('pane'); 24var ghostpane = document.getElementById('ghostpane'); 25 26function setBounds(element, x, y, w, h) { 27 element.style.left = x + 'px'; 28 element.style.top = y + 'px'; 29 element.style.width = w + 'px'; 30 element.style.height = h + 'px'; 31} 32 33function hintHide() { 34 setBounds(ghostpane, b.left, b.top, b.width, b.height); 35 ghostpane.style.opacity = 0; 36} 37 38 39// Mouse events 40pane.addEventListener('mousedown', onMouseDown); 41document.addEventListener('mousemove', onMove); 42document.addEventListener('mouseup', onUp); 43 44// Touch events 45pane.addEventListener('touchstart', onTouchDown); 46document.addEventListener('touchmove', onTouchMove); 47document.addEventListener('touchend', onTouchEnd); 48 49 50function onTouchDown(e) { 51 onDown(e.touches[0]); 52 e.preventDefault(); 53} 54 55function onTouchMove(e) { 56 onMove(e.touches[0]); 57} 58 59function onTouchEnd(e) { 60 if (e.touches.length ==0) onUp(e.changedTouches[0]); 61} 62 63function onMouseDown(e) { 64 onDown(e); 65 e.preventDefault(); 66} 67 68function onDown(e) { 69 calc(e); 70 71 var isResizing = onRightEdge || onBottomEdge || onTopEdge || onLeftEdge; 72 73 clicked = { 74 x: x, 75 y: y, 76 cx: e.clientX, 77 cy: e.clientY, 78 w: b.width, 79 h: b.height, 80 isResizing: isResizing, 81 isMoving: !isResizing && canMove(), 82 onTopEdge: onTopEdge, 83 onLeftEdge: onLeftEdge, 84 onRightEdge: onRightEdge, 85 onBottomEdge: onBottomEdge 86 }; 87} 88 89function canMove() { 90 return x > 0 && x < b.width && y > 0 && y < b.height 91 && y < 30; 92} 93 94function calc(e) { 95 b = pane.getBoundingClientRect(); 96 x = e.clientX - b.left; 97 y = e.clientY - b.top; 98 99 onTopEdge = y < MARGINS; 100 onLeftEdge = x < MARGINS; 101 onRightEdge = x >= b.width - MARGINS; 102 onBottomEdge = y >= b.height - MARGINS; 103 104 rightScreenEdge = window.innerWidth - MARGINS; 105 bottomScreenEdge = window.innerHeight - MARGINS; 106} 107 108var e; 109 110function onMove(ee) { 111 calc(ee); 112 113 e = ee; 114 115 redraw = true; 116 117} 118 119function animate() { 120 121 requestAnimationFrame(animate); 122 123 if (!redraw) return; 124 125 redraw = false; 126 127 if (clicked && clicked.isResizing) { 128 129 if (clicked.onRightEdge) pane.style.width = Math.max(x, minWidth) + 'px'; 130 if (clicked.onBottomEdge) pane.style.height = Math.max(y, minHeight) + 'px'; 131 132 if (clicked.onLeftEdge) { 133 var currentWidth = Math.max(clicked.cx - e.clientX + clicked.w, minWidth); 134 if (currentWidth > minWidth) { 135 pane.style.width = currentWidth + 'px'; 136 pane.style.left = e.clientX + 'px'; 137 } 138 } 139 140 if (clicked.onTopEdge) { 141 var currentHeight = Math.max(clicked.cy - e.clientY + clicked.h, minHeight); 142 if (currentHeight > minHeight) { 143 pane.style.height = currentHeight + 'px'; 144 pane.style.top = e.clientY + 'px'; 145 } 146 } 147 148 hintHide(); 149 150 return; 151 } 152 153 if (clicked && clicked.isMoving) { 154 155 if (b.top < FULLSCREEN_MARGINS || b.left < FULLSCREEN_MARGINS || b.right > window.innerWidth - FULLSCREEN_MARGINS || b.bottom > window.innerHeight - FULLSCREEN_MARGINS) { 156 // hintFull(); 157 setBounds(ghostpane, 0, 0, window.innerWidth, window.innerHeight); 158 ghostpane.style.opacity = 0.2; 159 } else if (b.top < MARGINS) { 160 // hintTop(); 161 setBounds(ghostpane, 0, 0, window.innerWidth, window.innerHeight / 2); 162 ghostpane.style.opacity = 0.2; 163 } else if (b.left < MARGINS) { 164 // hintLeft(); 165 setBounds(ghostpane, 0, 0, window.innerWidth / 2, window.innerHeight); 166 ghostpane.style.opacity = 0.2; 167 } else if (b.right > rightScreenEdge) { 168 // hintRight(); 169 setBounds(ghostpane, window.innerWidth / 2, 0, window.innerWidth / 2, window.innerHeight); 170 ghostpane.style.opacity = 0.2; 171 } else if (b.bottom > bottomScreenEdge) { 172 // hintBottom(); 173 setBounds(ghostpane, 0, window.innerHeight / 2, window.innerWidth, window.innerWidth / 2); 174 ghostpane.style.opacity = 0.2; 175 } else { 176 hintHide(); 177 } 178 179 if (preSnapped) { 180 setBounds(pane, 181 e.clientX - preSnapped.width / 2, 182 e.clientY - Math.min(clicked.y, preSnapped.height), 183 preSnapped.width, 184 preSnapped.height 185 ); 186 return; 187 } 188 189 // moving 190 pane.style.top = (e.clientY - clicked.y) + 'px'; 191 pane.style.left = (e.clientX - clicked.x) + 'px'; 192 193 return; 194 } 195 196 // This code executes when mouse moves without clicking 197 198 // style cursor 199 if (onRightEdge && onBottomEdge || onLeftEdge && onTopEdge) { 200 pane.style.cursor = 'nwse-resize'; 201 } else if (onRightEdge && onTopEdge || onBottomEdge && onLeftEdge) { 202 pane.style.cursor = 'nesw-resize'; 203 } else if (onRightEdge || onLeftEdge) { 204 pane.style.cursor = 'ew-resize'; 205 } else if (onBottomEdge || onTopEdge) { 206 pane.style.cursor = 'ns-resize'; 207 } else if (canMove()) { 208 pane.style.cursor = 'move'; 209 } else { 210 pane.style.cursor = 'default'; 211 } 212} 213 214animate(); 215 216function onUp(e) { 217 calc(e); 218 219 if (clicked && clicked.isMoving) { 220 // Snap 221 var snapped = { 222 width: b.width, 223 height: b.height 224 }; 225 226 if (b.top < FULLSCREEN_MARGINS || b.left < FULLSCREEN_MARGINS || b.right > window.innerWidth - FULLSCREEN_MARGINS || b.bottom > window.innerHeight - FULLSCREEN_MARGINS) { 227 // hintFull(); 228 setBounds(pane, 0, 0, window.innerWidth, window.innerHeight); 229 preSnapped = snapped; 230 } else if (b.top < MARGINS) { 231 // hintTop(); 232 setBounds(pane, 0, 0, window.innerWidth, window.innerHeight / 2); 233 preSnapped = snapped; 234 } else if (b.left < MARGINS) { 235 // hintLeft(); 236 setBounds(pane, 0, 0, window.innerWidth / 2, window.innerHeight); 237 preSnapped = snapped; 238 } else if (b.right > rightScreenEdge) { 239 // hintRight(); 240 setBounds(pane, window.innerWidth / 2, 0, window.innerWidth / 2, window.innerHeight); 241 preSnapped = snapped; 242 } else if (b.bottom > bottomScreenEdge) { 243 // hintBottom(); 244 setBounds(pane, 0, window.innerHeight / 2, window.innerWidth, window.innerWidth / 2); 245 preSnapped = snapped; 246 } else { 247 preSnapped = null; 248 } 249 250 hintHide(); 251 252 } 253 254 clicked = null; 255 256} 257

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

html

1<!DOCTYPE HTML> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <style type="text/css"> 7 html { 8 height: 100px; 9 width: 100px; 10 } 11 .box { 12 border: 1px solid #000; 13 width: 100px; 14 height: 100px; 15 position: absolute; 16 background: #CCF; 17 } 18 </style> 19 </head> 20 <body> 21 <div> 22 <button type="button" id="add_box">ADD_BOX</button> 23 </div> 24 <div id="wrapper"> 25 26 </div> 27 <script type="text/javascript"> 28 var btn = document.getElementById('add_box'); 29 btn.addEventListener('click', function () { 30 var box = document.createElement('div'); 31 box.className = 'box'; 32 box.style.top = 20 + Math.random() * 500 + 'px'; 33 box.style.left = 20 + Math.random() * 500 + 'px'; 34 document.getElementById('wrapper').appendChild(box); 35 }); 36 </script> 37 </body> 38</html>

投稿2018/06/30 15:16

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問