最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實現(xiàn)編輯器鍵盤抬起時內容跟隨光標距頂位置向上滾動效果

 更新時間:2020年05月28日 17:09:10   作者:碼工思博  
這篇文章主要介紹了vue實現(xiàn)編輯器鍵盤抬起時內容跟隨光標距頂位置向上滾動效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

最近遇到了之前沒有碰到過的一個問題:編輯器輸入內容時,最好讓內容一直保持在可視區(qū)域,比如如果區(qū)域超出的話,就在鍵盤抬起時向上滾動一定距離。

這個和聊天發(fā)消息還有一定的區(qū)別,聊天的話是只要點開輸入框,就將內容定位到最下面: 即 dom.scrollTop = dom.scrollHeight即可,但是這個需要移動的是一部分距離,經過討論最好是讓當前光標的位置在鍵盤抬起時達到可視區(qū)域的最上面

那么這個距離肯定是根據(jù)光標的距離頂部位置決定的,但是光標距離頂部的距離我并沒有度到如何獲取,于是就自己瞎摸索,就有了接下來的解決辦法

原理是利用的是光標屬性可以拿到當前基于該屬性的dom結構,就可以通過當前dom距離頂部的offsetTop值判斷內容本身在鍵盤抬起時到底向上滾多少

廢話不多說,上代碼

let sel = window.getSelection();獲取光標的所有屬性

通過打印它的一些屬性我們可以拿到一些我們所需要的東西(當前dom)

console.log(sel.getRangeAt(0).commonAncestorContainer.parentElement)

這個拿到的就是你當前的dom元素,只需要拿到它的offsetTop即可判斷界面到底向上滾動多少

但是有的時候可能當前的屬性是個行標簽,拿不到offsetTop,那么我們可以找到基于它的父級塊標簽,我這里的上一級就是塊標簽,所以只需執(zhí)行

sel.getRangeAt(0).commonAncestorContainer.parentElement.parentNode.offsetTop

就可以拿到想要的值

再通過

this.$nextTick(() => {
 dom.scrollTop = ket;
 });

這里聲明必須在nextTick里進行操作才能更改成功,否則是沒有效果的

完整demo

let sel = window.getSelection();
let ket = sel.getRangeAt(0).commonAncestorContainer.parentElement.offsetTop;
if(ket==0){//行標簽
 ket = sel.getRangeAt(0).commonAncestorContainer.parentElement.parentNode.offsetTop
}
 this.$nextTick(() => {
 dom.scrollTop = ket;
});

或者通過三元拿值

let ket = sel.getRangeAt(0).commonAncestorContainer.parentElement.offsetTop==0?sel.getRangeAt(0).commonAncestorContainer.parentElement.parentNode.offsetTop:sel.getRangeAt(0).commonAncestorContainer.parentElement.offsetTop;

 this.$nextTick(() => {
 dom.scrollTop = ket;
});

這樣試反正我是成功了,這里說一下鍵盤抬起不抬起不是我判斷是,是由app端調用我的方法告知我的,希望小伙伴們不要走彎路....

總結

到此這篇關于vue實現(xiàn)編輯器鍵盤抬起時內容跟隨光標距頂位置向上滾動效果的文章就介紹到這了,更多相關vue編輯器鍵盤抬起內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue3:setup語法糖使用教程

    vue3:setup語法糖使用教程

    <script setup>是在單文件組件中使用Composition API的編譯時語法糖,下面這篇文章主要給大家介紹了關于vue3:setup語法糖使用的相關資料,需要的朋友可以參考下
    2022-08-08
  • vue3+ts項目之安裝eslint、prettier和sass的詳細過程

    vue3+ts項目之安裝eslint、prettier和sass的詳細過程

    這篇文章主要介紹了vue3+ts項目02-安裝eslint、prettier和sass的詳細過程,在本文講解中需要注意執(zhí)行yarn format會自動格式化css、js、html、json還有markdown代碼,需要的朋友可以參考下
    2023-10-10
  • vue基礎ESLint?Prettier配置教程詳解

    vue基礎ESLint?Prettier配置教程詳解

    這篇文章主要介紹了vue基礎ESLint?Prettier配置教程詳解,本文使用VsCode?+?Vue?+?ESLint?+?Prettier?實現(xiàn)代碼格式規(guī)范?+?保存自動修復代碼js+vue
    2022-07-07
  • vue3.x lodash在項目中管理封裝指令的優(yōu)雅使用

    vue3.x lodash在項目中管理封裝指令的優(yōu)雅使用

    這篇文章主要為大家介紹了vue3.x lodash在項目中管理封裝指令的優(yōu)雅使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • vue-cli4創(chuàng)建項目導入Element-UI踩過的坑及解決

    vue-cli4創(chuàng)建項目導入Element-UI踩過的坑及解決

    這篇文章主要介紹了vue-cli4創(chuàng)建項目導入Element-UI踩過的坑及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • vue 權限管理幾種實現(xiàn)方法

    vue 權限管理幾種實現(xiàn)方法

    本文主要介紹了vue 權限管理幾種實現(xiàn)方法,權限需要前后端結合,前端盡可能的去控制,更多的需要后臺判斷,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • 關于vuex的學習實踐筆記

    關于vuex的學習實踐筆記

    vuex是vue的狀態(tài)管理模式,主要可以解決父子組件嵌套層數(shù)較多,或者兄弟組件之間需要維護同一個狀態(tài)的情況。下面這篇文章主要給大家介紹了關于學習vuex的相關資料,需要的朋友可以參考學習,下面來一起看看吧。
    2017-04-04
  • vue excel上傳預覽和table內容下載到excel文件中

    vue excel上傳預覽和table內容下載到excel文件中

    這篇文章主要介紹了vue excel上傳預覽和table內容下載到excel文件中,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • vue實現(xiàn)分割驗證碼效果

    vue實現(xiàn)分割驗證碼效果

    這篇文章主要為大家詳細介紹了vue實現(xiàn)分割驗證碼效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue自定義指令使用方法詳解

    Vue自定義指令使用方法詳解

    這篇文章主要為大家詳細介紹了Vue自定義指令的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評論

建平县| 宜阳县| 抚松县| 双峰县| 额敏县| 安溪县| 子长县| 房产| 肃宁县| 遂川县| 石渠县| 砚山县| 蒙自县| 三原县| 韩城市| 石渠县| 五家渠市| 中西区| 哈尔滨市| 济南市| 津南区| 大渡口区| 楚雄市| 淮北市| 南华县| 娄底市| 广平县| 类乌齐县| 乐东| 万山特区| 祁东县| 融水| 克拉玛依市| 雷山县| 安徽省| 门头沟区| 磐石市| 新密市| 贺兰县| 林口县| 安庆市|