• 締切済み

JScrollPaneについて

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

みんなの回答

  • my--
  • ベストアンサー率89% (91/102)
回答No.1

質問者さんが色々と試した内のひとつかも知れませんが 提示のサンプルページをすこし触ってみました。 var tabs = $('#tab-me').tabs(); var tabAnchors = tabs.find('a'); var panes = $('.scroll-pane').jScrollPane(); // <a href="#p1" class="page-links">#p1</a> $('.page-links').bind('click', function() {  var id = this.hash;  // id要素探索  tabAnchors.each(function(i) {   var target = $(this.hash).find(id); // id要素抽出   if (target.length > 0) { // 要素があれば    tabs.tabs('select', i); // タブ選択    panes[i].scrollTo(id); // スクロール    return false; // 探索終了   }  });  return false; }); こんな感じで良かろうと思ったんですが、見込み違いでかなり不安定です。 jScrollPaneとUI tabs(CSS絡み?)の相性が悪いのか、普通にやってもダメっぽい。(私はお手上げ) 因みに。 var tabs = $('#tab-me').tabs(); var tabAnchors = tabs.find('a'); //var panes = $('.scroll-pane').jScrollPane(); //<a href="#p1" class="page-links">#p1</a> $('.page-links').bind('click', function() {  var id = this.hash;  // id要素探索  tabAnchors.each(function(i) {   var target = $(this.hash).find(id); // id要素抽出   if (target.length > 0) { // 要素があれば    tabs.tabs('select', i); // タブ選択    var parent = target.parent();    var positionP = parent.position(); // 親要素位置オブジェクト    var positionT = target.position(); // id要素位置オブジェクト    parent.scrollTop(positionT.top - positionP.top + parent.scrollTop()); // スクロール    return false; // 探索終了   }  });  return false; }); jScrollPaneを外すとすこしは安定するみたいです。(回答にはなってませんけど)

関連する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で問題を解決したいのですが・・・ どうぞヒントになりそうなポイントを挙げて下さいますよう、お願い致します。

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

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

  • 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>

  • タブの切り替えについて

    こちら(http://5am.jp/jquery/jquery_ui_tabs/)のサイトを参考に JSはそのまま使用し、CSSのみ少し手を加えて、タブの切り替えを作成したのですが、 タブを切り替える度にページトップへスクロールしてしまいます。 JSに手を加えてこれを回避する方法はあるのでしょうか?

  • タブ切り替えが出来るjavascriptを使用しています。

    タブ切り替えが出来るjavascriptを使用しています。 http://5am.jp/jquery/jquery_ui_tabs/ ここのサイトを参考にしてタブ切り替えが動くところまで行きましたが、 どうにかして、別ページからリンクをクリックした時に、特定のタブへ直接飛ぶようにしたいと思っています。 <script type="text/javascript">  $(function() {   $('#ui-tab > ul').tabs({ fx: { opacity: 'toggle', duration: 'fast' } });  }); </script> ヘッダーにある上記の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 どなたかわかる方がいましたら教えてもらえないでしょうか??

  • ui.tabs.jsとjScrollPane.jsの連動について

    いつもお世話になっております。 先日質問させていただいた内容に補足させていただきます。 Ui.Tabs.jsとjQuery1.2.6.jsを使ってタブを動作させ、そのコンテンツが表示領域に収まらなかった場合、jScrollPane.jsを使用してスクロールバーを表示したいと考えています。それぞれ一応動作するまでには到っているのですが、タブを切り替えた時にスクロールバーの長さがリサイズされず、タブの変移にjScrollPaneが対応してくれません。 そこでタブをクリックしたときにjScrollPaneを再度読み込むようにしてみたのですが、下記記述だとクリック前のコンテンツの長さに対応したスクロールバーが表示されてしまいます。 Ui.Tabs.jsの動作の完了後にjScrollPaneを再度読み込むように(クリック後のコンテンツの長さに対応したスクロールバーが表示されるように)スクリプトを組むことはできないでしょうか。ご教授よろしくお願い致します。 #layer1 { height: 500px; width: 600px; position: relative; top: 110px; overflow: auto; visibility: visible; } <script type="text/javascript"> $(function(){ $('#tab > ul').tabs({ fx:{ opacity: 'toggle',duration:500 } }); $('#layer1').jScrollPane({scrollbarWidth: 12}); $('#nor1,#mor12,#ho1,#hov12').click(function(){ $('#layer1').jScrollPane({scrollbarWidth: 12}); }); }); </script> </head> <body> <div id="tab"> <ul> <li><a href="#fragment-1"><span><img id="mon1" src="../diary/2009/1/diary-1mon-nor.png" alt=""/></span></a></li> <li><a href="#fragment-2"><span><img id="mon2" src="../diary/2009/2/diary-12mon-nor.png" alt=""/></span></a></li> <li><a href="#fragment-3"><span><img id="mon3" src="../diary/2009/3/diary-1mon.png" alt=""/></span></a></li> <li><a href="#fragment-4"><span><img id="mon4" src="../diary/2009/4/diary-12mon.png" alt=""/></span></a></li> </ul> <div id="layer1"> <div id="fragment-1"><img src="../2009/1/content-diary-1.png" alt="" width="520" height="950" border="0" /> </div> <div id="fragment-2"><img src="../2009/2/content-diary-2.png" alt="" width="520" height="453" border="0" /> </div> <div id="fragment-3"><img src="../2009/3/content-diary-3.png" alt="" width="520" height="1150" border="0" /> </div> <div id="fragment-4"><img src="../2009/4/content-diary-4.png" alt="" width="520" height="1150" border="0" /> </div> </div> </div> </body>

  • 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 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のui.tabのcookieについて

    jQueryのui.tabのcookieについて ブログのサイドバーにタブメニューを設置して、ユーザーがタブをクリックするとそのタブを記憶して同じブログ内の別のページへ移動してもそのタブの内容が表示されるというものを作ろうと思い、 jQueryのui.tabで作ったタブにjquery.cookieを利用してクッキーを保存するようにしたんですが… $('#container1').tabs({event:'click',cookie: { expires: 30 },cache:true}); タブをクリックして同じブログ内の別のページへ移動するとタブが初期状態に戻ってしまいます。 どなたか改善策を知っているかたは教えてもらえないでしょうか??よろしくお願いします!!

専門家に質問してみよう