document.scrollTop在Ionic中为0

用户名

当我滚动页面并单击时,我从顶部得到它的y位置,因此在滚动时,它的HTML和JS值不断增加。

但是,当我尝试在Ionic中实现相同效果时,它总是返回0

有关更多信息,请参见此1分钟的视频

下面是我的工作jsfiddle代码,链接到我的jsfiddle,滚动并单击,您将看到带有y位置值的警报。

       $("body").click(function(){
       var scrollPost = $(document).scrollTop();
       alert(scrollPost);
       })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="conta"></div>
  The world is your oyster.
  test<br/><br/><br/><br/>kjh<br/>kjgh<br/>uitz<br/><br/><br/><br/>uztjhg<br/>kjh<br/>
  test<br/><br/><br/><br/>kjh<br/>kjgh<br/>uitz<br/><br/><br/><br/>uztjhg<br/>kjh<br/>test<br/><br/><br/><br/>kjh<br/>kjgh<br/>uitz<br/><br/><br/><br/>uztjhg<br/>kjh<br/>test<br/><br/><br/><br/>kjh<br/>kjgh<br/>uitz<br/><br/><br/><br/>uztjhg<br/>kjh<br/>test<br/><br/><br/><br/>kjh<br/>kjgh<br/>uitz<br/><br/><br/><br/>uztjhg<br/>kjh<br/>test<br/><br/><br/><br/>kjh<br/>kjgh<br/>uitz<br/><br/><br/><br/>uztjhg<br/>kjh<br/>test<br/><br/><br/><br/>kjh<br/>kjgh<br/>uitz<br/><br/><br/><br/>uztjhg<br/>kjh<br/>test<br/><br/><br/><br/>kjh<br/>kjgh<br/>uitz<br/><br/><br/><br/>uztjhg<br/>kjh<br/>
  <div class="test">Thats a test</div>

我如何在Ionic中实现相同目的,这不起作用。这是我的Stackblitz链接

加布里埃尔·巴雷托(Gabriel Barreto)

首先,您永远都不要将jQuery与Angular一起使用,它们会做同样的事情,因此,两者都没有用,jQuery Angular所做的一切也可以做到。因此不建议使用。因此,除非非常需要,否则请勿使用。

您无法观察到scrollTop属性的任何更改,因为它没有移动body,而是在其中移动了内容标签。有一个content 组件,您的ou可以用来获取该属性。这样做:

您的页面.ts

import { Component, ViewChild } from '@angular/core';
import { Content } from 'ionic-angular';

@Component({...})
export class MyPage{
  @ViewChild(Content) content: Content;
  public scrollPost: number = 0;

  getScrollTop() {
    this.scrollPost = this.content.scrollTop;
  }
}

您的HTML:

<ion-content (ionScroll)="getScrollTop()">
  <!-- your page content -->
</ion-content>

使用此功能,您始终scrollPost可以在滚动值的情况下更改的值,但是如果您需要在任何位置使用此值进行单击,请不要仅在您的位置添加单击,ion-content否则对其内部任何元素的任何单击都将无效,而是使用按钮或在getScrollTop方法内部执行所需操作

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章