Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery document.scrollTop在Ionic中为0_Jquery_Angular_Ionic Framework_Ionic2_Ionic3 - Fatal编程技术网

Jquery document.scrollTop在Ionic中为0

Jquery document.scrollTop在Ionic中为0,jquery,angular,ionic-framework,ionic2,ionic3,Jquery,Angular,Ionic Framework,Ionic2,Ionic3,当我滚动我的页面并单击时,我从顶部获得它的y位置,因此当我滚动时,它在HTML和JS中不断增加 但当我试图在Ionic中实现同样的目标时,它总是返回0 欲了解更多信息,请参见此 下面是我的工作JSFIDLE代码,链接到我的,滚动并单击,您将看到带有y位置值的警报 $(“正文”)。单击(函数(){ var scrollPost=$(document.scrollTop(); 警报(滚动柱); }) 世界就是你的牡蛎。 测试

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

但当我试图在Ionic中实现同样的目标时,它总是返回0

欲了解更多信息,请参见此

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

$(“正文”)。单击(函数(){
var scrollPost=$(document.scrollTop();
警报(滚动柱);
})

世界就是你的牡蛎。
测试



<<












kjh
kjgh
uitz



/>

kjh
kjh
uitz




这是一个测试
在使用Ionic时,您不会滚动整个文档。 您应该使用class
scroll content
检查元素的滚动位置

console.log(document.querySelector('.scroll-content').scrollTop);
在某些情况下,您有多个
滚动内容
,因此您可以对它们进行迭代,如:

const scrollContents = document.querySelectorAll('.scroll-content');
for (let i = 0; i < scrollContents.length; ++i) {
    console.log(scrollContents.length[i].scrollTop);
    // do something
}
const scrollContents=document.querySelectorAll('.scroll content');
for(设i=0;i
首先,您不应该将jQuery与Angular一起使用,它们做的是相同的事情,所以两者都没有用,jQuery所做的一切Angular也可以做。所以不推荐这样做。因此,除非非常需要,否则不要使用

您无法观察到对
scrollTop
属性的任何更改,因为它没有移动
正文,而是移动了其中的内容标记。有一个
内容
,您可以使用它来获取此属性。这样做:

你的页面.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内容中添加一个单击,或者对其中任何元素的任何单击都不起作用,相反,在
getScrollTop
方法中使用按钮或执行您需要执行的操作


希望这有帮助。

由于您的意思,我应该将类“scroll content”添加到我的div中,该div具有类“conta”?不,Ionic会自动添加该类。注意,当我在“this.scrollPost=this.content.scrollTop();”行尝试上述解决方案时,出现了一个错误,请看我的stackblitz,这里是编辑链接-guide@user2828442哦,很抱歉,
scrollTop
是内容的属性,而不是函数,只需在结束时删除函数执行,一切正常。更新了我的答案。如何获取单击位置的scrollTop值?因为我想打开上下文菜单there@user2828442您可以向传递事件的某个元素添加一个
单击
(单击)=“myMethod($event)
,在该方法中,用户单击的屏幕上有一个Y和X坐标的属性,只是不记得属性名称,只记得
console.log()
该活动很容易找到。