• ベストアンサー

jqueryでセレクトメニュー+スクロール

下記のデモサイトのように http://www.kelvinluck.com/assets/jquery/jScrollPane/tabs_example.html jScrollPaneとjQuery UI tabsを連動させる方法は分かったのですが、 タブの部分をselectメニューにカスタマイズすることは可能でしょうか? .change()を使うとは思うのですが、具体的な記述の仕方が分からず 困っております。 ご教授いただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

#1です。 >jScrollPaneとjQuery UI tabsを連動させる方法は分かったのですが、 と書いてあったので、簡単な回答にしてしまったのですが… >スクロールの高さが固定なら良いのですが、 >それぞれのスクロール領域の高さが異なる場合、 >セレクトメニューの切り替えとうまく連動してくれません・・・ もしかして、スクロールを設定したdivの内容を書換えるような方法をとっているのでは? (その場合に、高さが追随しないのかどうかは確認していませんが) ご提示のサイトでは、スクロールするdivを3個用意しておいて、タブの切替に応じてそれの表示/非表示を切り替えているだけと思いますが? (コードを確認していないので、推測です) ご提示のサイトのソースをサンプルにするならば… (以下、インデントは全角空白で代替しています) 1)HTMLのタブの部分をselectに交換 <select name="tabs" id="tabs">  <option value="tab1" selected>タブ1</option>  <option value="tab2">タブ2</option>  <option value="tab3">タブ3</option> </select> 2)初期セット用のスクリプトを以下に交換  (タブ機能の自作部分とスクロールの初期設定) $(function(){  $("#tabs").change(function(){   var tab = this.value;   $("option", this).each(function(){    var id = this.value;    $("#" + id).css("display", id==tab?"block":"none");   });  });  $('.scroll-pane').jScrollPane();  $("#tabs").change(); }); これで、セレクト内容に応じて同様の動作をすることを確認しました。 当然ながら、UI_tabs用のスクリプトとCSSの読込みは不要となります。

renarena85
質問者

お礼

ありがとうございました!実装できました!

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

tabの選択に応じて対象とする要素(div)の表示/非表示を制御しているだけだと想像しますので、jqueryならわざわざカスタマイズしなくても自作してもたいしたことは無いでしょう。 以下の過去の質問が参考になると思われます。(ほとんど同じなので) onchangeの使用法としてもご参考までに。 http://okwave.jp/qa/q429714.html http://okwave.jp/qa/q6330851.html

renarena85
質問者

補足

スクロールの高さが固定なら良いのですが、 それぞれのスクロール領域の高さが異なる場合、 セレクトメニューの切り替えとうまく連動してくれません・・・ サンプルサイトでは、スクロールの高さがちゃんと可変になってます。 http://www.kelvinluck.com/assets/jquery/jScrollPane/tabs_example.html 自作でもいけるのならそれでも良いのですが・・・

関連するQ&A

  • jScrollPaneでtabが空白になります

    jScrollPaneでtabの中身が空白になってしまいます。 ○jqueryを用いたtab構造 ○中身の領域が超えたらjScrollPaneのスクロールバーが現れる としたいのですが、中身が空白になります。 回避方法をご教授下さい。 WIN IE8およびMAC Safari4で動作確認しながら制作しています。 === ステップ1 === こちらのデモサイトを参考に、制作を進めたところ、 http://www.kelvinluck.com/assets/jquery/jScrollPane/tabs_example.html タブ切り替え時にフェードアウト、フェードインさせるために、 {fx: { opacity: 'toggle', duration: 'slow' } } を追加したところ、 なぜかフェードアウト・フェードインが繰り返されて、点滅してしまいました。 また、各タブについて記入量が多くなると、 ページ下方にどんどん空白のスペースが生まれてしまい、見苦しくなってしまいました。 === ステップ2 === そこで、jScrollPaneはそのままに、 tabのjqueryだけこちらのサイトのものを変更しました。 http://www.pharos-ei.com/mike/jquery/examples/ui.tabs.html (htmlの記述はこちらのサイトを参考にしました。 http://5am.jp/jquery/jquery_ui_tabs/) tab単体で動かすと、 ページ下部に空白が出来ず綺麗にフェードするようになったのですが、 jScrollPaneを同期させると、 タブの中身が完全に空白になってしまいます。 (jScrollPane単体ではちゃんと表示されます) なぜか、タブのタイトルを「新しいウィンドウで開く」と、 そのタブの中身だけは表示されてカスタマイズされたスクロールが現れます。 <script type="text/javascript"> $(function() { $('#ui-tab > ul').tabs( {fx: { opacity: 'toggle', duration: 'slow' } }); $('.scrollpane').jScrollPane(); }); </script> という記述をしておりますが、 もしかしたら予め要素を読み込まないといけないのかな・・・と、 $(function(){  の部分を jQuery.event.add(window,"load",function(){ にしたみたのですが、変化無しでした。 ステップ2の方でかなり制作をすすめてしまったので、 こちらのjqueryで問題を解決したいのですが・・・ どうぞヒントになりそうなポイントを挙げて下さいますよう、お願い致します。

  • JScrollPaneについて

    下記のサンプルページのように、JScrollPaneとuiのtabを組み合わせたものをつくろうと思っています。 http://www.kelvinluck.com/assets/jquery/jScrollPane/tabs_example.html 試行錯誤の末、なんとかサンプルと同じようなものができたのですが、ページ内リンクみたいなものを使って、指定した位置にスクロールを移動させるようなことはできるのでしょうか?色々と試しては見たのですがどうもキレイにできません。 詳しい方、どうかご教授願います。

  • jQueryのtabsについて

    http://www.stilbuero.de/2007/10/23/jquery-ui-tabs-aka-tabs-3/ http://www.stilbuero.de/jquery/tabs_3/ http://www.special-sauce.com/sample/ マウスオーバーでタブ切り替え、かつ自動再生をさせたくて上記2点などのリンク先を参考に作りました。しかし以下のような問題が発生してしまいました。 テキスト1にマウスを置いてアニメーション途中でテキスト2へそしてテキスト1に戻るとアニメーションが途中で止まってしまう。 http://www.stilbuero.de/jquery/tabs_3/rotate.html 上記のデモサイト(こちらはクリックで動きますが。。)でも同じ症状がでるのでJavaScriptを書き足さないといけないのかもしれません。。JavaScriptがイチから書ける人間ではないのでそこをご理解頂いた上でアニメーションが完了するまで次の動きを適応させないなどの解決策をご教授願えないでしょうか。その他ライブラリで実現可能ということであればそちらも教えていただけると助かります。何卒よろしくお願いいたします。

  • jQueryのタブにスクロールバーをつけたい

    jQueryのタブにスクロールバーをつけたい jQueryの「ui.tabs.js」を使ってタブを制作し、「jquery.cookie.js」でタブの内容を記憶し。 さらに、そのタブの中身が設定した枠を超えると「jScrollPane.js」を使って横にスクロールバーがでるようにしたいのですがうまくいきません。 <script src="./js/jquery-1.2.6.js" type="text/javascript"></script> <script src="./js/jquery.cookie.js" type="text/javascript"></script> <script src="./js/ui.core.js" type="text/javascript"></script> <script src="./js/ui.tabs.js" type="text/javascript"></script> <script src="./js/jScrollPane.js" type="text/javascript"></script> <script src="./js/jquery.mousewheel.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() { $('#container1 > ul').tabs({ event: 'click' ,cookie: { expires: 30 } , cache: true}); $('#fra_sl').jScrollPane({scrollbarWidth:13, scrollbarMargin:9}); }); </script> <body> <div id="container1"> <ul> <li id="tab1"><a href="#tab_categry">タブ1</a></li> <li id="tab2"><a href="#tab_all">タブ2</a></li> </ul> <div id="pane1"> <div id="tab_categry"> <p>中身1(省略)</p> </div> <div id="tab_all"> <p>中身2(省略)</p> </div> </div> </div> </body> 以前同じような質問をされていた方がいたのでそちらも参考にして試してみたのですが→http://okwave.jp/qa/q4819862.html javascriptは初心者なものでよくわかりませんでしたorz どなたかわかる方がいましたら教えてもらえないでしょうか??

  • jQuery UI - Tabs

    jQuery UI - Tabsについて質問です。 jQuery UI - Tabsのrotateを利用して、自動的にタブが切り替わり、アクティブなタブの色が変わるといったプログラムを作成しました。 選択されたタブの色をCSSに直接記述してある時は、自動的にアクティブなタブの色が切り替わるのですが、"選択されたタブ.css("#555555")"というよプログラム上で指定した場合は正しく色が切り替わりません。 プログラム上で色を指定した場合でも、正しく色が切り替わるようにするにはどのようにしたらよいでしょうか。 お分かりの方がいらっしゃいましたら、ご教示願います。

  • jQuery UI Tabでタブの一つを新しいウインドウで開きたい

    jQuery UI Tabでタブの一つを新しいウインドウで開きたい jQuery UI Tabを使用してまして、 タブの一つを<div id="ui-tab-xx">の中に表示ではなくて 新しくウィンドウを開いて表示したいのですが、 どのようにカスタマイズすればできますでしょうか。 JS初心者なのでご教授いただければと思います。 使用しているJSは http://allabout.co.jp/internet/javascript/closeup/CU20000121J/ui.tabs.js こちらから拝借しました。 よろしくお願いいたします。

  • jqueryの tabを使用して外部リンクをしたい

    jqueryの tabを使用して外部リンクをしたい このサイトの下の方の マウスオーバーで切り替えを使用しているのですが タブをマウスオーバーで切り替えつつ、 タブ部分をクリックしたら外部にリンクさせるようするには どうしたらいいでしょうか? http://5am.jp/jquery/jquery_ui_tabs/ 以下タグです。 初心者で大変申し訳ありませんが、ご教授ください。 とても困っています。 よろしくお願いいたします。 ************************************************************* <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無題ドキュメント</title> <head> <!-- jQuery --> <script type="text/javascript" src="jquery-1.4.2.js"></script> <script type="text/javascript" src="/jquery-ui-1.8.12.custom.min.js"></script> </head> <body> <script type="text/javascript"> <!-- jQuery( function() { jQuery( '#jquery-ui-tabs' ) . tabs( { event: "mouseover" } ); } ); // --> </script> <div id="jquery-ui-tabs"> <ul> <li><a href="#jquery-ui-tabs-1">タブ1</a></li> <li><a href="#jquery-ui-tabs-2">タブ2</a></li> <li><a href="#jquery-ui-tabs-3">タブ2</a></li> </ul> <div id="tab_area"> <div id="jquery-ui-tabs-1"> <ul> <li>タブ1内容</li> </ul> </div> <div id="jquery-ui-tabs-2"> <ul> <li>タブ2内容</li> </ul> </div> <div id="jquery-ui-tabs-3"> <ul> <li>タブ3内容</li> </ul> </div> <!--/#tab_area--></div> <!--/#jquery-ui-tabs--></div> </body> </html>

  • jQuery タブとスライダーの併用

    jQuery UIを使ったタブの中ひとつひとつにスライダーを置きたいのですが どうしても1つめのタブでしかスライダーが正しく動作しません。 overflow:hidden; が原因なのでしょうか。 どのように書き換えれば動作するようになるでしょうか。 スライダーはflexsliderを http://flexslider.woothemes.com/thumbnail-controlnav.html タブはこちらページを参考にしました http://alphasis.info/2011/07/jquery-ui-tabs-bottom/ css #jquery-ui-tabs { font-size: 12px; color: #666666; } .jquery-ui-tabs-bottom { position: relative; } .jquery-ui-tabs-bottom .ui-tabs-panel { height: 410px;width: 80%; overflow: auto; } .jquery-ui-tabs-bottom .ui-tabs-nav { position: absolute !important; left: 1px; bottom: 1px; right: 1px; padding: 0 0px 0px 0px; } .jquery-ui-tabs-bottom .ui-tabs-nav li { margin-top: -1px; border: 1px solid #d3d3d3 !important; border-top: !important; border-radius: 10px !important; color: #666666; } .jquery-ui-tabs-bottom .ui-tabs-nav li:hover { margin-top: 0px; border: 1px solid #aaaaaa !important; border-top: !important; border-radius: 10px !important; } .jquery-ui-tabs-bottom .ui-tabs-nav li.ui-tabs-selected { margin-top: 0px; border: 1px solid #000 !important; border-top: !important; border-radius: 10px !important; background-color: #cd5c5c !important; } script <script type="text/javascript"> // Can also be used with $(document).ready() $(window).load(function() { $('.flexslider').flexslider({ animation: "slide", controlNav: "thumbnails" }); }); jQuery( function() { jQuery( '#jquery-ui-tabs' ) . tabs(); jQuery( '.jquery-ui-tabs-bottom .ui-tabs-nav, .jquery-ui-tabs-bottom .ui-tabs-nav > *' ) . removeClass( 'ui-corner-all ui-corner-top' ) . addClass( 'ui-corner-bottom' ); } ); </script> HTML <div id="jquery-ui-tabs" class="jquery-ui-tabs-bottom"> <ul> <li><a href="#jquery-ui-tabs-1">その1</a></li> <li><a href="#jquery-ui-tabs-2">その2</a></li> <li><a href="#jquery-ui-tabs-3">その3</a></li> </ul> <div id="jquery-ui-tabs-1"> <div class="flexslider"> <ul class="slides"> <li data-thumb="images/XXX.png"> <img src="images/XXX.png"> </li> <li data-thumb="images/XXX.png"> <img src="images/XXX.png"> </li> <li data-thumb="images/XXX.png"> <img src="images/XXX.png"> </li> </ul> </div> </div> <div id="jquery-ui-tabs-2"> <div class="flexslider"> <ul class="slides"> <li data-thumb="images/XXX.png"> <img src="images/XXX.png"> </li> <li data-thumb="images/XXX.png"> <img src="images/XXX.png"> </li> <li data-thumb="images/XXX.png"> <img src="images/XXX.png"> </li> </ul> </div> </div> <div id="jquery-ui-tabs-3"> <div class="flexslider"> <ul class="slides"> <li data-thumb="images/XXX.png"> <img src="images/XXX.png"> </li> <li data-thumb="images/XXX.png"> <img src="images/XXX.png"> </li> <li data-thumb="images/XXX.png"> <img src="images/XXX.png"> </li> </ul> </div> </div>

  • jQueryでタブの中に表を入れる

    jQueryを使ってページを表示させようと思っています。 その中で、 http://5am.jp/jquery/jquery_ui_tabs/ このタブのメニューの中に http://styler.jp/blog/2013/01/18/handsontable/ こちらの表を入れ込みたいのですが、どうも上手く行きません。 css/jquery.handsontable.full.cssとjs/jquery.handsontable.full.js、js/jquery-2.min.jsを指定するとタブが上手く表示されず、外すとタブは表示されるのですが表が出て来ません。 どなたか似たようなことやったことのある方、ご教授よろしくお願いします。

  • Organic Tabs ( jQuery)

    Organic Tabsという、タブのプログラムを使用しています。 http://css-tricks.com/organic-tabs/ 教えて頂きたいのは、別ページからのタブ(3つタブがあるとしたら、真ん中をcurrentになど)へのダイレクトリンクの方法です。 たとえば)......html?=#tab01 など、URLで指定できるものがベストです。 jQueryTabs では、カスタマイズにより実現しているようです。 素人なのでズバリの記述を教えて頂けるとうれしいです。

専門家に質問してみよう