jQuery Booklet和parallax

时间:2014-09-11 12:03:11

标签: javascript jquery html parallax

我一直在jQuery中关注2个不同的教程。一个用于视差,另一个用于制作小册子。两者都以不同的方式加载图像。我的图片已加载,但在小册子中,它们应该在页面中,并且应该隐藏尚未显示的页面。问题是所有的div(带图像和文本)都显示出来,页面也不会翻转。 我收到了JavaScript错误Uncaught TypeError: undefined is not a function on $mybook.show().booklet({

<html>
<head>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js">    </script>
    <script src="js/vendor/modernizr-2.7.1.min.js" type="text/javascript"></script>

    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></script>

    <script src="booklet/jquery.easing.1.3.js" type="text/javascript"></script>
    <script src="booklet/jquery.booklet.1.1.0.min.js" type="text/javascript"></script>

    <link rel="stylesheet" type="text/css" href="css/index.css" media="screen" />

</head>

<body class="loading">
    <div id="preload">
        <img src="img/slide1.jpg">
        <img src="img/slide2.jpg">
        <img src="img/slide3.jpg">
    </div>

    <main>
        <section id="slide-1" class="homeSlide">
            <div class="bcg">
            </div>
        </section>

        <section id="slide-2">
            <div class="bcg">
                <div class="hsContainer">
                    <div class="hsContent">
                    </div>
                </div>
            </div>
       </section>

        <section id="slide-3">
            <div class="bcg">
                <div class="hsContainer">
                    <div class="hsContent">

                    </div>
                </div>      
            </div>
        </section>

        <section id="slide-4">
            <div class="bcg">
                <div class="hsContainer">
                    <div class="hsContent">
                        <h1 class="even" >Portfolio</h1>
                        <div class="book_wrapper">
                            <a id="next_page_button"></a>
                            <a id="prev_page_button"></a>
                            <div id="loading" class="loading">Loading pages...</div>
                            <div id="mybook" style="display:none;">
                                <div class="b-load">
                                    <div>
                                        <img src="img/1.jpg" alt=""/>
                                        <h1 class="port" >Slider Gallery</h1>
                                        <p>This tutorial is about creating a creative gallery with a
                                            slider for the thumbnails. The idea is to have an expanding
                                            </p>
                                        <a href="http://tympanus.net/codrops/2010/10/07/slider-gallery/" target="_blank" class="article">Article</a>
                                        <a href="http://tympanus.net/Tutorials/SliderGallery/" target="_blank" class="demo">Demo</a>
                                    </div>
                                    <div>
                                        <img src="img/2.jpg" alt="" />
                                        <h1 class="port" >Animated Portfolio Gallery</h1>
                                        <p>Today we will create an animated portfolio gallery with jQuery.
                                        </p>
                                        <a href="http://tympanus.net/codrops/2010/11/14/animated-portfolio-gallery/" target="_blank" class="article">Article</a>
                                        <a href="http://tympanus.net/Tutorials/AnimatedPortfolioGallery/" target="_blank" class="demo">Demo</a>
                                    </div>
                                    <div>
                                        <img src="img/3.jpg" alt="" />
                                        <h1 class="port" >Annotation Overlay Effect</h1>
                                        <p>Today we will create a simple overlay effect to display annotations in e.g. portfolio
                                        </p>
                                        <a href="http://tympanus.net/codrops/2010/10/12/annotation-overlay-effect/" target="_blank" class="article">Article</a>
                                        <a href="http://tympanus.net/Tutorials/AnnotationOverlayEffect/" target="_blank" class="demo">Demo</a>
                                    </div>

                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </section>

        <section id="slide-5" class="homeSlide">
            <div class="bcg">
                <div class="hsContainer">
                    <div class="hsContent">
                    </div>
                </div>  
            </div>
        </section>
    </main>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.1.min.js"><\/script>')</script>

    <script src="js/imagesloaded.js"></script>
    <script src="js/skrollr.js"></script>
    <script src="js/index.js"></script>

</body>

( function( $ ) {

// Setup variables
$window = $(window);
$slide = $('.homeSlide');
$body = $('body');

//FadeIn all sections   
$body.imagesLoaded( function() {
    setTimeout(function() {

          // Resize sections
          adjustWindow();

          // Fade in sections
          $body.removeClass('loading').addClass('loaded');

    }, 800);
});

function adjustWindow(){

    // Init Skrollr


    // Get window size
    winH = $window.height();

    // Keep minimum height 550
    if(winH <= 550) {
        winH = 550;
    }

    // Resize our slides
    $slide.height(winH);

    // Refresh Skrollr after resizing our sections
}
    } )( jQuery );

$(function() {
            var $mybook         = $('#mybook');
            var $bttn_next      = $('#next_page_button');
            var $bttn_prev      = $('#prev_page_button');
            var $loading        = $('#loading');
            var $mybook_images  = $mybook.find('img');
            var cnt_images      = $mybook_images.length - 3;
            var loaded          = 0;
            //preload all the images in the book,
            //and then call the booklet plugin

            $mybook_images.each(function(){
                var $img    = $(this);
                var source  = $img.attr('src');
                $('<img/>').load(function(){
                    ++loaded;
                    if(loaded == cnt_images){
                        $loading.hide();
                        $bttn_next.show();
                        $bttn_prev.show();
                        $mybook.show().booklet({
                            name:               null,                            // name of the booklet to display in the document title bar
                            width:              800,                             // container width
                            height:             500,                             // container height
                            speed:              600,                             // speed of the transition between pages
                            direction:          'LTR',                           // direction of the overall content organization, default LTR, left to right, can be RTL for languages which read right to left
                            startingPage:       0,                               // index of the first page to be displayed
                            easing:             'easeInOutQuad',                 // easing method for complete transition
                            easeIn:             'easeInQuad',                    // easing method for first half of transition
                            easeOut:            'easeOutQuad',                   // easing method for second half of transition

                            closed:             true,                           // start with the book "closed", will add empty pages to beginning and end of book
                            closedFrontTitle:   null,                            // used with "closed", "menu" and "pageSelector", determines title of blank starting page
                            closedFrontChapter: null,                            // used with "closed", "menu" and "chapterSelector", determines chapter name of blank starting page
                            closedBackTitle:    null,                            // used with "closed", "menu" and "pageSelector", determines chapter name of blank ending page
                            closedBackChapter:  null,                            // used with "closed", "menu" and "chapterSelector", determines chapter name of blank ending page
                            covers:             false,                           // used with  "closed", makes first and last pages into covers, without page numbers (if enabled)

                            pagePadding:        10,                              // padding for each page wrapper
                            pageNumbers:        true,                            // display page numbers on each page

                            hovers:             false,                            // enables preview pageturn hover animation, shows a small preview of previous or next page on hover
                            overlays:           false,                            // enables navigation using a page sized overlay, when enabled links inside the content will not be clickable
                            tabs:               false,                           // adds tabs along the top of the pages
                            tabWidth:           60,                              // set the width of the tabs
                            tabHeight:          20,                              // set the height of the tabs
                            arrows:             false,                           // adds arrows overlayed over the book edges
                            cursor:             'pointer',                       // cursor CSS setting for side bar areas

                            hash:               false,                           // enables navigation using a hash string, ex: #/page/1 for page 1, will affect all booklets with 'hash' enabled
                            keyboard:           true,                            // enables navigation with arrow keys (left: previous, right: next)
                            next:               $bttn_next,                     // selector for element to use as click trigger for next page
                            prev:               $bttn_prev,                     // selector for element to use as click trigger for previous page

                            menu:               null,                            // selector for element to use as the menu area, required for 'pageSelector'
                            pageSelector:       false,                           // enables navigation with a dropdown menu of pages, requires 'menu'
                            chapterSelector:    false,                           // enables navigation with a dropdown menu of chapters, determined by the "rel" attribute, requires 'menu'

                            shadows:            true,                            // display shadows on page animations
                            shadowTopFwdWidth:  166,                             // shadow width for top forward anim
                            shadowTopBackWidth: 166,                             // shadow width for top back anim
                            shadowBtmWidth:     50,                              // shadow width for bottom shadow

                            before:             function(){},                    // callback invoked before each page turn animation
                            after:              function(){}                     // callback invoked after each page turn animation
                        });
                    }
                }).attr('src', source);
            });

        });

2 个答案:

答案 0 :(得分:1)

试试这个加载顺序:

<script src="js/vendor/modernizr-2.7.1.min.js" type="text/javascript"></script>  
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>  
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js"></sc‌​ript>
<script src="js/imagesloaded.js"></script> 
<script src="booklet/jquery.easing.1.3.js" type="text/javascript"></script>     
<script src="booklet/jquery.booklet.1.1.0.min.js" type="text/javascript"></script>     
<script src="js/skrollr.js"></script>     
<script src="js/index.js"></script>

答案 1 :(得分:0)

编辑:没关系。我认为你正在加载jquery两次。该插件正在附加到第一个实例,但随后您将使用<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

再次加载它

$().booklet未定义的任何可能性?就像jquery.booklet.1.1.0.min.js由于某种原因无法加载一样。您可以在控制台中键入“$()。booklet”,如果插件已加载,则应该说 function ....如果没有,则应该 undefined

很抱歉将此作为答案而不是评论,但我还没有足够的评论来评论。