![](/img/trans.png)
[英]JQuery - How to make a button scroll to next div, but respond if scrolled up
[英]how to make next button, prev button in html to scroll a lot of elements in div?(use jquery, javascript)
我有照片
<div id="slider">
<ul>
<li class="li"> Div 1</li>
<li class="li"> Div 2</li>
<li class="li"> Div 3</li>
<li class="li"> Div 4</li>
<li class="li"> Div 5</li>
<li class="li"> Div 6</li>
<li class="li"> Div 7 </li>
<li class="li"> Div 8 </li>
<li class="li"> Div 9</li>
</ul>
</div>
當我有更多的元素時,它會使div充滿。 如何創建下一個按鈕和上一個按鈕,我想在下一個按鈕時滾動一些元素,然后顯示5或6個元素。 當我單擊上一個按鈕時,它會在上一個會話中滾動一些元素。 謝謝!
您可以使用錨點(具有id
屬性的<a>
元素用作命名錨點)。
瀏覽器將頁面滾動到URL上的右側錨點( <a id="myanchor"></a>
),如http://mywebsite.com/foo.html#myanchor
在Javascript方面,你可以通過document.location.hash = "#myanchor";
跳轉到特定的錨點document.location.hash = "#myanchor";
( 講座 )。
因此,您可以向DOM添加錨點並將操作綁定到按鈕以計算正確的錨點名稱。 這是一個例子:
<html>
<head>
<style>
ul li { height: 200px;}
#slider aside {
position: fixed;
top: 0px;
}
</style>
</head>
<body>
<div id="slider">
<aside>
<button class="prev">prev</button>
<button class="next">next</button>
</aside>
<ul>
<li class="li"><a id="1"></a> Div 1</li>
<li class="li"><a id="2"></a> Div 2</li>
<li class="li"><a id="3"></a> Div 3</li>
<li class="li"><a id="4"></a> Div 4</li>
<li class="li"><a id="5"></a> Div 5</li>
<li class="li"><a id="6"></a> Div 6</li>
<li class="li"><a id="7"></a> Div 7 </li>
<li class="li"><a id="8"></a> Div 8 </li>
<li class="li"><a id="9"></a> Div 9</li>
</ul>
</div>
</body>
<script>
var step = 2;
var nbDiv = document.querySelectorAll('#slider ul > a').length
var prevBtn = document.querySelector('#slider button.prev');
prevBtn.addEventListener('click', function onPrev(event) {
actualPosition = parseInt(document.location.hash.slice(1));
if (isNaN(actualPosition))
actualPosition = step;
var newPosition = actualPosition - step;
if (newPosition < 0)
newPosition = 0;
document.location.hash = '#' + newPosition;
});
var nextBtn = document.querySelector('#slider button.next');
nextBtn.addEventListener('click', function onNext(event) {
actualPosition = parseInt(document.location.hash.slice(1));
if (isNaN(actualPosition))
actualPosition = 0;
var newPosition = actualPosition + step;
if (newPosition > nbDiv)
newPosition = nbDiv;
document.location.hash = '#' + newPosition;
});
</script>
</html>
請注意,您可以在Javascript( 講座 )中動態添加錨點:
var lis = document.querySelectorAll('#slider > ul > li');
for (var i=0, li; li=lis[i]; i++) {
var anchor = document.createElement('a');
anchor.name = i.toString();
li.insertBefore(anchor, li.firstChild);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.