У меня есть неупорядоченный список с перечисленными номерами. После этого у меня есть тег div со стрелками влево и вправо, чтобы указать текущий выбранный номер. Я пробовал следующий код, но он не работает.
Мое требование заключается в том, что всякий раз, когда нажимается любое из чисел, список должен медленно прокручиваться вверх/вниз до позиции div с помощью id = "icon"
. Как я могу реализовать это?
$('ul li').click(function() {
alert("dfd");
$('html, body').animate({
scrollTop: $("#icon").offset().top
}, 2000);
})
ul {
list-style: none;
}
span {
position: fixed;
top: 50px;
left: 35px
}
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<span id = "icon">< ></span>
Ok. но как я могу прокручивать список, когда на него нажимают
Вместо анимации HTML/BODY попробуйте анимировать UL, как показано в приведенном ниже примере.
$('ul li').click(function(){
var index=$(this).index();
var listPosition = -1*index*50;
$('ul').animate({
top: listPosition
}, 600);
})
ul {
list-style:none;
position: fixed;
margin-top: 100px;
}
li{
height: 50px;
line-height: 50px;
}
span{
position:fixed;
top:0;
left:35px;
height: 50px;
line-height: 50px;
margin-top:100px;
}
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<span id = "icon"> < > </span>
это работает нормально. Спасибо. но я хочу вверх/вниз. текущий код прокручивать слова вверх. Я тоже хочу прокрутить вниз
это не связано с CSS, я думаю, мне нужно внести еще несколько изменений в js?
Просто чтобы вы знали, вы должны использовать объекты HTML для отображения
<
и>
. Это специальные символы. Вместо этого используйте<
и>