如果单击过快,jQuery滚动按钮将停止工作
如果您快速单击“向左滚动”,您应该能够连续单击它至少几次 然后,你需要点击“向右滚动”很多次,但它最终会起作用 下一次“向左滚动”似乎再也不起作用了如果单击过快,jQuery滚动按钮将停止工作,jquery,Jquery,如果您快速单击“向左滚动”,您应该能够连续单击它至少几次 然后,你需要点击“向右滚动”很多次,但它最终会起作用 下一次“向左滚动”似乎再也不起作用了 (顺便说一句,在JSFIDLE:)中我似乎根本无法让它工作。我的解决方案防止了动画上的双重触发,它只绑定到应该能够触发的按钮,并在单击按钮后立即解除绑定: var scrolltime = 1000; var scroll_left = function(e) { $('#scroll_left').unbind('click'); $(
(顺便说一句,在JSFIDLE:)中我似乎根本无法让它工作。我的解决方案防止了动画上的双重触发,它只绑定到应该能够触发的按钮,并在单击按钮后立即解除绑定:
var scrolltime = 1000;
var scroll_left = function(e) {
$('#scroll_left').unbind('click');
$('#scroll_right').click(scroll_right);
$('#left_content').animate({
left: '-50%'
}, scrolltime, function() {
// Animation complete.
});
$('#right_content').animate({
left: '50%'
}, scrolltime, function() {
// Animation complete.
});
}
var scroll_right = function(e) {
$('#scroll_right').unbind('click');
$('#scroll_left').click(scroll_left);
$('#left_content').animate({
left: '50%'
}, scrolltime, function() {
// Animation complete.
});
$('#right_content').animate({
left: '150%'
}, scrolltime, function() {
// Animation complete.
});
}
$(document).ready(function(){
$('#scroll_left').click(scroll_left);
//$('#scroll_right').click(scroll_right);
});
Fiddle:我的解决方案防止在动画上出现双重触发,它仅绑定到应该能够触发的按钮,并在单击按钮后立即解除绑定:
var scrolltime = 1000;
var scroll_left = function(e) {
$('#scroll_left').unbind('click');
$('#scroll_right').click(scroll_right);
$('#left_content').animate({
left: '-50%'
}, scrolltime, function() {
// Animation complete.
});
$('#right_content').animate({
left: '50%'
}, scrolltime, function() {
// Animation complete.
});
}
var scroll_right = function(e) {
$('#scroll_right').unbind('click');
$('#scroll_left').click(scroll_left);
$('#left_content').animate({
left: '50%'
}, scrolltime, function() {
// Animation complete.
});
$('#right_content').animate({
left: '150%'
}, scrolltime, function() {
// Animation complete.
});
}
$(document).ready(function(){
$('#scroll_left').click(scroll_left);
//$('#scroll_right').click(scroll_right);
});
小提琴:
调用$.stop()
对我来说似乎是可行的,但我很难可靠地重现错误
stop
第一个参数设置为true时,将清除当前动画队列,因此重复单击按钮时,仅会执行一个绑定动画事件
调用$.stop()
对我来说似乎是可行的,但我很难可靠地重现错误
stop
第一个参数设置为true时,将清除当前动画队列,因此重复单击按钮时,仅会执行一个绑定动画事件
你没有在你的小提琴中定义
scrolltime
:你没有在你的小提琴中定义scrolltime
:谢谢,我刚才想到了这一点,但是如果你多次单击它,它会变慢-除非你也将动画更改为“线性”。在向左滚动的动画中,我会看到彩色线条。还有人看到了吗?我在谷歌Chrome 21中看到了一种黄色的痕迹:如果你调整窗口大小,痕迹就会消失……谢谢,我当时想到了这一点,但如果你多次单击它,它会变慢——除非你也将动画改为“线性”。在向左滚动的动画中,我会看到彩色线条。还有人看到了吗?我在Google Chrome 21中看到了一条黄色的轨迹:如果你调整窗口大小,轨迹就会消失……这是一种很好的重用函数的方法,可以完全做到这一点:)这是一种很好的重用函数的方法,可以完全做到这一点:)