我正在尝试为jQuery使用jCarousel插件,以便为我的网站用户提供可滚动(水平)内容。j未知内容宽度的卡号
我提到的内容基本上是用户定义的<li>
元素,样式使得它们具有标签的感觉和外观。所以基本上我试图达到与pageflakes.com中的选项卡相同的效果。您可能会想象,用户正在创建标签并自行提供标签名称。
jCarousel需要您为内容指定固定宽度,例如,所有示例均基于具有固定高度和宽度的图像。但在我的情况下,我无法控制用户将他/她的选项卡命名......使我无法猜测总容器div的宽度。
我已经尝试过使用一种愚蠢的方法,如猜测宽度编程假设每个字母大约5像素,并乘以5他们已作为一个选项卡的名称给出的单词的长度。即使在这种情况下,我需要动态哪我不知道怎么做,哪怕是feasable这样做处理CSS文件..
任何解决方案赞赏...
<lu>
<li class='MyTab' id='578'>This is my tab</li>
<li class='MyTab' id='579'>of which I can</li>
<li class='MyTab' id='580'>never guess</li>
<li class='MyTab' id='581'><img src='img/bullet_key.png' /> The length of</li>
</lu>
的上述HTML编程是通过ajax_tabs_output.aspx制作,装入一个JavaScript阵列和需要的jCarousel其余的工作..
function outputTabsArray() {
$.ajax({
url: 'ajax_tabs_output.aspx',
type: 'get',
data: 'q=array',
async: false,
success: function(out)
{
tabs_array = out;
}
});
}// end outputTabsArray
function mycarousel_itemLoadCallback(carousel, state)
{
for (var i = carousel.first; i <= carousel.last; i++) {
if (carousel.has(i)) {
continue;
}
if (i > tabs_array.length) {
break;
}
carousel.add(i, mycarousel_getItemHTML(tabs_array[i-1]));
}
};
/**
* Item html creation helper.
*/
function mycarousel_getItemHTML(item)
{
return '<div class="MyTab" id="' + item.tab_id + "'>" + item.tab_name + '</div>';
};
$('#mycarousel').jcarousel({
size: tabs_array.length,
itemLoadCallback: {onBeforeAnimation: mycarousel_itemLoadCallback}
});
如果您可以展示您当前的工作演示,以便更容易理解您的问题,那就太好了。 – Soviut 2008-12-30 07:11:55