第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

注意我想說(shuō)的是position而不是index,其實(shí)我要做的是這樣的效果:

注意我想說(shuō)的是position而不是index,其實(shí)我要做的是這樣的效果:

www說(shuō) 2023-05-03 12:08:26
怎樣獲得一個(gè)textarea輸入框中光標(biāo)的位置讓我知道當(dāng)前光標(biāo)的位置,我好做autocomplete下拉框的跟隨
查看完整描述

3 回答

?
倚天杖

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

//獲取選擇域位置,如果未選擇便是光標(biāo)位置

function getSelection(el) {

    return (

    ('selectionStart' in el && function () {

        var l = el.selectionEnd - el.selectionStart;

        return {

            start: el.selectionStart,

            end: el.selectionEnd,

            length: l,

            text: el.value.substr(el.selectionStart, l)

        };

    }) ||

    (document.selection && function () {

        el.focus();

        var r = document.selection.createRange();

        if (r === null) {

            return {

                start: 0,

                end: el.value.length,

                length: 0

            }

        }

        var re = el.createTextRange();

        var rc = re.duplicate();

        re.moveToBookmark(r.getBookmark());

        rc.setEndPoint('EndToStart', re);

        return {

            start: rc.text.length,

            end: rc.text.length + r.text.length,

            length: r.text.length,

            text: r.text

        };

    }) ||

    function () {

        return null;

    }

    )();

}

//替換選擇

function replaceSelection(el) {

    var text = arguments[0] || '';

    return (

    /* mozilla / dom 3.0 */ ('selectionStart' in el && function () {

        el.value = el.value.substr(0, el.selectionStart) + text + el.value.substr(el.selectionEnd, el.value.length);

        return this;

    }) ||

    /* exploder */ (document.selection && function () {

        el.focus();

        document.selection.createRange().text = text;

        return this;

    }) ||

    /* browser not supported */function () {

        el.value += text;

        return jQuery(el);

    }

    )();

}


查看完整回答
反對(duì) 回復(fù) 2023-05-06
?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊

可以考慮使用 Range,但是由于存在兼容性問(wèn)題,也比較麻煩。

新浪的做法挺簡(jiǎn)單的。

用 css 控制,做一個(gè)和 textarea 一樣樣式的 div,放在一個(gè)不可見(jiàn)的地方。綁定事件保證 div 里面的內(nèi)容和 textarea 一致。

如果輸入的是 @ 或者其他需要關(guān)注的字符,就在 div 里面的 @ 外層用 包裹一下 <span>@</span>

這個(gè)時(shí)候,我們就可以用傳統(tǒng)的方法獲取 @ 相對(duì) div 左上角的 xy 座標(biāo)了。根據(jù) xy 座標(biāo),就能確定彈出層相對(duì) textarea 的位置了。


查看完整回答
反對(duì) 回復(fù) 2023-05-06
?
一只甜甜圈

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊

以下是在Vue中的例子實(shí)現(xiàn)

// main.js中

import { position, offset } from 'caret-pos';

Vue.prototype.$positon = position

Vue.prototype.$offset = offset

// edior.vue 的 methods 中,然后在 mounted 鉤子中掛一下這個(gè)方法

bindKeys() {

  let textarea = document.querySelector('.textarea')

  textarea.addEventListener('keyup', (e) => {

    console.log('____________', this.$offset(textarea))

  })

},


查看完整回答
反對(duì) 回復(fù) 2023-05-06
  • 3 回答
  • 0 關(guān)注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)