I got stuck


Interactive Website Push Menu.
7. Close the Menu.

It says:

Oops, try again. It looks like the '.menu' didn't animate
285px back to the right. Check your $('.menu').animate() function.

I don't get it because i have exactly the same as what is written in the HINT.



+++++ DOM representation of push menu

If your HTML-page is loaded into memory by the Browser
the memory-layout will be build
using the rules, as defined in the Document Object Model
in short the DOM

The DOM representation of the index.html file would look like:

         |                |
        head             body
         |                |
    +----+----+      +----+-----------+
    |    |    |      |                |
   link link link  10div(.menu)     27div(.jumbotron)
                    |                 |
     +--------------+----+          29div(.icon-menu)
     |                   |             |
   13div(.icon-close)  18ul          30i (.fa
     |                   |             |  and .fa-bars)
    img       +-----+----++-----+    text  
              |     |     |     |    node
             19li  20li  21li  22li
              |     |     |     |
              a     a     a     a
              |     |     |     |
            text   text  text  text
            node   node  node  node

Now if you look at the DOM representation
the body-Tag is parent to
a 10div Element's Tree ( with class-attribute with class-name "menu" )
( to use a class-name in your Selector, you will have to prepend the name with a DOT )
a 27div Element's Tree ( with class-attr. with class-name "jumbotron" set )

Now if you look in the style.css file,
with which you manage the Display of your Elements,
you will find that
the body object has the property left: 0; being set
( the body-Tree has a _start-Display at position left-0 )_

the .menu object has the property left: -285px; being set
and therefor the 10div-Tree is outside of Display.

In your 'app.js' file you are
to which you assign a so-called anonymous Function
and in the FUNCTION-BODY of this anonymous Function
we are attaching our click Event-handlers
to the HTML-Elements which are
-1 carrying the "icon-menu" class-name as class-attribute
-2 carrying the "icon-close" class-name as class-attribute
( during the assignment the function is NOT executed )

You will have to add the code-line
$(document).ready( main );
which will result in the =main= Function to be executed
AFTER the Browser has set the ready Event-flag.

++++++++++ structure P u s h M e n u function
The structure of your =main= Function should look like....

  var main= function() {
     $('.icon-menu').click( function() {
           //Your animation

     $('.icon-close').click( function() {
           //Your animation

explanation of the push-menu setup


google search
class site:jquery.com

what is CSS explained site:developer.mozilla.org



var main = function() {
$('.icon-menu').click(function() {
left: "0px"
}, 200);

  left: "285px"
}, 200);


$('.icon-close').click(function() {
left: "-285px"
}, 200);

  left: "0px"
}, 200);


This is the code i used


I had the same problem and my code was exactly like the code in the HINT.
So I copied the HINT-Code and added the $(document).ready(main); line...
Now it worked, but I still don't know why an error occured...maybe a bug?


This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.