我正在研究这个plugin,它会滚动一个元素来显示隐藏的内容。
但我无法做到正确,例如,
当我滚动内容以达到数字7,8 时,我想向前滚动一步,只是为了达到数字5,6 但滚动达到数字1,2 。
错误地达到数字1,2 后,当我点击more
时,它会直接向下滚动以达到数字8,9 按钮再次。
我该如何解决?
这是插件代码,
(function($){
$.fn.extend({
scroll_up_down: function(options) {
var defaults = {
associateScroller: '.less',
scrollTarget: '.items-thread',
scrollAmount: 40,
callback: function() {}
}
var options = $.extend(defaults, options);
var o = options;
var scroll_amount = o.scrollAmount;
var associate_scroller = o.associateScroller
var $cm = this.click(function(e){
// Set the varible.
var object = $(this);
var scroll_target = $(o.scrollTarget);
scroll_target.animate({scrollTop:scroll_amount}, 500);
scroll_amount += o.scrollAmount;
return false;
});
var $cm_2 = $(associate_scroller).click(function(e){
// Set the varible.
var scroll_target = $(o.scrollTarget);
scroll_target.animate({scrollTop:-scroll_amount}, 500);
scroll_amount -= o.scrollAmount;
return false;
});
}
});
})(jQuery);
答案 0 :(得分:1)
问题是变量scroll_amount
。首先,它总是滚动到顶部,因为你传递负面!滚动量。你不想那样做。其次,您应该在动画之前而不是之后修改滚动量。
scroll_amount = ...;
scroll_target.animate({scrollTop:scroll_amount}, 500);