Javascript Scrollheight无法通过ajax获取动态内容渲染的高度,无法从底部初始化Slimscroll
我花了很多时间来采取正确的行动,但所有的行动都失败了 问题: 1-在动态内容渲染中检索滚动高度面临问题 2-不要从底部开始滚动 动态内容加载及时,因此我使用scrollheight和slimscroll 3-由于滚动高度,从底部开始的滚动位置会受到影响 我将slimscroll与聊天系统容器集成,同时从ajax检索内容并将其插入(apppend)聊天区域。 我取那个容器的高度。所以我可以从底部启动scroll(slimscroll插件) 但是在这里发现了两个问题Javascript Scrollheight无法通过ajax获取动态内容渲染的高度,无法从底部初始化Slimscroll,javascript,jquery,html,ajax,slimscroll,Javascript,Jquery,Html,Ajax,Slimscroll,我花了很多时间来采取正确的行动,但所有的行动都失败了 问题: 1-在动态内容渲染中检索滚动高度面临问题 2-不要从底部开始滚动 动态内容加载及时,因此我使用scrollheight和slimscroll 3-由于滚动高度,从底部开始的滚动位置会受到影响 我将slimscroll与聊天系统容器集成,同时从ajax检索内容并将其插入(apppend)聊天区域。 我取那个容器的高度。所以我可以从底部启动scroll(slimscroll插件) 但是在这里发现了两个问题 var chatList = $
var chatList = $('.message-center .chat-list');
var scrollTo_int = chatList.prop('scrollHeight') + 'px';
$('.chat-list').slimScroll({
scrollTo : scrollTo_int,
height: '400',
start: 'bottom',
alwaysVisible: true
});
1-slimscroll不从动态内容的底部开始
2-滚动高度在内容渲染后立即返回零
$.ajax({ // retrieve data request }).done(function (result) {
$.each(data, function (index, value) { // markup concatenation done })
$(html).insertBefore('.message-center .chat-list .typing-status');
然后我启动slimscroll代码,根据scrollheight执行操作
var chatList = $('.message-center .chat-list');
var scrollTo_int = chatList.prop('scrollHeight') + 'px';
$('.chat-list').slimScroll({
scrollTo : scrollTo_int,
height: '400',
start: 'bottom',
alwaysVisible: true
});
但scrollheight显示为零,但如果我等待2秒并将此代码放入settimeout
settimeout中的初始化代码相同
// setTimeout(function () {
// chatToBottom();
// }, 2000);
ScrollHeight返回正确的高度,slimscroll也能完美地工作。我不想等这两秒钟
即使内容已呈现,我也无法获取scrollheight的原因,
如果有人能给我推荐一个好方法,比如:
1-回调方法等待scrollheight>0,然后必须启动函数
2-我想阻止settimeout函数,我想如果内容增加,可能需要1或2秒。这是我的想法
我花了很多时间但没能解决这个问题,你的建议可能会对我有所帮助
谢谢,如果我在页面加载完成后立即打开弹出窗口,或者将弹出窗口可见性设置为隐藏而不是不显示,则Scrollheight返回高度正确,slimscroll也会从底部显示滚动。 我的测试用例: 在更多时间关注scrollheight和slimscroll的过程中,我注意到弹出窗口有一个问题,它隐藏在聊天显示的地方 1-当我在正文内容区显示聊天时从底部开始滚动, 并且滚动高度返回高度大于零 当我在弹出窗口中显示聊天时:
var chatList = $('.message-center .chat-list');
var scrollTo_int = chatList.prop('scrollHeight') + 'px';
$('.chat-list').slimScroll({
scrollTo : scrollTo_int,
height: '400',
start: 'bottom',
alwaysVisible: true
});
2-如果我立即打开聊天弹出窗口,则第3点案例失败,聊天显示正确,滚动高度也返回大于零
3-聊天弹出窗口不会立即打开,因此聊天区显示scrollheight零,也显示slimscroll start(从顶部开始)
现在我必须把逻辑放在,如果用户打开弹出窗口,那么从底部显示聊天
如果用户在聊天之间隐藏弹出窗口,则从用户停止的位置开始
不管怎样,感谢看到这个问题的人,现在我正在处理其他场景