Parallax Scrolling Issues

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Parallax Scrolling Issues

    Hi,

    I'm new to coding, I'm currently designing myself a portfolio website to showcase my design skills, I've developed a problem I hope you could help me out with!

    I've built a skeleton for a parallax scrolling index page with the idea to then link to individual projects from the portfolio section. I've spent a while on the visuals and had the scrolling working but now when I've tried to make the site responsive (using media queries to load different CSS styles) it seems to mess up now when it scrolls down to the correct section it then jumps somewhere else.

    Would you be able to look at my code and tell me if there is something I am doing horribly wrong? My website is online at Matt Wilson Graphic Designs

    I'll also upload the code here too.

    HTML

    PHP Code:
    <!doctype html>
    <
    html>
    <
    head>
    <
    meta charset="UTF-8">
    <
    meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <
    title>Matt Wilson Graphic Designs</title>
    <
    link type="text/css" rel="stylesheet" href="style.css">
    <
    link href='http://fonts.googleapis.com/css?family=Graduate' rel='stylesheet' type='text/css'>
    <
    script type="text/javascript" src="jquery.js"></script>
    <
    script type="text/javascript" src="script.js"></script>
    </
    head>

    <
    body>

    <
    nav>
        
    <
    div id="menu_wrapper">

         <
    a href="#services"><div class="menu_button">
        
            <
    p>services</p>
        
        </
    div></a>
        
        <
    a href="#about"><div class="menu_button">
        
            <
    p>about</p>
        
        </
    div></a>
        
        <
    a href="#top"><div id="logo">
        
        </
    div></a>
        
        <
    a href="#portfolio"><div class="menu_button">
        
            <
    p>portfolio</p>
            
        </
    div></a>
        
         <
    a href="#contact"><div class="menu_button">
        
            <
    p>contact</p>
        
        </
    div></a>
        
    </
    div>

    </
    nav>

    <
    section id="feature">

    <
    div id="top">

    </
    div>

        <
    div id="feature_image">
        
            <
    img src="images/greece.jpg">
        
        </
    div>
        
    <
    div class="logo_border_black">

    </
    div>
        
    </
    section>
        
    <
    section id="welcome">
        
        <
    div id="message">
        
            <
    p>HELLO AND WELCOME TO MY WEBSITE PLEASE CHECK OUT MY WORK AND SAY HELLO WHILST YOUR HERE</p>
            
        </
    div>
        
        <
    div class="bottom_border_black">
            
        </
    div>

    </
    section>

    <
    section id="services">

        <
    div class="triangle_white">
            
        </
    div>
        
        <
    div class="title_white">
        
            <
    p>services</p>
            
        </
    div>
        
        <
    div class="logo_border_white">

        </
    div>
        
        <
    div class="bottom_border_white">
            
        </
    div>
        
    </
    section>

    <
    section id="about">

        <
    div class="triangle_black">
            
        </
    div>
        
        <
    div class="title_black">
        
            <
    p>about</p>
            
        </
    div>

        <
    div class="logo_border_black">

        </
    div>
        
        <
    div class="bottom_border_black">
            
        </
    div>

    </
    section>

    <
    section id="portfolio">

        <
    div class="triangle_white">
            
        </
    div>
        
        <
    div class="title_white">
        
            <
    p>portfolio</p>
            
        </
    div>

        <
    div class="logo_border_white">

        </
    div>
        
        <
    div class="bottom_border_white">
            
        </
    div>

    </
    section>

    <
    section id="contact">

        <
    div class="triangle_black">
            
        </
    div>
        
        <
    div class="title_black">
        
            <
    p>contact</p>
            
        </
    div>

        <
    div class="logo_border_black">

        </
    div>
        
        <
    div class="bottom_border_black">
            
        </
    div>

    </
    section>

    </
    body>
    </
    html> 
    CSS

    PHP Code:
    * {
        
    margin:0px;
        
    padding:0px;
    }

    body {
        
    font-family: 'Graduate', cursive;
        
    text-decoration:none;
        
    color:#FFF;    
    }

    h1 {
        
    font-family: 'Graduate', cursive;
        
    font-size:37px;
        
    line-height:55px;
    }

    h2 {
        
    font-family: 'Graduate', cursive;
        
    font-size:20px;
        
    line-height:40px;
    }

    h3 {
        
    font-family: 'Graduate', cursive;
        
    font-size:16px;
        
    line-height:40px;
    }

    a:hover {
        
    color:#00739C;
    }

    /**MENU**/

    nav {
        
    position:fixed;
        
    z-index:1;
        
    width:100%;
        
    background-color:#FFF;
        
    height:70px;
        
    background-color:#0099C1;
    }

    #menu_wrapper {
        
    width:700px;
        
    margin-left:auto;
        
    margin-right:auto;
    }

    .
    menu_button {
        
    padding-top:25px;
        
    text-align:center;
        
    width:100px;
        
    height:50px;
        
    color:#FFF;
        
    float:left;
    }

    .
    menu_button:hover {
        
    color:#00739C;
    }

    #logo {
        
    width:300px;
        
    height:70px;
        
    float:left;
        
    background-image:url(images/logo.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    #logo:hover {
        
    background-position:bottom left;
    }

    /**CONTENT**/

    section {
        
    display:block;
        
    position: relative;
        
    width:100%;
    }

    #top {
        
    width:900px;
        
    height:100px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    padding-top:70px;
        
    background-position:bottom;
        
    background-image:url(images/border_black.png);
        
    background-repeat:no-repeat;
    }

    .
    triangle_black {
        
    z-index:1;
        
    padding-bottom:70px;
        
    display:block;
        
    width:60px;
        
    height:25px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/triangle_black.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    .
    triangle_white {
        
    z-index:1;
        
    padding-bottom:70px;
        
    display:block;
        
    width:60px;
        
    height:25px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/triangle_white.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    .
    logo_border_black {
        
    width:900px;
        
    height:100px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/logo_border_black.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }


    .
    logo_border_white {
        
    width:900px;
        
    height:100px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/logo_border_white.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    .
    bottom_border_black {
        
    width:900px;
        
    height:100px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/border_black.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    .
    bottom_border_white {
        
    width:900px;
        
    height:100px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/border_white.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    .
    title_white {
        
    width:900px;
        
    padding-top:20px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    text-align:center;
    }

    .
    title_white p {
        
    font-size:37px;
        
    color:#FFF;
    }

    .
    title_black {
        
    width:900px;
        
    padding-top:20px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    text-align:center;
    }

    .
    title_black p {
        
    font-size:37px;
        
    color:#333;
    }

    #feature {
        
    color:#333;
        
    margin-right:auto;
        
    margin-left:auto;
        
    width:100%;
        
    background-color:#FFF;
        
    }

    #feature_image {
        
    color:#333;
        
    margin-right:auto;
        
    margin-left:auto;
        
    width:900px;
        
    height:400px;
        
    background-image:url(images/greece.jpg);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    #feature_image img {
        
    width:100%;
    }

    #welcome {
        
    color:#333;
        
    margin-right:auto;
        
    margin-left:auto;
        
    width:100%;
        
    background-color:#FFF;
    }

    #message {
        
    width:900px;
        
    margin-right:auto;
        
    margin-left:auto;
        
    text-transform:lowercase;
        
    font-family: 'Graduate', cursive;
        
    font-size:37px;
        
    line-height:55px;
    }

    #services {
        
    color:#333;
        
    margin-right:auto;
        
    margin-left:auto;
        
    width:100%;
        
    background-color:#333;
    }

    #about {
        
    color:#333;
        
    margin-right:auto;
        
    margin-left:auto;
        
    width:100%;
        
    background-color:#FFF;
    }

    #portfolio {
        
    color:#333;
        
    margin-right:auto;
        
    margin-left:auto;
        
    width:100%;
        
    background-color:#333;
    }

    #contact {
        
    color:#333;
        
    margin-right:auto;
        
    margin-left:auto;
        
    width:100%;
        
    background-color:#FFF;
    }

    /* #Tablet (Portrait)
    ================================================== */

        /* Note: Design for a width of 768px */
        
    @media only screen and (min-width: 768px) and (max-width: 959px) {

    nav {
        
    position:fixed;
        
    z-index:1;
        
    width:100%;
        
    background-color:#FFF;
        
    height:70px;
        
    background-color:#0099C1;
    }

    #menu_wrapper {
        
    width:655px;
        
    margin-left:auto;
        
    margin-right:auto;
    }

    .
    menu_button {
        
    padding-top:25px;
        
    text-align:center;
        
    width:100px;
        
    height:50px;
        
    color:#FFF;
        
    float:left;
    }

    .
    menu_button:hover {
        
    color:#00739C;
    }

    #logo {
        
    width:255px;
        
    height:70px;
        
    float:left;
        
    background-image:url(images/Logo_tablet.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    #logo:hover {
        
    background-position:bottom left;
    }    

    /**CONTENT**/
        
    section {
        
    width:768px;
        
    }

    #top {
        
    width:768px;
        
    height:100px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    padding-top:70px;
        
    background-image:url(images/border_black_tablet.png);
        
    background-position:bottom left;
        
    background-repeat:no-repeat;
    }

    .
    logo_border_black {
        
    width:768px;
        
    height:100px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/logo_border_black_tablet.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    .
    logo_border_white {
        
    width:768px;
        
    height:100px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/logo_border_white_tablet.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    .
    bottom_border_black {
        
    width:768px;
        
    height:100px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/border_black_tablet.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    .
    bottom_border_white {
        
    width:768px;
        
    height:100px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/border_white_tablet.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    .
    triangle_black {
        
    z-index:1;
        
    padding-bottom:70px;
        
    display:block;
        
    width:60px;
        
    height:25px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/triangle_black.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    .
    triangle_white {
        
    z-index:1;
        
    padding-bottom:70px;
        
    display:block;
        
    width:60px;
        
    height:25px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/triangle_white.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    .
    title_white {
        
    width:768px;
        
    padding-top:20px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    text-align:center;
    }

    .
    title_black {
        
    width:768px;
        
    padding-top:20px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    text-align:center;
    }

    #feature_image {
        
    color:#333;
        
    margin-right:auto;
        
    margin-left:auto;
        
    width:768px;
        
    height:340px;
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    #feature_image img {
        
    width:100%;
    }

    #message {
        
    width:768px;
        
    margin-right:auto;
        
    margin-left:auto;
        
    text-transform:lowercase;
        
    font-family: 'Graduate', cursive;
        
    font-size:37px;
        
    line-height:55px;
    }


        }
        
    /*  #Mobile (Portrait)
    ================================================== */

        /* Note: Design for a width of 320px */
        
    @media only screen and (max-width: 767px) {

    nav {
        
    position:fixed;
        
    z-index:1;
        
    width:100%;
        
    background-color:#FFF;
        
    height:70px;
        
    background-color:#0099C1;
    }

    #menu_wrapper {
        
    width:320px;
        
    margin-left:auto;
        
    margin-right:auto;
    }

    .
    menu_button {
        
    padding-top:30px;
        
    text-align:center;
        
    width:64px;
        
    height:45px;
        
    color:#FFF;
        
    float:left;
    }

    .
    menu_button p {
        
    font-size:11px;
    }

    .
    menu_button:hover {
        
    color:#00739C;
    }

    #logo {
        
    width:64px;
        
    height:70px;
        
    float:left;
        
    background-image:url(images/Logo_mobile.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    #logo:hover {
        
    background-position:bottom left;
    }

    /**CONTENT**/
        
    section {
        
    width:320px;    
    }

    #top {
        
    width:320px;
        
    height:50px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    padding-top:70px;
        
    background-image:url(images/border_black_mobile.png);
        
    background-position:bottom left;
        
    background-repeat:no-repeat;
    }

    .
    logo_border_black {
        
    width:320px;
        
    height:50px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/logo_border_black_mobile.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    .
    logo_border_white {
        
    width:320px;
        
    height:50px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/logo_border_white_mobile.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    .
    bottom_border_black {
        
    width:320px;
        
    height:50px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/border_black_mobile.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    .
    bottom_border_white {
        
    width:320px;
        
    height:50px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/border_white_mobile.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    .
    triangle_black {
        
    z-index:1;
        
    padding-bottom:70px;
        
    display:block;
        
    width:33px;
        
    height:14px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/triangle_black_mobile.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }

    .
    triangle_white {
        
    z-index:1;
        
    padding-bottom:70px;
        
    display:block;
        
    width:33px;
        
    height:14px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    background-image:url(images/triangle_white_mobile.png);
        
    background-position:top left;
        
    background-repeat:no-repeat;
    }


    .
    title_white {
        
    width:320px;
        
    padding-top:20px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    text-align:center;
    }

    .
    title_white p {
        
    font-size:25px;
        
    line-height:35px;
    }

    .
    title_black {
        
    width:320px;
        
    padding-top:20px;
        
    margin-left:auto;
        
    margin-right:auto;
        
    text-align:center;
    }

    .
    title_black p {
        
    font-size:25px;
        
    line-height:35px;
    }

    #feature_image {
        
    color:#333;
        
    margin-right:auto;
        
    margin-left:auto;
        
    width:320px;
        
    height:142px;
    }

    #feature_image img {
        
    width:100%;
    }

    #message {
        
    width:320px;
        
    margin-right:auto;
        
    margin-left:auto;
        
    text-transform:lowercase;
        
    font-family: 'Graduate', cursive;
        
    font-size:37px;
        
    line-height:55px;
    }

    #message p {
        
    font-size:25px;
        
    line-height:35px;
    }
        } 
    Script

    PHP Code:
    $(document).ready(function() {
      function 
    filterPath(string) {
      return 
    string
        
    .replace(/^\//,'')
        
    .replace(/(index|default).[a-zA-Z]{3,4}$/,'')
        .
    replace(/\/$/,'');
      }
      var 
    locationPath = filterPath(location.pathname);
      var 
    scrollElem = scrollableElement('html', 'body');
     
      $(
    'a[href*=#]').each(function() {
        var 
    thisPath = filterPath(this.pathname) || locationPath;
        if (  
    locationPath == thisPath
        
    && (location.hostname == this.hostname || !this.hostname)
        && 
    this.hash.replace(/#/,'') ) {
          
    var $target = $(this.hash), target = this.hash;
          if (
    target) {
            var 
    targetOffset = $target.offset().top;
            $(
    this).click(function(event) {
              
    event.preventDefault();
              $(
    scrollElem).animate({scrollTop: targetOffset}, 1000, function() {
                
    location.hash = target;
              });
            });
          }
        }
      });
     
      
    // use the first element that is "scrollable"
      
    function scrollableElement(els) {
        for (var 
    i = 0, argLength = arguments.length; i <argLength; i++) {
          var 
    el = arguments[i],
              
    $scrollElement = $(el);
          if (
    $scrollElement.scrollTop()> 0) {
            return 
    el;
          } else {
            
    $scrollElement.scrollTop(1);
            var 
    isScrollable = $scrollElement.scrollTop()> 0;
            
    $scrollElement.scrollTop(0);
            if (
    isScrollable) {
              return 
    el;
            }
          }
        }
        return [];
      }
     
    }); 
    If you understand where I've gone wrong I would really appreciate some feedback!

    Best wishes

    Matt
    Last edited by metulj; 16.03.13, 15:11.
Working...
X