jQuery Code Explanation

I cannot understand this code while using bootstrap scrollspy. Can anyone help?

Can you post a sample of the code that’s confusing you?

For postin code: Paste your code and select it, then click </>.

Sorry. I had posted the code earlier, but I did not know that we need to use </> as well. In the “Build a Personal Portfolio” Project, I was trying to understand bootstrap smooth scrollspy. It would really solve my problem. codepen link:

The script is a little tricky to me as I am new to this:
(FYI, I googled, but it didn’t help much)

$(document).ready(function()
{
  $('body').scrollspy({target: ".navbar", offset: 50});   

//I guess this will add scrollspy to the body. But why didn’t we use prop(). can we add properties in this manner as well?

  $("#myNavbar a").on('click', function(event) // This is if any anchor on navbar is clicked
   {
   
        if (this.hash !== "") **// Dont understand why is it compared to ""** 
       {
           event.preventDefault();//To prevent the default action taken by the anchor tag
           var hash = this.hash;**// Dont understand this why is hash being stored in a variable** 
           $('html, body').animate({
        scrollTop: $(hash).offset().top
      }, 800, function(){
  
        window.location.hash = hash;
      });**// How is the animate function working?** 
    }  
  });
});

For first snippet
u use prop to indicate flavour of element like selected, readonly etc…
but with function u create event handler for monitoring scroll behaivor
so u tell function that your scroll want to be indicated in .navbar by target,
and by offset,u tell to not indicate at beginning ( u can see there is no indicator in navbar at top of page *page not scrolled ), so u want to user first scroll for 50px… ( change this 50, to see reflection )

sec snippet
this.hash refer to href in a tag
<a href='#mySection'....
so u validate first hash with !== ""
then u store in variable because
when function from ( jQuery === $ ). animate is called, this keyword will not refer to scrope of where your this.hash was
( in function $('$myNavbar a').on —*---- this keyword refer to clicked element )

This can be solved also by saving this reference to variable lets call it self
and then in animate u can use it like

$('html, body').animate({
        scrollTop: $(self.hash).offset().top

and last question
function animate works like
have three paremeter
first what to change ( like margin or background etc… )
second how long will be duration of animation
and last is function that will be called at the end of animation

so u want to your top bar in browser where is your URL to indicate that u are at some element in your page other then default
like
/www.mywebsite.com/#mySection

Hello guys I have a really Problem with Jquery my functions only play on time and finished i put a “Whlile Loop” but dosent fixed anything plz help me with my code this is my code tnx

$(document).ready(function(){
$(’#goLeft’).on(‘click’, function(){
if($(".myWorks").css(“opacity”)== “0”)
{
$(’.wrap’).animate({
marginRight : ‘1045px’
},“slow”);
$(’.about_me’).toggleClass(“Visibility_to_visible”);
}
else{
$(’.myWorks’).toggleClass(“Visibility_to_Unvisible1”);
$(’.wrap’).animate({
marginRight : ‘1045px’
},“slow”);
$(’.about_me’).toggleClass(“Visibility_to_visible”);
}
});
////////////////////////////////////////////////////////////////////
$(’#goRight’).on(‘click’, function(){

if($(".about_me").css("opacity")== "0")
{
   $('.wrap').animate({
  marginRight : '20px'
},"slow");

$(’.myWorks’).toggleClass(“Visibility_to_visible1”);
}
else{
$(’.about_me’).toggleClass(“Visibility_to_Unvisible”);
$(’.wrap’).animate({
marginRight : ‘20px’
},“slow”);
$(’.myWorks’).toggleClass(“Visibility_to_visible1”);
}
});
});