我有一个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
});
});
遗憾的格式,第一次发帖堆栈。