我有一个 jquery 脚本,它在单击按钮时滚动到具有给定类的某个元素。
我已经做到了,所以当您单击“下一步”按钮时,它会滚动到第一个具有“突出显示”类的元素,该元素位于长文本中。
我真正需要的是设置或升级该脚本,以便您可以在单击“上一个”和“下一个”按钮时使用相同的类从一个元素导航到另一个元素。到目前为止,我有这个脚本,它只滚动到具有给定类的第一个元素以及上一个和下一个按钮,从中只有下一个按钮可以使用。
用这么简单的脚本就能做出这样的事情吗?或者我需要使用其他插件。
这是我到目前为止的情况 Fiddle。
在 html 中有很多文本,您可以在 jsfiddle 的链接上查看它...这里我将其替换为“...”:
<div class="navigation">
<a href="#" id="prev">Previous</a>
<br>
<a href="#" id="next">Next</a>
</div>
<div class="demo-container">
<p>
...
<span class="highlight">ipsum</span>
...
<span class="highlight">Duis</span>
...
<span class="highlight">convallis</span>
...
<span class="highlight">blandit</span>
...
<span class="highlight">Sed</span>
....
</p>
</div>
脚本:
/** scroll to element function **/
function scrollToElement(selector, time, verticalOffset) {
time = typeof (time) != 'undefined' ? time : 500;
verticalOffset = typeof (verticalOffset) != 'undefined' ? verticalOffset : 0;
element = $(selector);
offset = element.offset();
offsetTop = offset.top + verticalOffset;
$('html, body').animate({
scrollTop: offsetTop
}, time);
}
/**document ready**/
$(document).ready(function () {
/* scroll to -150px before .highlight with animation time of 1000ms */
$('#next').click(function (e) {
e.preventDefault();
scrollToElement('.highlight', 1000, -150);
});
});
CSS:
.highlight{
background-color:red;
}
.navigation{
position:fixed;
background: #FFFFFF;
padding:5px;
border: 1px solid;
}
你可以自由编辑我的 jsfiddle。
欢迎任何帮助!