我无法掌握如何处理伏特中的前端事件,希望这个具体问题可以帮助启发我。
我从网络广播实施了简单的聊天程序,并希望以此为基础。具体来说,我希望聊天窗口在填充聊天窗口时保持滚动到底部。我认为关键是jquery .animate({scrollTop:...})方法,但我不明白如何在伏特中实现它。有人可以启发我吗?
我的第一次尝试是控制器中的“scroll_bottom”方法 https://github.com/mmattthomas/chat/blob/master/app/main/controllers/main_controller.rb#L30-L36
def scroll_bottom
`
var newscrollHeight = $('.panel-body').attr('scrollHeight') - 20;
//alert('newscrollHeight:' + newscrollHeight);
$('.panel-body').animate({ scrollTop: newscrollHeight }, 'normal');
`
end
javascript运行,但变量返回NaN。
查看在这里: https://github.com/mmattthomas/chat/blob/master/app/main/views/main/index.html
即使这个具体的例子也没有解决整个问题(如果其他人添加到聊天中,什么事件可以将聊天窗口设置为底部?) - 那么如何最好地用伏特实现这个客户端操作?
答案 0 :(得分:0)
嗯,关于Volt的一件好事是,它使用OpalRb进行客户端工作。要在Volt中运行类似jQuery的东西,我认为最简单的方法是使用Opal wrapper,它允许使用Ruby访问jQuery等库。
使用opal-jquery包装器,我会像这样实现一个jQuery动画:
panel_body = Element.find(".panel-body")
panel_body.animate({ scrollTop: panel_body.children.height }, speed: "normal")
编辑:
Here is a fork of your project我已经针对此问题实施了修复程序,您可以查看。