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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

JavaScript

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

Q&A

解決済

2回答

4557閲覧

CSSのresizeで要素の大きさが変更された時にその要素の変更後のサイズを取りたい

IDLOCK

総合スコア20

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

JavaScript

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

0グッド

0クリップ

投稿2016/03/24 08:05

編集2016/03/24 08:37

###前提・実現したいこと
CSSのresizeで要素の大きさが変更された時にその要素の変更後のサイズを取りたい。

###発生している問題・エラーメッセージ
現状は要素をクリックした時に要素のサイズを取得しているのですが、ドラッグしたまま要素外でマウスを離すとクリックイベントが発火しません。そのため、取れる場合と取れない場合ができてしまいます。
クリックイベント以外に良い方法はありますでしょうか。

###補足情報(言語/FW/ツール等のバージョンなど)
jQueryは使えない状況です。

demoです。
https://jsfiddle.net/r2oyggej/2/

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

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

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

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

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

shi_ue

2016/03/24 08:07

実現したとことと、発生している問題が全然別ですけど?何がしたいのかわかりません。「発生している問題」のクリックがドラッグの間違いですか?あと、ソースもよろしくです。
guest

回答2

0

要素の mousedown からブラウザの領域外の mouseup を捉えたい。という質問でしょうか?

上記だとクリックイベントは起こらないのが正常な挙動だと思いますので、画面外でも捉えようとすると、document.onmouseup 辺りで捉えてみるのは、どうでしょうか?

demo では一つを対象にしているため、直接書いても良いと思いますが、もし、複数の要素を対象にするのであれば、onmousedown のタイミングで変数なりに対象を確保しておき、onmouseup で変数が null 以外の場合は、それを調べて対処した後に変数を null にクリアすれば解決するのではないでしょうか?

以上、ご参考になれば幸いです。

投稿2016/03/24 09:13

ps13zier

総合スコア433

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

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

IDLOCK

2016/03/24 10:35

ps13zierさん 御回答ありがとうございます。 onmouseup を使ったやり方でできました。 ありがとうございました。
guest

0

ベストアンサー

Javascript

1var size = document.getElementById("sample").clientHeight; 2document.onmouseup = function() { 3 if (size != document.getElementById("sample").clientHeight) { 4 console.log('resize'); 5 } 6 size = document.getElementById("sample").clientHeight; 7} 8```もうこれでいいんじゃないかと。

投稿2016/03/24 08:43

編集2016/03/24 09:52
shi_ue

総合スコア4437

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

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

IDLOCK

2016/03/24 08:47

shi_ueさん 御回答ありがとうございます。 chromeで右下のドラッグできる部分をドラッグしたまま、マウスを右にずらして要素外で離しても発火出来ますでしょうか?
IDLOCK

2016/03/24 08:51

mousedownでは変更後のサイズではなく、変更前の値が取れてしまうのです。 やはり難しいのでしょうか。
shi_ue

2016/03/24 09:33 編集

mousedownがだめならmouseupでどうでしょう?あ、だめですね。要素の外ですからね。 setIntervalで大きさを監視するのがよさそうだけど、何のために?
IDLOCK

2016/03/24 10:34

shi_ueさん 目的の機能ができました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問