【问题标题】:I want to create paging between sets of columns created via the jQuery Columnizer plugin我想在通过 jQuery Columnizer 插件创建的列集之间创建分页
【发布时间】:2010-11-21 17:17:56
【问题描述】:

//更新//

我找到了一些代码来进行分页,我已对其进行了修改,以便与 jQuery 的 columnizer 插件(时事通讯示例 10)一起使用。唯一的问题是我只能进入文章的下一部分(每部分分为 3 列)。由于某种原因,我无法回到文章的前一部分。如果我单击“.articleprevbutton”,它只会将我带到下一部分。分页代码来自http://pastebin.me/217b55dff89af94ad04de32328dca62a,用于图像轮播。当我单击下一步时,我不需要它循环回到文章最后部分的开头。我只是不知道如何把它拿出来而不破坏它。

    $(function(){
        var content_height = 466;

        var page = 1;

        function buildNewsletter(){
            if($('#theArticle').contents().length > 0){

                $page = $("#page_template").clone(true).addClass("page").css("display", "block");

                $page.find("#partnumbertext h3").append(page);
                $("#singlepostbox").append($page);
                page++;

                $('#theArticle').columnize({
                    columns: 3,
                    target: ".page:last .content",
                    overflow: {
                        height: content_height,
                        id: "#theArticle",
                        doneFunc: function(){
                            buildNewsletter();
                        }
                    }
                });
            }


            $('.page').hide();
            $('.page:first').show();


                $('.articleprevbutton, .articlenextbutton').click( function (ev) {
                //prevent browser jumping to top
                ev.preventDefault();

                //get current visible item
                var $visibleItem = $('.page:visible');

                //get total item count
                var total =  $('.page').length;

                //get index of current visible item
                var page = $visibleItem.prevAll().length;

                //if we click next increment current index, else decrease index
                $(this).attr('href') === 'Next' ? page++ : page--;

                //if we are now past the beginning or end show the last or first item
                if (page === -1){
                   page = total-1;
                }
                if (page === total){
                   page = 0
                }

                //hide current item
                $visibleItem.hide();

                //fade in the relevant item
                $('.page:eq(' + page + ')').fadeIn(500);

            });



        }


        setTimeout(buildNewsletter);
    });

非常需要帮助的业余 jQuery 用户。任何都会很棒。也欢迎任何改进。

【问题讨论】:

    标签: jquery jquery-plugins multiple-columns


    【解决方案1】:

    好的,我终于使用我的问题中的一些代码和其他代码从这里开始工作了:http://www.jsfiddle.net/brunolm/256mU/。痛苦已经结束,如果您有任何关于如何减少或改进代码的提示,我们非常欢迎。

    $(function(){
    
    
            // columnizer section creating all the pages of columns, I have 3 
            // columns per page, goto the link at the bottom to find out more about the 
            // columnizer newslettter code.
    
     var content_height = 466;
    
     function buildNewsletter(){
     if($('#theArticle').contents().length > 0){
    
     $page = $("#page_template").clone(true).addClass("page").css("display", "block");
    
     $("#singlepostbox").append($page);
    
     $('#theArticle').columnize({
      columns: 3,
      target: ".page:last .content",
      overflow: {
       height: content_height,
       id: "#theArticle",
       doneFunc: function(){
        buildNewsletter();
       }
      }
     });
    }
    
    
            // Code for post nav info before click, total of pages reused on click. For example 1 of 3
            var $pagination = $("#PostNav");
            var total = $('.page').length;
            var current = $pagination.data("Current") ? $pagination.data("Current") : 1;
    
            // Hides all pages except the very first page and shows the current page number + total number of pages
            $('.page').hide();
            $('.page:first').show();
            $("#pagenumbertext").text("page " + (current) + " of " + total + "");  
    
            }
    
    setTimeout(buildNewsletter);
    
    });
    
    
    $("#PostNav a").click(function (e) {
     e.preventDefault();
    
     var $this = $(this);
    
     var $pagination = $("#PostNav");
    
     var $thepage = $(".page");
    
                    // total number of pages
     var total = $('.page').length;
    
              // Current page index    
     var current = $pagination.data("Current") ? $pagination.data("Current") : 0;
    
     /* handling prev & next buttons */
     if ($this.index() == 0) /* Previous */
     {
      /* go 1 back or start at the end */
      current = ((current - 1) < 0 ? (total - 1) : (current - 1));
     }
     else /* Next */
     {
      /* go 1 forward or start at the beginning */
      current = ((current + 1) == total ? 0 : (current + 1));
     }
    
     /* Save the current index for next time */
     $pagination.data("Current", current);
    
     /* Transition to next or previous page and Update which page is visible*/
     $thepage.css("display", "none").eq(current).css("display", "").fadeIn(500);
    
     $("#partnumbertext").text("part " + (current+1) + " of " + total + "");
    });
    

    如果您需要更多信息和帮助使用 columnizer 将您的文章和内容自动分成多个页面或部分,只需在 Google 上搜索 columnizer。我希望这可以帮助那些真正想给网站带来更多杂志感觉的人。额外的好处是能够将其拆分为页面,而不是让它无休止地从页面上掉下来。谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-28
      相关资源
      最近更新 更多