如何在Ionic中滚动时隐藏div?

时间:2017-04-15 10:47:01

标签: angularjs ionic-framework

我正在使用Ionic(版本1)构建应用程序,并希望在用户滚动时隐藏控制器中的div。我被困住了,不知道从哪里开始。

这是我的代码:

  service ||= Google::Apis::GmailV1::GmailService.new

  message = RMail::Message.new
  message.header['To'] = params[:gmail][:to]
  message.header['From'] = current_user_google_user_id
  message.header['Subject'] = params[:gmail][:subject]
  message.header['Subject'] = params[:gmail][:subject]
  message.body = params[:gmail][:body]
  message.thread_id = params[:gmail][:thread_id]

  service.send_user_message(
    current_user_google_user_id,
    upload_source: StringIO.new(message.to_s),
    content_type: 'message/rfc822'
  )

1 个答案:

答案 0 :(得分:1)

您的问题没有解释您试图隐藏的<div>以及您尝试使用的代码,但是您可以为on-scroll的{​​{1}}指令指定一个函数吗?并在该功能中做任何你想做的事情。像这样:

ion-content

然后在你的控制器中添加一个名为<ion-content on-scroll="scrollFunction()"> 的函数,或者最好是更具描述性的函数。

scrollFunction

您可以更新此函数中的变量,并将该变量分配给您要显示或隐藏的$scope.getScrollPosition = function() { // Here you can do whatever you want when someone is scrolling. } 的{​​{1}}。

回答关于ng-show函数为什么一直返回0的其他问题。这是一个已知问题,您可以找到类似的报告here。我不完全确定为什么会发生这种情况,但似乎Ionic正在抓住不同视图的滚动位置,导致它保持为0.您可以通过为<div>分配getScrollPosition()来解决此问题。基本上为您提供了一个独特的标识符。它看起来像这样:

delegate-handler

然后在您的控制器中,而不是执行以下操作:

<ion-content>

你需要这样做:

<ion-content delegate-handle="scrollHandler" on-scroll="getScrollPosition()">

这应该可以解决您遇到的问题。