当前位置:  开发笔记 > 编程语言 > 正文

带有jcarousel的多行

如何解决《带有jcarousel的多行》经验,为你挑选了2个好方法。

我正在尝试使用jcarousel来构建一个包含多行的容器,我尝试过一些东西,但没有运气.任何人都可以就如何创建它提出任何建议吗?



1> Sanchitos..:

这是.js的代码替换根据@Sike和我的一点点,高度没有动态设置,现在是.

var defaults = {
        vertical: false,
        rtl: false,
        start: 1,
        offset: 1,
        size: null,
        scroll: 3,
        visible: null,
        animation: 'normal',
        easing: 'swing',
        auto: 0,
        wrap: null,
        initCallback: null,
        setupCallback: null,
        reloadCallback: null,
        itemLoadCallback: null,
        itemFirstInCallback: null,
        itemFirstOutCallback: null,
        itemLastInCallback: null,
        itemLastOutCallback: null,
        itemVisibleInCallback: null,
        itemVisibleOutCallback: null,
        animationStepCallback: null,
        buttonNextHTML: '
', buttonPrevHTML: '
', buttonNextEvent: 'click', buttonPrevEvent: 'click', buttonNextCallback: null, buttonPrevCallback: null, moduleWidth: null, rows: null, itemFallbackDimension: null }, windowLoaded = false; this.clip.addClass(this.className('jcarousel-clip')).css({ position: 'relative', height: this.options.rows * this.options.moduleWidth }); this.container.addClass(this.className('jcarousel-container')).css({ position: 'relative', height: this.options.rows * this.options.moduleWidth }); if (li.size() > 0) { var moduleCount = li.size(); var wh = 0, j = this.options.offset; wh = this.options.moduleWidth * Math.ceil(moduleCount / this.options.rows); wh = wh + this.options.moduleWidth; li.each(function() { self.format(this, j++); //wh += self.dimension(this, di); }); this.list.css(this.wh, wh + 'px'); // Only set if not explicitly passed as option if (!o || o.size === undefined) { this.options.size = Math.ceil(li.size() / this.options.rows); } }

这是在下载jscarousel时使用代码包的static_sample.html的调用:


如果您需要更改轮播的内容并重新加载轮播,则需要执行以下操作:

// Destroy contents of wrapper
$('.wrapper *').remove();
// Create UL list
$('.wrapper').append('
    ') // Load your items into the carousellist for (var i = 0; i < 10; i++) { $('#carouselist').append('
  • Item ' + i + '
  • '); } // Now apply carousel to list jQuery('#carousellist').jcarousel({ // your config });

    轮播html定义需要如下所示:

      ...

    感谢Webcidentes


    我试过这个,但我无法让它工作.你能想出一个jsfiddle来演示吗?

    2> 小智..:

    我们不得不做出类似的修改.我们通过扩展默认选项,包括行值和每个项目的宽度(我们称之为模块)然后将宽度除以行数来实现.

    代码添加到jCarousel函数...

    添加到默认选项:

    moduleWidth: null,
    rows:null,
    

    然后在创建jCarousel时设置:

    $('.columns2.rows2 .mycarousel').jcarousel( {
            scroll: 1,
            moduleWidth: 290,
            rows:2,
            itemLoadCallback: tonyTest,
            animation: 'slow'
        });
    

    找到并编辑以下行:

    $.jcarousel = function(e, o) { 
    
    if (li.size() > 0) {
    ...
    moduleCount = li.size();
    wh = this.options.moduleWidth * Math.ceil( moduleCount / this.options.rows );
    wh = wh + this.options.moduleWidth;
    
    this.list.css(this.wh, wh + 'px');
    
    // Only set if not explicitly passed as option
    if (!o || o.size === undefined)
       this.options.size = Math.ceil( li.size() / this.options.rows );
    

    希望这可以帮助,

    托尼狄龙


    你能不能添加这些代码行的位置,谢谢
    推荐阅读
    惬听风吟jyy_802
    这个屌丝很懒,什么也没留下!
    DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
    Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有