Search code examples
jqueryfade

Fade out div if has class


I'm trying to fade out a div when it has a certain class. Below is my code. As you can see I'm adding a class when a div comes in to view - when this class is added I want to fade out the div that has been assigned "hideclass"

Can't get any solution to work... any ideas?

jQuery(document).ready(function($){
    var elem2Query = ".cont-shopp";
    var elem2Hide = ".testplace";
    var jElem2Hide = $(elem2Hide);
    if (isElementInView()) jElem2Hide.addClass("hideClass");    
    $(window).scroll(function(){ 

        if (isElementInView()){
            jElem2Hide.addClass("hideClass");
        }else{
            jElem2Hide.removeClass("hideClass");
        }
    });
    function isElementInView(){     
        var jWindow = $(window);
        var jElem   = $(elem2Query);
        var pageViewTop = jWindow.scrollTop();
        var pageViewBottom = pageViewTop + jWindow.height();
        var elemTop = jElem.offset().top;
        var elemBottom = elemTop + jElem.height();
        var isInView =((elemBottom >= pageViewTop) 
                && (elemTop <= pageViewBottom)
                && (elemBottom <= pageViewBottom) 
                && (elemTop >= pageViewTop));               
        return isInView;
    }
});

Solution

  • have you tried something like this:

    if (isElementInView()){
    jElem2Hide.fadeOut(300,function(){
      jElem2Hide.addClass("hideClass");
    });
    }