2013-09-25 77 views
0

我有一个div,看起来像这样:Jquery的滚动到元素只有在不可见

<div id="ProductPriceWrap" class="ProductPriceWrap"> 
       <div class="DetailRow RetailPrice" style=""> 
        <span class="Label">MSRP:</span> 
        <strike>$249.00</strike> 
        <span class="YouSave" style=""> (You save <span class="YouSaveAmount">$174.00</span>)</span> 
       </div> 

       <div class="DetailRow PriceRow" style=""> 
        <div class="Value"> 
         <em id="ProductPrice" class="ProductPrice VariationProductPrice" style="color: black; ">$75.00</em> 

        </div> 
       </div> 


      </div> 

而且我做了这个脚本,能够帮助客户时所选择的选项改变了价格:

$(document).ajaxSuccess(function(){ 

var currentPrice = $.trim($("#ProductPrice").text()); 

if(currentPrice == "%%GLOBAL_ProductPrice%%") 
{ 
     $("#ProductPrice").css('color','black'); 

     $("#ProductPrice").removeClass("PriceChanged") 
} 
else 
{ 
    $("#ProductPrice").css('color','red'); 

    $('html, body').animate({ 
     scrollTop: $("#ProductPriceWrap").offset().top 
    }, 1000); 

    $("#ProductPriceWrap").animate({backgroundColor: "#ff0000" }); 

    $("#ProductPriceWrap").animate({backgroundColor: "#ffffff" }); 

    $("#ProductPrice").addClass("PriceChanged"); 
    } 

}); 
</script>​ 

我想更改滚动到#ProductPriceWrap的函数,以便它只会滚动到该元素,如果他们已滚动传递它。含义如果它已经可见,则不滚动到该元素。我对JS和JQ很新,甚至不知道从哪里开始。任何输入非常感谢!谢谢!

+0

我想这是你所追求的:http://stackoverflow.com/questions/5685589/scroll-to-element-only-if-未在 - 视图 - jquery的 –

回答

-1

似乎您正在寻找选择器:visible和功能.animate()

在你有类似的结尾:

if ($("#ProductPriceWrap:not(:visible)")) { 
    $("html, body").animate({ 
    scrollTop: $("#ProductPriceWrap").offset().top 
    }, 1000); 
}