お世話になります。
ある事情でhtmlの<frame>が使えないのでJavaScriptでこの機能を実現したいと思います。
すなわち、<body>を<div>または<table>で左右(上下)に分割して境界線をドラッグして領域の幅(高さ)を自由に変更したいのですが、どうすればよいかよくわかりません。web検索しましたが例が見つかりませんでした。適当なexampleがあればご紹介よろしくお願いします。
jqueryを使い慣れているのでjqueryのプラグインか何かの例があればありがたいのですが、そうでなくての結構です。特に限定しません。よろしくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
回答がないみたいなので…
jqueryはよく知らないけど、基本的にはカーソルの位置を取得して、ドラッグ量に応じてdivなどのサイズを変更してあげればできると思う。
jquery知らないけど、とりあえずのサンプルとして適当に作成してみた。
イベント発生元の取得方法がわからないので、jquery的でない書き方になっている。あと、クロスブラウザもあやしいかも。(IE6で動作確認)
そのへんは適宜修正してください。
サンプルなので、<div>の高さ方向の変更のみです。
<html>
<head>
<style type="text/css">
#div1 { width:600px; height:300px;
background-color:yellow; overflow:hidden; }
#div2 { width:600px; height:300px;
background-color:azure; overflow:hidden; }
</style>
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
var udf = false, mvf = false;
$(function() {
$("body").mousedown(function() {udf = true;});
$("body").mouseup(function() {udf = false;});
$("body").mousemove(test);
});
function test(evt) {
var tmp = evt?evt.target.id:event.srcElement.id;
var f = (tmp == 'div1' || tmp == 'div2');
tmp = evt?evt.clientY:event.clientY;
var d = tmp - $("#div2").offset().top;
if (f && udf && mvf) {
var h1 = $("#div1").height() + d;
var h2 = $("#div1").height() + $("#div2").height() - h1;
if (h1>0 && h2>0) {
$("#div1").height(h1); $("#div2").height(h2); d = 0;
}
}
mvf = (f && Math.abs(d)<6);
$("body").css("cursor",mvf?'row-resize':'auto');
}
</script>
</head>
<body name="bdy">
<div id="div1">a</div>
<div id="div2">b</div>
</body>
</html>
この回答への補足
もっとよいjqueryのプラグインを見つけました。
以下のサイトです。
http://layout.jquery-dev.net/demos.html
労作をどうもありがとうございます。
その後私もいろいろ探しまして、jqueryプラグインでsplitterを見つけました。
以下のJqueryサイトからTry out a demonstrationをクリックするとデモが表示されます。
http://plugins.jquery.com/project/IngenySplitter
ありがとうございます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript スマホ上で、左右スワイプで次のページに移動させたいです 2 2022/11/11 17:04
- HTML・CSS アドバイスを下さい。 1 2022/10/08 01:18
- Instagram HTML5の廃止とJavaScript 2 2022/04/13 21:05
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- 憲法・法令通則 道交法についての質問です 3 2023/01/16 14:17
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- その他(プログラミング・Web制作) 次に、楽天のアジャイル就活に参加して、1日で内定を獲得できる。私は大企業に就職できる? 2 2022/04/17 13:38
- JavaScript 階層別の組織図の自動作成について 1 2022/10/26 13:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
removeEventListenerについて
-
クリックで色変更後に既に変更...
-
読み込んだQRコードをフォーム...
-
表示・非表示のスクリプトで、...
-
マウスを乗せるとメニュー表示
-
バッチファイルでカウントアッ...
-
removeAttribute()メソッドで削...
-
タブで開いてさらにタブ内をア...
-
console.log結果をhtmlで表示し...
-
折りたたみ部分にアンカーでリ...
-
createElementで作成した要素を...
-
多次元配列を連想配列へ変換したい
-
HTMLタグに複数のクラスを設定...
-
取得した要素がインライン要素...
-
javascriptでスタイルを動的に...
-
getElementByIdの戻り値がnull...
-
document.getElementById( ).st...
-
CSSで指定したwidthをマウスで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
読み込んだQRコードをフォーム...
-
createElementで作成した要素を...
-
removeEventListenerについて
-
IFRAMEの表示/非表示を切り替え...
-
タブで開いてさらにタブ内をア...
-
変数名をどのようにつけるのが...
-
クリックで色変更後に既に変更...
-
表示・非表示のスクリプトで、...
-
HTMLとJavaScriptで作ったタイ...
-
console.log結果をhtmlで表示し...
-
jQueryでクリックされた要素のi...
-
HTMLタグに複数のクラスを設定...
-
指定したパスが現URLに含まれて...
-
iframe内のリンクが飛ばないの...
-
背景色を透明化
-
テキストエリア内の一部の文字...
-
変数内容をHTML内で表示する方法
-
classの中の<a>タグにidを追加
おすすめ情報