frameはnoresizeを指定しなければ、マウスドラックでサイズの変更ができますが、同じような事をframeを使わずにCSSとjavascriptで出来ないものでしょうか?
具体的に言うと、以下に示すhtmlの20%,80%のwidthをマウスドラックで変更できないでしょうか?
<html>
<head>
<style type="text/css">
#f1 {
float:left;
width:20%;
overflow: auto;
background-color : #ffd2ff;
}
#f2 {
float:right;
width:80%;
background-color : #e0fef8;
}
</style>
</head>
<body>
<div id="f1">f1</div>
<div id="f2">f2</div>
</body>
</html>
No.2ベストアンサー
- 回答日時:
コンテンツが多いと動きがぎこちなくなったりします。
特にIEは処理が遅いですから。
それと元々Netscape系に多い(IEでもある)マウスアップの感知タイミングの問題で、
一度クリックしないとマウスアップを感知しない状況が出てしまうケースはこの手のJavaScriptにはつきまといます。
あと、様々なケースに関しては何もテストしていませんので、コンテンツ次第でどうなるか・・・。
<html>
<head>
<style type="text/css">
#f1 {
float:left;
width:20%;
overflow: auto;
background-color : #ffd2ff;
}
#f2 {
float:right;
width:80%;
background-color : #e0fef8;
}
#space {
float:left;
width:5px;
background-color : #ffffff;
cursor:E-resize;
}
</style>
</head>
<body>
<script>
window.onload = function(){
var Drag = 0, i = function(id){ return document.getElementById(id) };
i('space').onmousedown = function(){ Drag = 1; }
document.onmouseup = function(){ Drag = 0; }
document.onmousemove = function(e){
if(!Drag){ return false; }
var ev = window.event || e;
var W = document.body.offsetWidth || document.documentElement.offsetWidth;
var L = parseInt( ev.clientX/W *100, 10);
var R = 100 - L;
if(L >1 && R > 1){
i('f1').style.width = L + '%';
i('f2').style.width = R + '%';
}
}
}
</script>
<div id="f1">f1</div>
<div id="f2">
<div id="space"></div>
f2</div>
</body>
</html>
素早いご回答ありがとうございます。
>それと元々Netscape系に多い(IEでもある)マウスアップの感知タイミングの問題で、
時々くっ付いちゃうんですね。(IE,FF,Operaを試したら、Operaは再現せず)
ActionScript(Flash)で同じような経験があります。そのときは、rereaseOutsideってイベントでDrag = 0って感じで直りました。
No.1
- 回答日時:
思いっきり面倒なことをやればできないことはないですが
苦労のわりに得るものがすくないのでお勧めできません。
とくにブラウザごとに処理がことなるのでかなり煩雑になりそうな
予感がします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クリックで色変更後に既に変更...
-
背景色を透明化
-
指定したパスが現URLに含まれて...
-
javascriptテキストBOX色を元に...
-
座標を取得して、後でその位置...
-
CSSのID名に配列を使えませんか?
-
jquery.cookieを利用しての表示
-
javascriptによるスクロールを...
-
iframe内のリンクが飛ばないの...
-
MAX関数を使ってからLEFT JOIN...
-
スタイルシート(CSS)で、高さ...
-
キャラクターがぴょこんと飛び...
-
c++std::string型をTCHARに変換...
-
外部javascriptの重複を防ぐには
-
JSの変数をHTMLに渡す方法
-
リンク先を動的に変更する
-
透過pngの透明部分以外をクリッ...
-
jquery ドロップダウンメニュー...
-
【助けてください】POST受信の...
-
Ajax LightBoxを使用したサムネ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
iframe内のリンクが飛ばないの...
-
javascriptテキストBOX色を元に...
-
createElementで作成した要素を...
-
背景色を透明化
-
IFRAMEの表示/非表示を切り替え...
-
console.log結果をhtmlで表示し...
-
removeEventListenerについて
-
表示・非表示のスクリプトで、...
-
読み込んだQRコードをフォーム...
-
jQueryでクリックされた要素のi...
-
removeAttribute()メソッドで削...
-
テキストエリア内の一部の文字...
-
jQueryのアコーディオンメニュ...
-
javascriptでpostした値が取得...
-
テキストボックスに入力された...
-
jQueryでシンプルドラッグドロ...
-
jQueryで同じid属性が複数あっ...
-
ページ遷移後のcssプロパティ保持
-
自働生成される<div>タグに連番...
おすすめ情報