美文网首页
ionic3实现回顶部操作

ionic3实现回顶部操作

作者: undefind33 | 来源:发表于2018-06-23 22:07 被阅读0次

    第一种:

    用id获取模板中content中最高的那个元素,给元素设置id:

    id=“topest”

    然后触发方法:

    toView(){

    let element = document.getElementById(“topest”);

    if(element){

    element.scrollIntoView();

    }

    这也就是我们常说的锚点,这种方法是直接跳到该元素的,体验不是很好,不要用。

    第二种:

    首先导入:

    import { Content } from ‘ionic-angular’;

    然后获取content的实例:

    @ViewChild(Content) content: Content;

    然后调用content的scrollToTop()

    toTop() {

    this.content.scrollToTop();

    }

    这种是滚动上去的。 然而,当content设置为fullscreen时,header会覆盖一部分(不会完全滑动上去),如图:

    所以

    第三种方法:

    滚动到指定坐标位置,三个参数依次为坐标x,y,滚动时间(毫秒单位)。

    scrollTo(){ this.content.scrollTo(0, 0, 300) }

    第二种的scrollToTop(),还有这个scrollTo(0, 0, 300)都是content的方法。更多详情请参考官网。我开始学的时候,就看到它是content标签,其他就不管了。后来再回去看时,发现还有很多有用的内容。这再次告诉我们,多看官网是没错的。

    以上的方法在哪里触发呢,常见的就是用个FabButton,另一种就是双击顶部(如微信朋友圈)

    FabButton:FabButton翻译

    翻译得不是很好哈。 然而FabButton一直放在那里,也不是很好,下面实现滚动到底部时显示,回到顶部后隐藏: 给FabButton添加:

    *ngIf=“top”

    给content添加事件,当滚动时触发:(ionScroll)=”check()” 在ts中,top=false; check():content有个属性scrollTop,为可见视图的最高元素到content顶部的距离(可理解为向下滑动的距离),滑动时,检查它是否大于指定距离,如果为true,则设置top为true,以显示FabButton。

    check(){

    if(this.content.scrollTop>400){

    this.top = true;

    }else{

    this.top = false;

    }

    this.cd.detectChanges();

    }

    但是,ng并没有智能到一有数据变更就能自动检测到的,有些特殊情况,并没有触发ng的变更检测。所以当你已经滑下来了,页面是没有显示FabButton的。 解决:手动触发变更检测,以渲染模板 首先,在ts导入:

    import { Component, ChangeDetectorRef } from ‘@angular/core’;

    然后在构造函数里注入:

    constructor(private cd: ChangeDetectorRef)

    最终在更新变量后,手动调用代码,强制页面检查刷新即可:

    this.cd.detectChanges();

    然而,button突变式的显示与消失,也不好,哈哈。可以为其添加进场与离场动画哦。

    双击回顶部

    这个没什么好说的,就像微信朋友圈那样,在title绑定双击事件(dblclick)就可以了

    末学菜鸟一只,如有错误请指出,不胜感激。

    相关文章

      网友评论

          本文标题:ionic3实现回顶部操作

          本文链接:https://www.haomeiwen.com/subject/iqidyftx.html