我找到了执行我需要的jquery代码 - 水平滚动div。
所以我有几个div,每个都包含滚动窗格滚动,而我想要实现的是在用户点击它时让div滚动。这是我目前的代码:
$(document).ready(function() {
$('.section').click(function(event) {
$('.section').css('border', '1px solid #dfdfdf');
$('.section').find('.jspDrag').css('display', 'none');
$('.section').removeClass('active');
$(this).addClass('active');
if ($('.section').hasClass('active')) {
$(this).find('.scroll-pane').each(function() {
var scrollPane = $(this).jScrollPane();
var api = scrollPane.data('jsp');
scrollPane.bind(
'mousewheel',
function (event, delta, deltaX)
{
api.scrollByX(delta*-50);
return false;
});
});
};
$(this).css('border', '1px solid #4ea0dc');
$(this).find('.jspDrag').css('display', 'initial');
event.stopPropagation();
});
$('body').on('click', function(event) {
$('.section').css('border', '1px solid #dfdfdf');
$('.section').removeClass('active');
$(this).find('.scroll-pane').css('display', 'block');
$(this).find('.jspDrag').css('display', 'none');
});
});
找到的jquery脚本放在hasClass('active')
部分之后。
代码工作几乎完美,除了点击anoter div后,虽然滚动条从前一个消失,但用户仍然可以滚动它(以及当前选中的)。在点击每个其他div时,用户可以在将鼠标悬停在它们上时滚动所有先前选择的div。这不是我需要的,我只希望当前选择的div可以滚动。添加课程' active'如果它使代码更轻,则不是必需的。
我怀疑它可能与.each()
部分有关,但无法弄清楚如何修复它。
任何人都可以帮忙吗?