回答編集履歴
5
解説図のアップデート
answer
CHANGED
@@ -65,4 +65,4 @@
|
|
65
65
|
---
|
66
66
|
--追記--
|
67
67
|
この絵でわかっていただけると思うのですが、、。
|
68
|
-

|
4
追記
answer
CHANGED
@@ -60,4 +60,9 @@
|
|
60
60
|
<div id="box" style="position:absolute;top:400px;left:200px;width:100px;height:100px;background-color:lightgray;"></div>
|
61
61
|
</body>
|
62
62
|
</html>
|
63
|
-
```
|
63
|
+
```
|
64
|
+
|
65
|
+
---
|
66
|
+
--追記--
|
67
|
+
この絵でわかっていただけると思うのですが、、。
|
68
|
+

|
3
修正 ちょい修正
answer
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
|
10
10
|
---
|
11
11
|
--追記--
|
12
|
-
`creatjs`は触ったことがないので、普通のjavascriptで、例を書きますね。
|
12
|
+
`creatjs`は触ったことがないので、普通のjavascriptで、divを図形に見立てて例を書きますね。
|
13
13
|
`creatjs`も中身は`javascript`なので同じ考え方だと思います。
|
14
14
|
|
15
15
|
コメントにて、基準点が画面中央位置じゃない時を気にされていたので、起点 top:400px; left:200px; にしてあります。
|
2
追記
answer
CHANGED
@@ -14,6 +14,7 @@
|
|
14
14
|
|
15
15
|
コメントにて、基準点が画面中央位置じゃない時を気にされていたので、起点 top:400px; left:200px; にしてあります。
|
16
16
|
|
17
|
+
わかりやすいように、動作をまとめず一つずつ書いてますので参考にしてください。
|
17
18
|
```javascript
|
18
19
|
<!DOCTYPE html>
|
19
20
|
<html>
|
1
追記
answer
CHANGED
@@ -4,4 +4,59 @@
|
|
4
4
|
つまり
|
5
5
|
`container.x ="大きさが増えた分の半分減らす"`
|
6
6
|
`container.y ="大きさが増えた分の半分減らす"`
|
7
|
-
です。
|
7
|
+
です。
|
8
|
+
|
9
|
+
|
10
|
+
---
|
11
|
+
--追記--
|
12
|
+
`creatjs`は触ったことがないので、普通のjavascriptで、例を書きますね。
|
13
|
+
`creatjs`も中身は`javascript`なので同じ考え方だと思います。
|
14
|
+
|
15
|
+
コメントにて、基準点が画面中央位置じゃない時を気にされていたので、起点 top:400px; left:200px; にしてあります。
|
16
|
+
|
17
|
+
```javascript
|
18
|
+
<!DOCTYPE html>
|
19
|
+
<html>
|
20
|
+
<head>
|
21
|
+
<meta charset="UTF-8">
|
22
|
+
<style>
|
23
|
+
|
24
|
+
</style>
|
25
|
+
<script>
|
26
|
+
function kakudai($width){
|
27
|
+
var $target = document.getElementById('box');
|
28
|
+
var orgWidth = $target.clientWidth;//元の幅
|
29
|
+
var orgHeight = $target.clientHeight;//元の高さ
|
30
|
+
var rect = $target.getBoundingClientRect();//元の座標取得(左上の角)
|
31
|
+
var orgTop = rect.top;//元座標 y
|
32
|
+
var orgLeft = rect.left;//元座標 x
|
33
|
+
|
34
|
+
|
35
|
+
var zoom = 1.1;//ボタンを押すたび1.1倍
|
36
|
+
var nextWidth = (orgWidth*zoom);//次のサイズは元の幅×zoom
|
37
|
+
var nextHeight = (orgHeight*zoom);//次のサイズは元の高さ×zoom
|
38
|
+
|
39
|
+
var diffWidth = (nextWidth)-orgWidth;//差を求めてdiffWidthに代入
|
40
|
+
var diffHeight = (nextHeight)-orgHeight;//差を求めてdiffHeightに代入
|
41
|
+
|
42
|
+
$target.style.width = nextWidth+'px';//幅を変更
|
43
|
+
$target.style.height = nextHeight+'px';//高さを変更
|
44
|
+
|
45
|
+
var nextTop = (orgTop-(diffWidth/2))+'px';//大きくなった分の半分を引く
|
46
|
+
var nextLeft = (orgLeft-(diffHeight/2))+'px';//大きくなった分の半分を引く
|
47
|
+
console.log(nextTop);
|
48
|
+
console.log(nextLeft);
|
49
|
+
//場所を新しい場所に移動
|
50
|
+
$target.style.position = 'absolute';
|
51
|
+
$target.style.top = nextTop;
|
52
|
+
$target.style.left = nextLeft;
|
53
|
+
}
|
54
|
+
|
55
|
+
</script>
|
56
|
+
</head>
|
57
|
+
<body>
|
58
|
+
<input type="button" onclick="kakudai()" value="拡大">
|
59
|
+
<div id="box" style="position:absolute;top:400px;left:200px;width:100px;height:100px;background-color:lightgray;"></div>
|
60
|
+
</body>
|
61
|
+
</html>
|
62
|
+
```
|