Атрибут 'вершины' изменения JQUERY onClick

Я пытаюсь создать вертикальный скроллер с помощью jQuery, и я испытываю затруднения из-за своего кода..

function scrolldown() {     
    var newtop = $('.scroll-content').css('top') + '250';   
    $('.scroll-content').css({top: newtop});
}

CSS:

.scroll-content {position:absolute; top:0px}

Никакие проблемы с CSS я могу изменить значения в поджигателе и хорошо работаю, но код является проблемой. Я хочу, чтобы это добавило 250 пкс к текущему значению, но это не работает и при использовании .html(newtop) я вижу, что вывод для "главного" значения является 0px250 … какие-либо идеи, что я делаю неправильно?

10
задан Gabriele Petrioli 26 July 2010 в 21:21
поделиться

4 ответа

$('.scroll-content').css('top')

вернет что-то вроде «123px», что является строкой (из-за «px»). Если вы добавите «250», у вас будет «123px250», что вам не подходит ...

Попробуйте вместо этого:

var newtop = $('.scroll-content').position().top + 250;
$('.scroll-content').css('top', newtop + 'px');
17
ответ дан 3 December 2019 в 18:30
поделиться

Вам нужно преобразовать строку css ('0px') в int (0), чтобы вы могли добавить 250, затем снова добавить 'px'

function scrolldown() {
  var newtop = parseInt($('.scroll-content').css('top')) + 250;
  $('.scroll-content').css({top: newtop+'px'});
}
3
ответ дан 3 December 2019 в 18:30
поделиться

В качестве альтернативы размещенным ответам, вы можете использовать += через .animate() без длительности, например так:

$(".scroll-content").animate({ top: "+=250px" }, 0);​

Это сделает изменение, добавляющее 250px мгновенно. Если вы действительно хотите, чтобы это было анимировано, просто измените 0 на 400, например, чтобы получить длительность 400 мс.

1
ответ дан 3 December 2019 в 18:30
поделиться

Убедитесь, что вы добавляете целое число к вашему верхнему значению, а не строка. см. ниже:

var newtop = $('.scroll-content').css('top') + 250;
    $('.scroll-content').css({top: newtop}); }
0
ответ дан 3 December 2019 в 18:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: