2013-11-11 2 views
0

ниже - это код, который у меня есть для scrollTop. Он отлично работает, когда я нацелен на определенный пиксель, но я хочу прокручивать вниз 300 пикселей, вместо scrollTop некоторый div на клик. может ли кто-нибудь помочь?функция прокрутки вниз по щелчку

<div id="button"></div> 
<div1 style="height:300px;">img1</div> 
<div2 style="height:300px;">img2</div> 
<div3 style="height:300px;">img3</div> 
<div4 style="height:300px;">img4</div> 

$(function() { 
$("#button").on("click", function() { 
    $("html, body"). animate({"scrollTop":$().offset().top-300}, 1000); 
    return false; 
    }); 
}); 
+0

'$()' ничего не делает, он должен быть '{scrollTop:. $ (Это) .offset() топ - 300}' – Praveen

ответ

1

$().offset().top ничего не делает. Замените его window.scrollY

$(function() { 
    $("#button").on("click", function() { 
     $("body").animate({"scrollTop": window.scrollY-300}, 1000); 
     return false; 
    }); 
}); 

Также отрицательному вверх и положительна вниз, когда мы говорим о прокрутки, так что вы, вероятно, хотите, чтобы добавить 300 вместо.

+0

работает как шарм! благодаря! :) – kcrocks

3

Попробуйте использовать window.scrollBy(0,300);

+0

это не анимирует tho – urSus

0

Я думаю, что это лучший способ.

var body = $('html, body'); 
$('#button').click(function() { 
    var n = $(document).height() - $(window).height(); 
    body.stop().animate({scrollTop: n }, 1000, function() { 
}); 
}); 
+0

Почему это лучший способ? –

+0

Потому что он прокручивается с использованием фактической высоты страницы минус высота окна. Не только высота окна. – user8973683

+0

О, я вижу, эта тема не об этом xD – user8973683

Смежные вопросы