Skip to main content

Highlight Menu On Scrolling (if reach div)

Brief

Use $(this).offset().top instead of $(this).position().top
As .position() get the current coordinates of the first element in the set of matched elements, relative to the offset parent whereas .offset() get the current coordinates of the first element in the set of matched elements, relative to the document.
In your website all the DIV with class inside .target are inside therefore all the element of class .target are returning the value .position().top equal to 0.
Decrease the offset value so that the class change when element reach the menu by making the if condition like this:
if($(window).scrollTop() >= $(this).offset().top - $("#cssmenu").height())

HTML

<section id="main">
    <div class="target" id="1">TARGET 1</div>
    <div class="target" id="2">TARGET 2</div>
    <div class="target" id="3">TARGET 3</div>
    <div class="target" id="4">TARGET 4</div>
</section>
<aside id="nav">
    <nav>
        <a href="#1" class="active">Punkt 1</a>
        <a href="#2">Punkt 2</a>
        <a href="#3">Punkt 3</a>
        <a href="#4">Punkt 4</a>
    </nav>
</aside>

CSS

* {
    margin: 0;
    padding: 0;
}
#main {
    width: 75%;
    float: right;
}
#main div.target {
    background: #ccc;
    height: 400px;
}
#main div.target:nth-child(even) {
    background: #eee;
}
#nav {
    width: 25%;
    position: relative;
}
#nav nav {
    position: fixed;
    width: 25%;
}
#nav a {
    border-bottom: 1px solid #666;
    color: #333;
    display: block;
    padding: 10px;
    text-align: center;
    text-decoration: none;
}
#nav a:hover, #nav a.active {
    background: #666;
    color: #fff;
}

jQuery

$('#nav nav a').on('click', function(event) {
    $(this).parent().find('a').removeClass('active');
    $(this).addClass('active');
});
$(window).on('scroll', function() {
    $('.target').each(function() {
        if($(window).scrollTop() >= $(this).offset().top) {
            var id = $(this).attr('id');
            $('#nav nav a').removeClass('active');
            $('#nav nav a[href=#'+ id +']').addClass('active');
        }
    });
});

Links

Comments

Popular posts from this blog

Useful video links with Questions and Answers(.NET, SQL/Database, Azure, DSA, Docker, GIT, AI)

A) AI What is artificial intelligence (AI)? B) .NET SOLID Principles In C# With Examples Design Patterns In C# .NET (2023)   Design Patterns   Software Architecture And Patterns Shiva Kumar - .NET (Youtube)   Multithreading and multitasking Multithreading and asynchronous programming and parallel programming in C# (Youtube)   C) SQL/Database SQL Query Interview Questions - SQL Server Database (Youtube)   ACID Properties Of Transaction In DBMS (Youtube) D) Azure   Modules in this learning path - MSDN Susanth Sutheesh (Youtube)   E) DSA   Strivers A2Z DSA Course/Sheet F) Docker   Docker - Everything You Need To Know G) GIT   Start with Git & GitHub in Visual Studio Misc https://www.youtube.com/watch?v=aaUInV445BY Salary Negotiation - 10 tips on how to negotiate a Higher Salary    

npm install on windows 7 python2 not found error and node-sass@3.13.1 error #317

Before I write all, I'd like to say that before the update everything worked well; while updating node from version 7.2.1 to version 9.4.0 and npm from version 5.5.1 to version 5.6.0 in Windows 7 (64-bit) using the installer (https://nodejs.org/en/download/) and installing globally gulp-cli version 2.0.0, as far as npm install starts from the JointsWP folder I get the following error: $ npm install npm WARN deprecated babel-preset-es2015@6.24.1: รฐ  Thanks for using Babel: we recommend using babel-preset-env now: please read babeljs.io/env to update! npm WARN deprecated gulp-util@3.0.8: gulp-util is deprecated - replace it, following the guidelines at https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5 npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue > uws@0.14.5 install C:\Users\Bob\Dropbox\Development\vhosts\mongoose-project\vanilla\themes\JointsWP\node_modules\uws > node-gyp rebuild > build_log.txt 2>&

Senior Software Engineer - .NET, Kathmandu

First Round (Decemeber 2022) ------------------------------- Brief: There were 4 people in the interview squad in the both round and each were experitise in their fields. .NET related questions were asked by .NET Expert. SQL related questions were asked by Database Expert. Front End related questions were asked by Front End Expert. Cloud Computing related questions were asked by DevOps Expert. First Round (December 2022) A. Question related to Exceptions & disposable. 1) What is the purpose of exception? 2) How is exception handling done in .NET?  3) What is the purpose of finally block? 4) What is the purpose of IDisposable interface?  5) Why we need to dispose object manually if it is automatically done by the framework? 6) Managed resource vs unmanaged resource? Unmanaged code vs managed code? B. Question related to LINQ or Lambada 1) what the purpose of LINQ or lambada?  2) What is lambad expression?  3) The method like First(), FirstOrDefault(), TakeWhile(), SkipWhile()? 4) IQ