自动滚动网站始终以相同的速度
Autoscroll website always same speed
现在我正在使用这个代码:
function scroll(element, speed) {
element.animate({ scrollTop: $(document).height() }, speed,'linear', function() {
$(this).animate({ scrollTop: 0 }, speed, scroll(element, speed));
});
}
scroll($('#start, #end'), 300000);
但是,当我从移动设备或其他设备上查看时,滚动速度会发生变化,因为响应式设计会导致内容变长或变短。
我需要一个非常简单的 'scroll to bottom (with id or class)' 脚本,但没有像开始变得更快然后最后变得更慢的动画,当有人进入网站时从一开始就以恒定速度滚动。
提前致谢。
对于恒定速度,我们可以简单地使用可靠的 time = distance / speed
方程。
举个例子:
function scroll(element, speed) {
var distance = element.height();
var duration = distance / speed;
element.animate({scrollTop: distance}, duration, 'linear');
}
$(document).ready(function() {
$("button").click(function() {
scroll($("html, body"), 0.1); // Set as required
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<button>Scroll</button>
<div id="content">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed congue in risus eget luctus. Integer lacinia cursus ullamcorper.
In venenatis hendrerit massa, tempor dictum ligula feugiat id. Sed est nulla, fringilla a eleifend et, efficitur
sit amet nisl. Maecenas a tempor nisl. Donec feugiat dictum orci sed dapibus. Mauris nec felis at nisl commodo gravida
at nec arcu. Praesent nibh nisi, pharetra blandit cursus auctor, pretium eget turpis. Donec quis tempus nisi. Aliquam
volutpat dolor magna, id sodales tortor viverra a. Fusce nulla quam, congue in malesuada non, hendrerit eu magna.
Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam vel tristique tortor,
auctor mollis neque.
</p>
<p>
Proin scelerisque sodales nisl, vel commodo lorem consectetur vel. Ut eget orci tortor. Integer at tellus blandit, vulputate
sapien nec, scelerisque orci. Interdum et malesuada fames ac ante ipsum primis in faucibus. Etiam ipsum leo, luctus
et tristique in, gravida ac turpis. Donec imperdiet viverra commodo. Mauris rhoncus sit amet neque eget ultricies.
Sed lectus diam, mollis commodo iaculis eget, maximus ac ante. Mauris posuere ornare leo, vitae scelerisque sem scelerisque
vitae. Aliquam tempor ligula non molestie interdum. Donec eleifend quam ac augue accumsan interdum. Curabitur nisi
tellus, euismod a arcu ut, ultricies varius mauris. Nullam id nibh sem. Aliquam nec libero sit amet dolor auctor
suscipit.
</p>
<p>
Aliquam congue maximus magna. In eu nisi at dolor dignissim mattis. Aliquam sagittis cursus leo ut eleifend. Curabitur sed
fermentum neque, accumsan accumsan eros. Morbi aliquet augue eu auctor bibendum. Ut ac porta justo. Donec feugiat,
urna in semper mollis, risus quam facilisis felis, in feugiat nisi risus at urna. Proin dapibus ex sem, nec vehicula
velit interdum iaculis. Donec molestie bibendum ante, nec cursus urna luctus sit amet. Phasellus lobortis sem eget
arcu congue placerat. Donec at efficitur tortor, vel interdum dolor. Phasellus sodales sapien ipsum.
</p>
<p>
Mauris ut leo erat. Integer convallis ligula lectus, sit amet accumsan orci imperdiet tristique. Duis faucibus dignissim
tempus. Phasellus bibendum mollis auctor. Etiam et quam consectetur, accumsan nisi vel, varius dui. Vivamus tempor
eleifend euismod. In vulputate, dui et vestibulum faucibus, felis enim eleifend est, non volutpat ante nulla eget
ante. Nam porttitor quam non molestie sodales. Duis mi tellus, varius eu viverra non, consectetur eget arcu. Phasellus
nec urna vitae dui scelerisque porttitor suscipit sed diam. Nam in nisi sapien. Nam luctus ac odio vitae sodales.
Integer elementum est eget consequat vehicula. Aliquam elementum et massa vel elementum. Mauris imperdiet sem at
ipsum fermentum, sit amet tempus tortor venenatis. In accumsan ipsum semper, euismod elit eu, luctus massa.
</p>
<p>
Aenean sit amet vehicula odio, non placerat tortor. Morbi hendrerit lacus non sapien luctus, ac tempor libero dictum. Vestibulum
tempus vestibulum dolor non congue. Nulla facilisi. Vivamus non consequat tellus. Cras accumsan finibus felis non
auctor. Morbi volutpat, magna in porttitor malesuada, felis tellus pellentesque tortor, id imperdiet tellus odio
et diam. Ut faucibus ut massa sed blandit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
ante arcu, blandit non aliquet ut, consectetur sed orci. Fusce luctus convallis consectetur. Vivamus mattis bibendum
mi, sit amet euismod libero fermentum nec. Sed venenatis erat sem, nec dictum turpis venenatis sed. Morbi tristique
condimentum leo non tempus. Pellentesque sed tortor et ipsum volutpat dapibus et eu quam.
</p>
</div>
运行整页并调整window滚动之间的高度以查看效果。
现在我正在使用这个代码:
function scroll(element, speed) {
element.animate({ scrollTop: $(document).height() }, speed,'linear', function() {
$(this).animate({ scrollTop: 0 }, speed, scroll(element, speed));
});
}
scroll($('#start, #end'), 300000);
但是,当我从移动设备或其他设备上查看时,滚动速度会发生变化,因为响应式设计会导致内容变长或变短。
我需要一个非常简单的 'scroll to bottom (with id or class)' 脚本,但没有像开始变得更快然后最后变得更慢的动画,当有人进入网站时从一开始就以恒定速度滚动。
提前致谢。
对于恒定速度,我们可以简单地使用可靠的 time = distance / speed
方程。
举个例子:
function scroll(element, speed) {
var distance = element.height();
var duration = distance / speed;
element.animate({scrollTop: distance}, duration, 'linear');
}
$(document).ready(function() {
$("button").click(function() {
scroll($("html, body"), 0.1); // Set as required
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<button>Scroll</button>
<div id="content">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed congue in risus eget luctus. Integer lacinia cursus ullamcorper.
In venenatis hendrerit massa, tempor dictum ligula feugiat id. Sed est nulla, fringilla a eleifend et, efficitur
sit amet nisl. Maecenas a tempor nisl. Donec feugiat dictum orci sed dapibus. Mauris nec felis at nisl commodo gravida
at nec arcu. Praesent nibh nisi, pharetra blandit cursus auctor, pretium eget turpis. Donec quis tempus nisi. Aliquam
volutpat dolor magna, id sodales tortor viverra a. Fusce nulla quam, congue in malesuada non, hendrerit eu magna.
Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam vel tristique tortor,
auctor mollis neque.
</p>
<p>
Proin scelerisque sodales nisl, vel commodo lorem consectetur vel. Ut eget orci tortor. Integer at tellus blandit, vulputate
sapien nec, scelerisque orci. Interdum et malesuada fames ac ante ipsum primis in faucibus. Etiam ipsum leo, luctus
et tristique in, gravida ac turpis. Donec imperdiet viverra commodo. Mauris rhoncus sit amet neque eget ultricies.
Sed lectus diam, mollis commodo iaculis eget, maximus ac ante. Mauris posuere ornare leo, vitae scelerisque sem scelerisque
vitae. Aliquam tempor ligula non molestie interdum. Donec eleifend quam ac augue accumsan interdum. Curabitur nisi
tellus, euismod a arcu ut, ultricies varius mauris. Nullam id nibh sem. Aliquam nec libero sit amet dolor auctor
suscipit.
</p>
<p>
Aliquam congue maximus magna. In eu nisi at dolor dignissim mattis. Aliquam sagittis cursus leo ut eleifend. Curabitur sed
fermentum neque, accumsan accumsan eros. Morbi aliquet augue eu auctor bibendum. Ut ac porta justo. Donec feugiat,
urna in semper mollis, risus quam facilisis felis, in feugiat nisi risus at urna. Proin dapibus ex sem, nec vehicula
velit interdum iaculis. Donec molestie bibendum ante, nec cursus urna luctus sit amet. Phasellus lobortis sem eget
arcu congue placerat. Donec at efficitur tortor, vel interdum dolor. Phasellus sodales sapien ipsum.
</p>
<p>
Mauris ut leo erat. Integer convallis ligula lectus, sit amet accumsan orci imperdiet tristique. Duis faucibus dignissim
tempus. Phasellus bibendum mollis auctor. Etiam et quam consectetur, accumsan nisi vel, varius dui. Vivamus tempor
eleifend euismod. In vulputate, dui et vestibulum faucibus, felis enim eleifend est, non volutpat ante nulla eget
ante. Nam porttitor quam non molestie sodales. Duis mi tellus, varius eu viverra non, consectetur eget arcu. Phasellus
nec urna vitae dui scelerisque porttitor suscipit sed diam. Nam in nisi sapien. Nam luctus ac odio vitae sodales.
Integer elementum est eget consequat vehicula. Aliquam elementum et massa vel elementum. Mauris imperdiet sem at
ipsum fermentum, sit amet tempus tortor venenatis. In accumsan ipsum semper, euismod elit eu, luctus massa.
</p>
<p>
Aenean sit amet vehicula odio, non placerat tortor. Morbi hendrerit lacus non sapien luctus, ac tempor libero dictum. Vestibulum
tempus vestibulum dolor non congue. Nulla facilisi. Vivamus non consequat tellus. Cras accumsan finibus felis non
auctor. Morbi volutpat, magna in porttitor malesuada, felis tellus pellentesque tortor, id imperdiet tellus odio
et diam. Ut faucibus ut massa sed blandit. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque
ante arcu, blandit non aliquet ut, consectetur sed orci. Fusce luctus convallis consectetur. Vivamus mattis bibendum
mi, sit amet euismod libero fermentum nec. Sed venenatis erat sem, nec dictum turpis venenatis sed. Morbi tristique
condimentum leo non tempus. Pellentesque sed tortor et ipsum volutpat dapibus et eu quam.
</p>
</div>
运行整页并调整window滚动之间的高度以查看效果。