我有一個JQuery JCarousel在CAKEPHP視圖中設置。這個特定的視圖有一個foreach循環來收集數據庫中的一系列縮略圖和標題。如果你點擊一個頁面,它會返回另一個頁面,其中包含一個放大的點擊和描述。JCarousel添加額外的空間,如果我設置自定義開始:位置
因此,我在第二頁上重新加載了JCarousel,並在上一頁上單擊了項目的開始位置。我將點擊的id發送到查詢字符串「?n = id#」,然後使用javascript檢索它,將它分配給一個變量,然後分配給我的JCarousel函數。這很好,但問題是,當我這樣做時,JCarousel在Carousel的第一項之前添加了空白區域。同樣理想情況下,我希望點擊旋轉木馬項目的確切位置在上一頁。我的整個輪播塊每頁8個,大小各不相同。所以,如果我點擊下一個按鈕,然後點擊第10項,我想先看看下一個按鈕的出現,並在第二個地方顯示第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
});
});
遺憾的格式,第一次發帖堆棧。