jQueryを使用したギャラリーで枚数の表記が表示されない理由

このQ&Aのポイント
  • jQueryを使用して作成したギャラリーで、枚数の表記が表示されない理由が分かりません。
  • 質問者は「.html('('+ (nextIndex+1) +' of '+ (this.data.length) + ')');」の部分が表記部分だと思っているが、理解ができずに困っているようです。
  • 誰か教えてもらえると助かります。
回答を見る
  • ベストアンサー

jQueryを使用したギャラリー

下記、スクリプトを書きましたが、 Prev / Nextは表示されるのですが、枚数の取得→ (1 of 4) このような表記が表示されません。 なぜでしょうか? .html('('+ (nextIndex+1) +' of '+ (this.data.length) + ')'); この部分がその表記部分だと思うのですが、、、 なにぶん、素人なもので理解が出来ず。 どなたかご教授頂けたらと思います。何卒宜しくお願い致します!!!!! jQuery(document).ready(function($) { // We only want these styles applied when javascript is enabled $('div.content').css('display', 'block'); $(".each-gallery").each(function(i){ // Initially set opacity on thumbs and add // additional styling for hover effect on thumbs var onMouseOutOpacity = 0.67; // Initialize Advanced Galleriffic Gallery var gallery = $('#thumbs' + i).galleriffic({ delay: 600, numThumbs: 10, preloadAhead: 10, enableTopPager: false, enableBottomPager: false, imageContainerSel: '#slideshow'+ i, controlsContainerSel: '#controls'+ i, captionContainerSel: '#caption'+ i, loadingContainerSel: '#loading'+ i, renderSSControls: false, renderNavControls: true, prevLinkText: 'Prev', nextLinkText: 'Next', nextPageLinkText: 'Next &rsaquo;', prevPageLinkText: '&lsaquo; Prev', autoStart: false, syncTransitions: false, defaultTransitionDuration: 600, onSlideChange: function(prevIndex, nextIndex) { // 'this' refers to the gallery, which is an extension of $('#thumbs') this.find('ul.thumbs') .hide(); this.find('ul.thumbs').children() .eq(prevIndex).fadeTo('fast', onMouseOutOpacity).end() .eq(nextIndex).fadeTo('fast', 1.0); // Update the photo index display this.$captionContainer.find('div.photo-index') .html('('+ (nextIndex+1) +' of '+ (this.data.length) + ')'); }, onPageTransitionOut: function(callback) { this.fadeTo('fast', 0.0, callback); }, onPageTransitionIn: function() { var prevPageLink = this.find('a.prev').css('visibility', 'hidden'); var nextPageLink = this.find('a.next').css('visibility', 'hidden'); // Show appropriate next / prev page links if (this.displayedPage > 0) prevPageLink.css('visibility', 'visible'); var lastPage = this.getNumPages() - 1; if (this.displayedPage < lastPage) nextPageLink.css('visibility', 'visible'); this.fadeTo('fast', 1.0); } }); gallery.find('a.prev').click(function(e) { gallery.previousPage(); e.preventDefault(); }); gallery.find('a.next').click(function(e) { gallery.nextPage(); e.preventDefault(); }); function pageload(hash) { // alert("pageload: " + hash); // hash doesn't contain the first # character. if(hash) { $.galleriffic.gotoImage(hash); } else { gallery.gotoIndex(0); } } }); // Initialize history plugin. // The callback is called at once by present location.hash. /****************************************************************************************/ }); $('.linkToPrevWorks').children().click(function(){ $(this).parent().next().children('.toggleWrapper').fadeIn(900); $(this).parent().css("display","none"); }); jQuery(document).ready(function($) { $('.imgWrapper').children().next('img').css("margin-top", "20px") });

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

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

よくわからないけれど、これかな? http://www.twospy.com/galleriffic/example-5.html 斜め読みだけれど、HTML内に  <div class="photo-index"></div> ってちゃんとありますか? 1)まずデモと同じものを用意して動作することを確認。 2)自分の思っているものに、一部セッティングを修正して、再度確認。 3)動かない場合は直前の修正がおかしい。 一度に全部変えないで、こまめに2)と3)を繰り返すようにすれば、どこが悪いのかわかるのでは?

chibita_sakuan
質問者

お礼

ご回答ありがとうございます! 非常に参考になりました。 色々と試してみます!

関連するQ&A

  • jQueryサンプルを使用したギャラリーの切換方法

    Gallerifficを使用してギャラリーを制作中です。 http://www.twospy.com/galleriffic/ こちらのexample-2.htmlを元にして、このギャラリーのサムネイルの上部と下部にあるページリンク(1 2 Next とある ページのリンクの部分)をタブのように扱いたかったのですが、cssが読める程度の私では、わかりませんでした。 せめて(1 2 Next)部分を個別画像で指定できる方法が有るのか無いのか知りたいです もし有るのであれば、どこを直せば良いのか、ご指導お願いしたします。

  • jqueryについて困っております。

    下記のスライドショーを同一ページ内に複数つけたいのですが、 バグがでてしまいます。 おそらく変数がバッティングしてしまっていて、photogallery1とphotogallery2が 干渉しあわないようにしたいのですが、どのようにしたらいいかわかりません。 ご教示いただければ幸いです。 すみません大変急いでおりまして、出来ればすぐに皆様のお力を貸していただければ と思っております。よろしくお願いいたします。 $(function(){ pg('#photogallery1'); pg('#photogallery2'); function pg(selector){ $(selector).each(function(){ var photo = $(".photoBox").find('li'); var thumb = $(".thumbBox").find('li'); var fadeSpeed = 400; var changeSpeed = 4000; var photoLength = photo.length; var nowBox = 0 photo.filter(":not(':eq(0)')").hide(); var timer = setInterval(slideshow , changeSpeed); function slideshow(){ if(nowBox == photoLength - 1){ photo.fadeTo(fadeSpeed , 0); nowBox = 0; photo.eq(nowBox).fadeTo(fadeSpeed , 1); }else{ photo.fadeTo(fadeSpeed , 0); nowBox ++; photo.eq(nowBox).fadeTo(fadeSpeed , 1); } }; thumb.hover(function(){ clearInterval(timer); $(this).stop().fadeTo(fadeSpeed , 0.6); nowBox = $(this).index(); photo.stop().fadeTo(fadeSpeed , 0) .eq(nowBox).stop().fadeTo(fadeSpeed , 1); },function(){ timer = setInterval(slideshow , changeSpeed); $(this).stop().fadeTo(fadeSpeed , 1); }); }); }; });

  • HTML内への2つのJavaScriptの書き込みについて

    お世話になります。 この1週間皆様のお力をお貸しいただいて ようやくほぼ完成というところまでこぎつけました!! 本当に皆様のご協力に感謝です!ありがとうございます。 HTML内に、JavaScriptファイルへのリンクが2点 そのほかにJ Queryのギャラリーを利用しているため、 HTMLに直接書いてある 下記Javascriptがあります。 $('#thumbs-adv ul.thumbs li').css('opacity', onMouseOutOpacity) .hover( function () { $(this).not('.selected').fadeTo('fast', 1.0); }, function () { $(this).not('.selected').fadeTo('fast', onMouseOutOpacity); } ); $(document).ready(function() { var galleryAdv = $('#gallery-adv').galleriffic('#thumbs-adv', { delay:2000, numThumbs:16, <省略. . . . . . > onTransitionOut:function(callback) { $('#slideshow-adv, #caption-adv').fadeOut('fast', callback); }, onTransitionIn:function() { $('#slideshow-adv, #caption-adv').fadeIn('fast'); }, onPageTransitionOut:function(callback) { $('#thumbs-adv ul.thumbs').fadeOut('fast', callback); }, onPageTransitionIn:function() { $('#thumbs-adv ul.thumbs').fadeIn('fast'); } }); var galleryMin = $('#gallery-min').galleriffic('#thumbs-min', { imageContainerSel:'#slideshow-min', controlsContainerSel:'#controls-min' }); }); ここに、まだ他のJavaScriptをHTMLページ内に 追加したいのですが、追加すると、 J queryのギャラリーの表示がなくなってしまいます。 追加したいJavaScriptは以下です。 <script type="text/javascript" charset="UTF-8"> var M0, M1; /*@if(1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/  'load', function () {   var cnt = 0, I, o;   var UL = document.getElementById('gazou');   var LI = UL.getElementsByTagName('LI');   var MI = document.getElementById('menu-index');   document.getElementById('num1').firstChild.nodeValue = I = LI.length;   for (var i = 0; i<I; i++) {    o = document.createElement('LI');    o.appendChild(document.createTextNode('○'));    o.id = 'idx-' + i;    MI.appendChild(o);   }   (M1 = LI[0]).style.zIndex = 2;  }, false); document./*@if(1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/  'mouseover', function (evt) {  var e = evt./*@if(1) srcElement @else@*/ target /*@end@*/;  var p = getParent(e, 'id', 'menu-index');  var n;    if (M0) { M0.firstChild.nodeValue = '●'; M0.style.color = ''; M0 = null; }  if (p && e.nodeName == 'LI') {   e.firstChild.nodeValue = '●';   e.style.color = 'red';   M0 = e;   n = e.id.match(/-(\d+$)/)[1];   document.getElementById('num0').firstChild.nodeValue = n - 0 + 1;   Image('gazou', n);  } }, false); function getParent(node, type, val) {  return node ? (val == node[type]) ? node: arguments.callee(node.parentNode, type, val): null; } function Image (id, vno) {  var a = 100, LI = document.getElementById(id).getElementsByTagName('LI')[vno];if (LI == M1) return;  var P = (function L () {   M1.style./*@if(1) filter = 'Alpha(opacity=' + a +')' @else@*/ opacity = a/100 +'' /*@end@*/;   if ((a-=20)<0) M1.style.zIndex = 0 +'', LI.style.zIndex = 2 +'', M1 = LI; else setTimeout(L, 30);  });  LI.style.zIndex = 1;  LI.style./*@if(1) filter = 'Alpha(opacity=100)' @else@*/ opacity = '1' /*@end@*/;  P(); } // --> </script> HTML内に書き込むJavaScriptは1つでないといけないのでしょうか? また、この問題を解決するには、どうすればよいでしょうか? よろしくご教授お願いいたします!!!

  • jQueryを使用してのメガメニューの記述

    色々試してみたのですが、どうしてもわからず、 どうかお知恵をおかしください。 宜しくお願いいたします。 こちらの紹介サイトを参考に、メガメニューを作成しております。↓ http://codesign.verse.jp/jquery/2009/08/megamenu.html メガメニューボタンにマウスオーバーしたときに、 DIVに指定しているmm-div内のものが表示されるよう指定されているのですが、 そのメニューの中でいくつかmm-divのサイズを変更したく、 それに伴いjQueryで表示させる位置の指定を複数記述したいのですが、 jQueryを勉強不足のため、どうしてもうまくいきません。 mm-divはCSSでサイズを記述しているので、 別途指定するものとして新しいDIVに指定するタグとして mm-div2を準備しましたが、1つに連動してしまいます。 説明べたで申し訳ありませんが、 mm-divとmm-div2それぞれに別の位置が指定できる記述に仕方を教えてください。 $(function(){ var target=$("div#megamenu"); var tli=$("ul#mm-ul > li.mm-li"); var tdi=$("div.mm-div",tli); /* if($.browser.msie && ($.browser.version<8)){ var th=; }else{ var th=0; } */ tli.hover( function(){ $("*:animated",tdi).hide(); $(this).animated(); }, function(){ tdi.hide(); } ); $.fn.animated=function(){ var posx=$(this).offset().left+tdi.width(); var posbase=tli.offset().left+target.width(); /*地味に計算するための場所orz $("p#showpos").text(posx); $("p#winwidth").text(posbase); */ tdi.hide(); if(posx>posbase){ $(this).children() .css("left",-posx+target.width()) .css("top","25px") .fadeIn("fast"); }else{ $(this).children() .css("left","5px") .css("top","25px") .fadeIn("fast"); } return $(this); } });

  • jqueryについて

    サムネイルをマウスオーバーすると#targetに拡大画像を表示するものなのですがマウスオーバーで 切り替わりマウスアウトで元に戻るとこまではいいのですがフェードが全く効きません。 いろいろ試したところ$(".thumbnail a img")に変えるとフェードはするのですが今度は画像が 切り変わらなくなってしまいす。両者実装するにはどのように書き換えればいいのでしょうか? $(document).ready(function() { var originSrc = $("#target").attr("src"); $(".thumbnail a") .fadeTo(1,1) .hover( function() { var changeSrc = $(this).attr("href"); $("#target").attr("src", changeSrc); $(this).fadeTo(200, 0.5); }, function() { $("#target").attr("src", originSrc); $(this).fadeTo(500, 1); } ) });

  • jqueryで作ったアコーディオンメニューの挙動

    jQuery初心者です。 http://triplexxx.jp/archives/150 こちらのサイトを参考にアコーディオンメニューを作成しました。 スムーズなスライドのメニューは出来たのですが、 どのメニューもリンクが効きません。 return falseをreturnに変えると効くようになりますが、 当然のことながらページのトップに遷移してしまいます。 どなたか解決策をご存知の方がいらっしゃいましたらご教授下さい。 いちお自分が書いたコードを載せておきます =================================================== var j$ = jQuery; j$(function(){ j$(".acc").each(function(){ j$("li > a", this).each(function(index){ var $this = j$(this); if(index > 0) $this.next().hide(); var params = {height:"toggle", opacity:"toggle"}; $this.click(function(){ j$(this).next().animate(params, {duration:"fast"}).parent().siblings().children("ul:visible").animate(params, {duration:"fast"}); return; }); }); }); }); ===================================================

    • ベストアンサー
    • AJAX
  • jQUery:フェードアニメーションについて

    jQueryのスライドショーをサイトに配置しようと考え、下記URLのソースを 参考にしようとしています。皆様のお知恵をお貸しいただければ 幸いです。 http://jsdo.it/TFujinami/8EaB こちらのソースで、フェードアニメーションで メインイメージを変化させたいのですが、 どこを修正すればよいのでしょうか。 $(function(){ var slider_interval = 4000; var slider_now = 0; var slider_max = 0; var slider_mouseover = false; var slider_img_width = $("#slider").width(); var slider_href = new Array(); function sliderScroll(){ slider_now++; if (slider_now > slider_max){ slider_now = 0; } sliderAnimation(slider_now, 'slow'); } function sliderAnimation(index, speed){ $('#slider .gallery .inner').animate({'margin-left':index * -1 * slider_img_width + 'px'}, speed, function(){ $('#slider .thumbnail div').removeClass('now'); $('#slider .thumbnail div:eq(' + index + ')').addClass('now'); $('#slider .frame a').attr('href', slider_href[index]); }); } var sliderLoop = function(){ if (! slider_mouseover){ sliderScroll(); } slider_scroll_timer = setTimeout(sliderLoop, slider_interval); } $('#slider .thumbnail div').mouseover(function(ev){ slider_mouseover = true; slider_now = $(this).attr('data-sliderid') - 0; sliderAnimation(slider_now, 'fast'); }); $('#slider .thumbnail div').mouseout(function(ev){ slider_mouseover = false; }); $('#slider .gallery .inner div').each(function(){ $(this).css('margin-left', slider_max * slider_img_width + 'px'); $(this).css({'position':'absolute', 'margin-top':'0px'}); slider_href.push( $(this).find('a').attr('href') ); slider_max++; }); slider_max = 0; $('#slider .thumbnail div').each(function(){ $(this).attr('data-sliderid', slider_max); $(this).find('img').wrap( $('<a>').attr({'href':slider_href[slider_max], 'target':'flickr'}) ); slider_max++; }); slider_max--; $('#slider .frame img').wrap( $('<a>').attr('target', 'flickr') ); sliderAnimation(0, 'fast'); setTimeout(sliderLoop, slider_interval) }); 本来ならば作者様に質問する事がよいと思うのですが、 より多くの方からお知恵を拝借したいと考え、この場で質問 させていただきました。 何卒よろしくお願いいたします。

  • jqueryプルダウンメニュー個別着色

    すみません。デザイナーでjqueryの配布しているものをお借りしているのですが、 プルダウンメニューで、メニューの色を個別に変えたいのですが、 CSSクラス名ごとに、下記のスクリプトを書かないといけないのでしょうか? それとも、$('.btn')のところを、$('.btn','.btn2','.btn3')とかって省略はできますか? 基本を解ってなくてすみません; どうぞ宜しくお願い致しますm(==)m <script type="text/javascript"> $(function(){ $('.btn').hover(function(){ var btn = $(this).find('li').length; $(this).animate({'height':24 * btn + 'px'},'fast'); },function(){ $(this).animate({'height':'24px'},'fast'); }); }); </script>

  • jqueryにおいて配列を繰り返す場合

    下記のようなコードをひとつにまとめることはできますか?よろしくおねがいします。 $('#prev').hover(function(){  $('body').css('right, '-50px'); }, function(){  $('body').css('right, '0px'); }); $('#next').hover(function(){  $('body').css('left, '-50px'); }, function(){  $('body').css('left, '0px'); });

  • jquery not()がきかない

    jqueryについて1点だけ教えて頂きたいことがございます。 今、下記のjqueryにてロールオーバー時のイベントを実行しています。 $('a:not(.current) img').each(function() { var target = $('a:not(.current) img') target.hover(function(){ $(this).stop().fadeTo(500,0.6); }, function() { $(this).stop().fadeTo(500, 1); }); }); それともう一つjqueryである一部分だけ違うロールオーバーにしたく、 全体にかかる上記のjqueryで、#photogalleryというID以外の(a:not(.current) img)にしたいのですが、 ('a:not(.current) img')を $('div').not('#photogallery').find('a:not(.current) img') このようにしてみたのですが、#photogalleryまで実行されてしまいます。 調べて見たのですがわからず、教えて頂ければ幸いです。 どうぞ宜しくお願い致します。

専門家に質問してみよう