Javascript 当点击并按住按钮时,如何继续滚动图像?
我有一张3000px宽的图片,放在150px宽的图片里。我还有一个左右按钮,可以在div中左右滚动图像Javascript 当点击并按住按钮时,如何继续滚动图像?,javascript,jquery,css,Javascript,Jquery,Css,我有一张3000px宽的图片,放在150px宽的图片里。我还有一个左右按钮,可以在div中左右滚动图像 <div id='box'><img src='img.png'/></div><a id='btnleft'>left</a><a id='btnright'>right</a> 我应该数一数鼠标下移的时间吗?我如何才能做到这一点?这里有一些代码可以做到这一点: 它不能完全满足10px的要求,但很难区分鼠
<div id='box'><img src='img.png'/></div><a id='btnleft'>left</a><a id='btnright'>right</a>
我应该数一数鼠标下移的时间吗?我如何才能做到这一点?这里有一些代码可以做到这一点: 它不能完全满足
10px
的要求,但很难区分鼠标是否会或何时会变成点击。因此,它是连续的,但接近预期结果
没有什么太神秘的,它会检查按钮上鼠标向下的左滚动位置,然后向任一侧设置动画。持续时间根据需要滚动到该位置以保持稳定速度的数量设置。当按钮触发mouseup
或mouseleave
时,动画停止
可以忽略live示例中的一行(这是一个Codepen故障,上面有一条注释)。您在编码中尝试了什么?我尝试过使用类似分页的方法。但当我滚动到最后一页时,该位置不正确。@请出示您当前的代码。我有一个问题,$(“#box”)、溢出是什么意思?很高兴我能提供帮助,谢谢跟进。我在这里声明了两个变量。在两者之间加一个逗号只比
var-box=$(“#box”)短一点;var溢出代码>。希望这能解释它。我太笨了,是否可以放入文档$(document).ready(function()?它已经包装在一个$(function(){…});
中,这是它的缩写。应该作为外部(链接)脚本工作-或者在文档本身中,但是它当然需要
标记。
var imgWidth = 3000;
var divWidth = 130;
var scrollwidth = imgWidth/divWidth;
$('#btnleft').click(function (){ $('#bg_img').animate({left: +=scrollwidth}); });
$('#btnright').click(function (){ $('#bg_img').animate({left: -=scrollwidth}); });
$(function() {
var box = $('#box'), overflow;
$(window).on('load resize', function() {
var range = $('img').outerWidth();
overflow = range-box.width();
});
$('button').on('mousedown', function() {
var spot = box.scrollLeft();
if (this.id == 'left-button') {
var aim = 0,
duration = spot;
}
else {
aim = overflow;
duration = aim-spot;
}
box.animate({scrollLeft: aim}, duration*5);
})
.on('mouseup mouseleave', function() {
box.stop();
});
});