私はJQuery JCarouselをCAKEPHPビューで設定しました。この特定のビューには、一連のサムネイルとタイトルをデータベースから収集するforeachループがあります。ページをクリックすると、クリックした部分の拡大と説明付きの別のページが返されます。カスタムスタートを設定した場合、JCarouselは余分なスペースを追加します。位置
したがって、前のページでクリックしたアイテムの開始位置を2ページ目にJCarouselで再ロードしています。私はクリックされたIDをクエリ文字列 "?n = id#"に送り、javascriptを使ってそれを検索し、それを変数に代入してから私のJCarousel関数に代入します。これはうまくいきますが、私がこれを行うと、JCarouselは回転台の最初の項目の前に空白を追加してしまうという問題があります。また、理想的には、クリックしたカルーセルアイテムを前のページと同じ位置に配置したいと考えています。私のカルーセルブロック全体は1ページあたり8個で、サイズが異なります。だから、次のボタンをクリックしてアイテム10をクリックすると、次のボタンをクリックして表示され、2番目のアイテムのアイテム10が表示されます。私はオフセットといくつかの数学でも演奏しましたが、何も動作しません。私が怒っているので、これが意味をなさないことを願っています。
PHPページ
<div id="wrap">
<ul id="mycarousel" class="jcarousel-skin-tango">
<?php $i=1; $cnt=1; ?>
<?php foreach($all_works as $work): ?>
<li class="clicked" id="<?php echo $cnt++; ?>">
<a href="../../<?php echo $work['Work']['id'].DS.$work['Work']['category_id'].DS.$work['Work']['artist_id']; ?>?n=<?php echo $i++; ?>">
<?php echo $html->image('$image'.urlencode($work['Work']['picture']), array('border' => '0')); ?><span><?php echo $work['Work']['name']; ?></span></a>
</li>
<?php endforeach; ?>
</ul><span><?php echo $cnt; ?> pieces shown</span></div>
JavascriptのURLとJCarouselを取得する::)
は、ここに私のコードですフォーマット、初めての投稿について申し訳ありません
$.extend({ getUrlVars: function()
{var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];}
return vars;},
getUrlVar: function(name)
{
return $.getUrlVars()[name]; }});
var byName = $.getUrlVar('n');
jQuery(document).ready(function() {
jQuery('#mycarousel').jcarousel({
scroll: 8,
start: byName
});
});
スタック