ブラウザのサイズを変えたら、divのボックスの高さも合わせて
可変できるようにしたいです。
さらに、可変したdivのボックスの高さより内容量が多い場合は
ブラウザのスクロールバーのようにCSSのoverflow:autoで
スクロールが表示されるようにしたいと考えております。
現時点で、スクロールバーはオリジナルの画像で作成しており、
表示させるのにjScrollPane.jsというJavaScriptを使用しています。
しかし高さが固定されており、カスタマイズしようと思っているのですが
なかなかうまくいきません。
どなたか、実現方法をご教授願えますでしょうか。
よろしくお願いいたします。
※情報不足であれば、追記いたしますのでご指摘お願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
CSSで、divのボックスのwidthとheightを%単位で指定しておけば、
ブラウザのサイズを変えても、追随しませんか?
スクロールバーはoverflow:autoでブラウザーのスクロールバーを
使った方がよっぽど手間がないですけど....
暇があったら、jScrollPane.js探してみます。
この回答への補足
お返事ありがとうございます。
%指定したのですが、divのボックスのサイズは追随されず
ブラウザのスクールバーが表示されている状況です。
サンプルをダウンロードしたサイトはこちらです↓
http://css-tricks.com/styling-scrollable-areas/
今回は、スクロールバーをオリジナルなものにするということが
必須なので困っています。
何か、おわかりになることがございましたら
よろしくお願いいたします。
No.2
- 回答日時:
div の可変の件だけ。
body タグに onresize イベントをバインドして、JavaScript で処理(Window の clientWidth とかを調べて div.style.pixelWidth を変更)等してしまったらどうでしょうか。
http://javascriptist.net/ref/event.onresize.html
ブラウザ依存については調べる必要ありそうですが。。。
No.3
- 回答日時:
No.1です。
jScrollPane.jsはjQueryでしたね。
↓のようにすればできました。
スクロールさせたい<div id="box"><div>を常にブラウザーのwindowの
30%の高さにしています。
$(function(){
$('#box').jScrollPane({reinitialiseOnImageLoad:true});
$(window).resize(function() {
$('#box').jScrollPaneRemove();
$("#box").height(parseInt($(window).height()*0.3));
$('#box').jScrollPane();
});
});
この回答への補足
お返事ありがとうございます。
ご教授どおりに設定したつもりが、何かの記述がまちがっているせいか
思うように動作してくれません。
現状は以下のように指定しております。
ブラウザのサイズに変化にあわせ、<div>の高さが変化しない状況です。
表示領域にあわせスクロールバーの表示非表示も制御したいのですが・・・
すみません。jQuery初心者のため、ご迷惑お掛けしますが
何卒、よろしくお願いいたします。
■html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<title></title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
<script type="text/javascript" src="js/jquery-1.2.6.min.js"></script>
<script type="text/javascript" src="js/jScrollPane.js"></script>
<script type="text/javascript">
$(function(){
$(".scroll-pane").jScrollPane({reinitialiseOnImageLoad:true});
$(window).resize(function() {
$(".scroll-pane").jScrollPaneRemove();
$(".scroll-pane").height(parseInt($(window).height()*0.8));
$(".scroll-pane").jScrollPane();
});
});
</script>
</head>
<body>
<div class="scroll-pane">
ほげほげ
</div>
</body>
</html>
■style.css
.scroll-pane {
width: 341px;
overflow: auto;
padding-right: 10px;
padding-bottom: 20px;
}
.jScrollPaneContainer {
position: relative;
overflow: hidden;
z-index: 1;
}
.jScrollPaneTrack {
position: absolute;
cursor: pointer;
right: 0;
top: 0;
height: 100%;
}
.jScrollPaneDrag {
position: absolute;
background: url(../images/ball.png) no-repeat center top;
cursor: pointer;
overflow: hidden;
}
No.4
- 回答日時:
私が験したところ、ご提示の記述とほぼ同じにしましたが、
出来てます。
違うところ
・{reinitialiseOnImageLoad:true}は関係なさそうなので割愛
・jQueryのバージョンは最新 1.4
・jquery.em.jsも追加している(関係してるかも?)
・jquery.mousewheel-3.0.2.pack.jsも追加してる(関係ないだろう)
・HTML5にしてる(別にXHTML 1.0 Transitionalでも同じはず)
・あなたの外部"css/style.css"は当然、私のには当然無い
といったところです。
この回答への補足
詳しいご説明ありがとうございました!
ソースも公開していただき、なんとか希望どおりの動きになりました。
一つだけ、お聞きしたいことがあります。
IE6で確認すると、ブラウザサイズに追随せず一回リロードしてから、表示領域がリサイズされるのですがこれは、解決できるのでしょうか?
何度も申し訳ございませんが、もし解決方法をご存じであれば、よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- PHP アップロードファイルの数に応じてCSSを動的に変更したいのですが、方法がわかりません 3 2023/07/23 21:59
- HTML・CSS flex の各子要素を横幅 100% にしたい 1 2022/09/22 21:25
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Jqueryの干渉について
-
javascript外部読み込みの際の引数
-
map とlightbox
-
<a href="#" …>の意味を教えて...
-
JavaScriptからVBScriptの呼び...
-
SQLのWHEREで全てを質問する方法
-
html メールリンクにて自動ファ...
-
bodyにidをつける理由は何ですか?
-
別ファイルのfunctionの読み込み方
-
ページの読み込みが完了してか...
-
新しいウィンドゥを最大化で立...
-
<script>...</script> 要素の内
-
javascriptとApacheの設定
-
HTMLソースからURLだけを抜き出...
-
lightwindowでPDFを表示させる...
-
SCRIPT5007: 未定義または NULL...
-
外部からのjs呼び出しについて。
-
子フレームの自動リロードは可...
-
横スクロールを右から左へ・・・
-
外部JavaScriptの設置場所について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
base64encodeでの文字化けについて
-
複数のjavascriptを使うと動か...
-
jqueryでのkeydownイベント発生...
-
Jqueryの干渉について
-
Base64に変換したHTMLの<script...
-
プラグイン無しでContactform7...
-
jQuery-datepicker on IE8
-
サイトにアクセスした際、数秒...
-
jQuery が動作しません。
-
javaスクリプトについて質問で...
-
jQueryでloadした要素の操作が...
-
jqueryについて(Lightboxとbxs...
-
scrollsmoothly.jsが動かない
-
JavaScriptで背景や文字色を色→...
-
jQuery UIのdraggableについて
-
colorboxの直接呼び出し方法に...
-
「jquery.csv2table.js」から生...
-
●jQuery;スクロールでついてく...
-
jQueryのdraggable縦書き出来ま...
-
Camera slideshowの使い方について
おすすめ情報