日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

這篇文章主要介紹了關于uniApp editor微信滑動問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

uniapp 小程序在微信下會出現類似下拉問題


600512453984c.jpg


解決方法是在app.vue 的頁面onLaunch方法內添加禁止下滑方法

this.$nextTick(() => {
    document.body.addEventListener("touchmove", this.addBodyTouchEvent, {
        passive: false
    });
});

問題解決后在uniApp的editor組件內無法滑動


60051278361f3.jpg

解決方法


6005128be6cf5.jpg


data內添加這兩個值


600512a1a2c5a.jpg


添加touchstart和touchend方法手動寫滑動效果

touchstart(e) {
    this.previewScrollTop = e.touches[0].pageY;
},
touchend(e) {
    let distance = e.changedTouches[0].pageY - this.previewScrollTop;
    if (Math.abs(distance) <= 10) {
        return false;
    }
        //距離太短時不滾動
    let dom = this.$refs.editor.$el.getElementsByClassName("ql-editor")[0],
    maxHeight = Math.max(0, dom.scrollHeight - dom.clientHeight), //最大高度范圍
    tempData = this.scrollTop + (distance >= 0 ? -60 : 60); //計算應該高度數據
    if (tempData >= maxHeight) {
        this.scrollTop = maxHeight;
        dom.scrollTop = this.scrollTop;
    } else if (tempData <= 0) {
        this.scrollTop = 0;
        dom.scrollTop = this.scrollTop;
    } else {
        this.scrollTop = tempData;
        dom.scrollTop = this.scrollTop;
    }
}

此時滑動效果出現。但是滑動出不流暢。

本想著寫動畫過渡效果。但是。這個滑動是用dom.scrollTop屬性做的。該屬性不屬于css屬性無法使用css過渡動畫

所以寫了一個js方法。

/**
* 動畫垂直滾動到頁面指定位置
* @param { } dom element對象
* @param { Number } currentY 當前位置
* @param { Number } targetY 目標位置
*/
export function scrollAnimation(dom, currentY, targetY) {
    // 計算需要移動的距離
    let needScrollTop = targetY - currentY;
    let _currentY = currentY;
    setTimeout(() => {
        // 一次調用滑動幀數,每次調用會不一樣
        const dist = Math.ceil(needScrollTop / 10);
        _currentY += dist;
        dom.scrollTo(_currentY, currentY);
        // 如果移動幅度小于十個像素,直接移動,否則遞歸調用,實現動畫效果
        if (needScrollTop > 10 || needScrollTop < -10) {
            scrollAnimation(dom, _currentY, targetY);
        } else {
            dom.scrollTo(_currentY, targetY);
        }
    }, 1);
}

重新調用

touchend(e) {
    let distance = e.changedTouches[0].pageY - this.previewScrollTop;
    if (Math.abs(distance) <= 10) {
        return false;
    }
    //距離太短時不滾動
    let dom = this.$refs.editor.$el.getElementsByClassName("ql-editor")[0],
    maxHeight = Math.max(0, dom.scrollHeight - dom.clientHeight), //最大高度范圍
    tempData = this.scrollTop + (distance >= 0 ? -60 : 60); //計算應該高度數據
    if (tempData >= maxHeight) {
        this.scrollTop = maxHeight;
        dom.scrollTop = this.scrollTop;
    } else if (tempData <= 0) {
        this.scrollTop = 0;
        dom.scrollTop = this.scrollTop;
    } else {
        this.scrollTop = tempData;
        scrollAnimation(dom, 0, this.scrollTop);
    }
}

備注一下:

這個問題本來打算用Transform:translateY(y)屬性來寫的,實際上也做了。

但是在做了之后發現

let dom = this.$refs.editor.$el.getElementsByClassName("ql-editor")[0];


600513701eb7d.jpg


這里選中的元素是紅框下面的元素。在做偏移的時候整個元素偏移。文檔沒顯示完全但是下方確有一大塊空白。當時也沒截圖。記錄一下自己踩得坑。



分享到:
標簽:uniApp editor 微信滑動
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定