当我滚动页面并单击时,我从顶部得到它的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链接。
首先,您永远都不要将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] 删除。
我来说两句