我有一个jsfiddle - http://jsfiddle.net/stevea/4sBep/2/ - 有一个可拖动的米色盒子。右键单击该框时,会在其右侧创建一个红色框。如果米色方框太靠近右边缘,因此无法看到完整的红色框,则会显示主体元素的滚动条。
问题是我在创建红色框(从底部开始的第三行)后无法读取body的scrollLeft值,以查看红色框没有显示多少,而且我无法设置正文滚动值以显示更多红色框(最后一行)。
有没有人看到这个问题? 感谢
$('#box').draggable();
$('#box').contextmenu(function(e) {
e.preventDefault();
var doc_offset;
boxWidth = $('#box').width();
doc_offset = $(this).offset();
doc_offset.left = doc_offset.left + boxWidth + 20;
$('<div>').css({width:"150px",
height:"150px",
'background-color':'red',
position : 'absolute'
})
.offset(doc_offset)
.appendTo('body');
var scroll_left = $('body').scrollLeft();
$('#scrollStatus').html("Scroll left is " + scroll_left);
$('body').scrollLeft(150);
});
答案 0 :(得分:1)
您正在正确阅读scrollLeft()
。问题是,当你设置它时,你只是要求它滚动150而不是向当前滚动添加150。你应该做的
$('body').scrollLeft(scroll_left + doc_offset.left);
请参阅demo这将设置正文滚动以显示整个红色框。