我希望div在滚动时从左向右移动。我做了什么。
但是,如何让div更快地向右移动?因为div从左到右的速度与滚动条从上到下的速度相同。对不起,如果我对你没有任何意义。
这里是JSFiddle - https://jsfiddle.net/wx8d0a1x/
$(document).ready(function () {
var $horizontal = $('#horizontal');
$(window).scroll(function () {
var s = $(this).scrollTop(),
d = $(document).height(),
c = $(this).height();
scrollPercent = (s / (d - c));
var position = (scrollPercent * ($(document).width() - $horizontal.width()));
$horizontal.css({
'left': position
});
});
});
答案 0 :(得分:2)
您可以通过添加乘法因子或添加因子来增加scrollPercent。例如:
$(document).ready(function () {
var $horizontal = $('#horizontal');
$(window).scroll(function () {
var s = $(this).scrollTop(),
d = $(document).height(),
c = $(this).height();
k = 10;
scrollPercent = k * (s / (d - c));
var position = (scrollPercent * ($(document).width() - $horizontal.width()));
$horizontal.css({
'left': position
});
});
});
答案 1 :(得分:2)
现在你的速度取决于文件的长度。如果您希望它在文档的中间点到达右侧,请将您的滚动值乘以2.如果您希望它向右移动四分之一,请使用乘数4 ..等等。
使用Math.min()确保该框不会向页面滚动。
$(document).ready(function () {
var $horizontal = $('#horizontal');
$(window).scroll(function () {
var s = $(this).scrollTop(),
d = $(document).height(),
c = $(this).height(),
m = 2; //Speed multiplier
scrollPercent = Math.min((s / (d - c)*m),1);
var position = (scrollPercent * ($(document).width() - $horizontal.width()));
$horizontal.css({
'left': position
});
});
});
答案 2 :(得分:1)
只需将乘数添加到
var position = ((scrollPercent * ($(document).width() - $horizontal.width()))*1);