国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
演示
一些UI/UX建議
首頁 web前端 css教程 如何使用選擇API為選定文本創(chuàng)建動作

如何使用選擇API為選定文本創(chuàng)建動作

Mar 25, 2025 am 10:29 AM

如何使用選擇API為選定文本創(chuàng)建動作

單擊,拖動,發(fā)布:您剛剛在網(wǎng)頁上選擇了一些文本 - 可能是將其復(fù)制并粘貼到某個地方或共享。如果選擇文本揭示了一些使這些任務(wù)更容易的選項(xiàng),那會不會很酷?這就是選擇菜單的作用。

如果您曾經(jīng)使用過在線編輯器,則可能已經(jīng)熟悉選擇菜單。當(dāng)您選擇文本時,選擇選項(xiàng)可能會浮在其上方。實(shí)際上,我正在將此草稿編寫在一個完全做到這一點(diǎn)的編輯中。

讓我們看看如何使用JavaScript的選擇API創(chuàng)建這樣的選擇菜單。 API使我們可以訪問網(wǎng)頁上所選區(qū)域的空間和內(nèi)容。這樣,我們可以將選擇菜單正好放在所選文本上方,并訪問所選文本本身。

這是一個帶有一些示例文本的HTML片段:

 <article>
  <h1>選擇下面的文本</h1> 
  <p>級聯(lián)樣式表(CSS)是一種樣式的語言,用于描述用標(biāo)記語言(例如HTML)編寫的文檔的介紹。 CSS與HTML和JavaScript一起是萬維網(wǎng)的基石技術(shù)。 CSS旨在使演示文稿和內(nèi)容的分離,包括布局,顏色和字體。這種分離可以提高內(nèi)容可訪問性,在演示特征的規(guī)范中提供更多的靈活性和控制。 </p>

<template> <span> </span> </template></article>

最后有一個標(biāo)簽。內(nèi)部的是我們的選擇菜單控件。 標(biāo)簽中的任何內(nèi)容都不會在頁面上渲染,直到隨后使用JavaScript添加到頁面。當(dāng)用戶選擇文本時,我們將“選擇”菜單控件添加到頁面。當(dāng)用戶選擇該文本時,我們的選擇菜單將提示用戶發(fā)推文。

這是CSS樣式的CSS:

 ??刂?{
    背景圖像:url(“數(shù)據(jù):圖像/svg xml,<svg xmlns="”" http: width="'40px'height">'40px'> <forefer object> <forefer xmlns="'http://www.w3.org/1999/xhtml'" style="'width:40px;height:40px;line-height:40px;text-align:center;color:transparent;text-shadow:" yellow black font-size>?  </forefer></forefer></svg>“);
  光標(biāo):指針;
  位置:絕對;
  寬度:40px;
  身高:40px;
}
#control :: {
  背景色:黑色;
  顏色:白色;
  內(nèi)容:“推文!”;
  顯示:塊;
  字體重量:大膽;
  左鍵:37px;
  保證金頂:6px;
  填充:2px;
  寬度:Max-Content;
  身高:20px;
}

請查看本文,了解我如何使用表情符號(?)作為背景圖像。

到目前為止,示例文本已經(jīng)準(zhǔn)備就緒,并且選擇菜單控件已被設(shè)計。讓我們繼續(xù)使用JavaScript。進(jìn)行選擇后,我們將在頁面上獲得所選區(qū)域的大小和位置。然后,我們使用這些測量值來分配選擇菜單控件的位置,這是在所選區(qū)域的頂部中間。

 var control = document.importnode(document.queryselector('template')。內(nèi)容,true).childnodes [0];
document.queryselector('p')。onpointerup =()=> {
  讓Selection = document.getSelection(),text = selection.tostring();
  if(text!==“”){
    令rect = selection.getRangeat(0).getBoundingClientRect();
    control.style.top =`calc($ {rect.top} px -48px)`;
    control.style.left =`calc($ {rect.left} px calc($ {rect.width} px / 2)-40px)`;
    控制['text'] = text; 
    document.body.body.appendchild(控制);
  }
}

在此代碼中,我們首先獲得

接下來,我們?yōu)閹в惺纠谋镜脑氐腛nPointerup事件編寫處理程序功能。在功能中,我們使用document.getSelection()獲得選擇和選定的字符串。如果所選的字符串不是空的,則我們通過getBoundingClientRect()獲得所選區(qū)域的大小和位置,然后將其放置在RECT變量中。

使用RECT,我們計算并分配控件的頂部和左側(cè)位置。這樣,選擇菜單控件將放置在選定區(qū)域的上方,并水平居中。我們還將所選字符串分配給控件的用戶定義屬性。稍后,這將用于共享文本。

最后,我們使用附錄()將控件添加到網(wǎng)頁中。此時,如果我們在頁面上選擇一些示例文本,則選擇菜單控件將出現(xiàn)在屏幕上。

現(xiàn)在,我們可以編碼單擊選擇菜單控件時會發(fā)生什么。換句話說,我們將做到這一點(diǎn),以便在單擊提示時發(fā)推文。

 control.AddeventListener('Pointerdown',OnControldown,true);

函數(shù)oncontroldown(event){
  window.open(`https://twitter.com/intent/tweet?text = $ {this.text}`)
  this.remove();
  document.getSelection()。removeAllranges();
  event.stoppropagation();
}

單擊控件時,將打開一個Twitter的“新推文”頁面,并配有準(zhǔn)備就緒的選定文本。

推文提示后,不再需要選擇菜單控件,并且被刪除,以及頁面上的任何選擇。在這一點(diǎn)上,Potternown事件進(jìn)一步沿DOM樹的層流層面的方式也被停止。

我們還需要一個事件處理程序,以進(jìn)行頁面的OnPoTredown事件:

 document.onpointerdown =()=> {    
  令控制= document.queryselector('#Control');
  if(control!== null){control.remove(); document.getSelection()。removeAllranges();}
}

現(xiàn)在,在單擊頁面上的任何位置,但選擇菜單控件時,將刪除頁面上的控件和任何選擇。

演示

這是克里斯(Chris)制作的更漂亮的版本:

這是一個在選擇菜單中顯示多個控件的示例:

關(guān)于該

我們使用它并不是完全必要的。取而代之的是,您也可以嘗試簡單地隱藏和顯示控件的其他方式,例如隱藏的HTML屬性或CSS顯示。您還可以在JavaScript本身中構(gòu)建選擇菜單控件。編碼選擇將取決于您執(zhí)行它們的效率,以及它們的后備(如果需要)以及它們?nèi)绾芜m合您的應(yīng)用程序。

一些UI/UX建議

雖然這是一個很好的效果,但使用它時有幾件事需要考慮以確保良好的用戶體驗(yàn)。例如,避免將自己的文本注入文本選擇中 - 您知道,就像在自動生成的推文中附加鏈接回到您的網(wǎng)站一樣。這是侵入性和煩人的。如果有任何理由這樣做,例如添加源引用,請在發(fā)布之前先查看最終文本的預(yù)覽。否則,用戶可能會因加法而感到困惑或感到驚訝。

還有一件事:最好是菜單控件不在。我們不希望它覆蓋過多的周圍內(nèi)容。這種事情加起來是CSS的“數(shù)據(jù)丟失”,我們希望避免這種情況。

底線:了解為什么您的用戶需要在您的網(wǎng)站上選擇文本并以避免他們嘗試做的方式添加控件。

以上是如何使用選擇API為選定文本創(chuàng)建動作的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

什么是'渲染障礙CSS”? 什么是'渲染障礙CSS”? Jun 24, 2025 am 12:42 AM

CSS會阻塞頁面渲染是因?yàn)闉g覽器默認(rèn)將內(nèi)聯(lián)和外部CSS視為關(guān)鍵資源,尤其是使用引入的樣式表、頭部大量內(nèi)聯(lián)CSS以及未優(yōu)化的媒體查詢樣式。1.提取關(guān)鍵CSS并內(nèi)嵌至HTML;2.延遲加載非關(guān)鍵CSS通過JavaScript;3.使用media屬性優(yōu)化加載如打印樣式;4.壓縮合并CSS減少請求。建議使用工具提取關(guān)鍵CSS,結(jié)合rel="preload"異步加載,合理使用media延遲加載,避免過度拆分與復(fù)雜腳本控制。

外部與內(nèi)部CSS:最好的方法是什么? 外部與內(nèi)部CSS:最好的方法是什么? Jun 20, 2025 am 12:45 AM

thebestapphachforcssdepprodsontheproject'sspefificneeds.forlargerprojects,externalcsSissBetterDuoSmaintoMaintainability andReusability; forsMallerProjectsorsingle-pageApplications,InternaltCsmightBemoresobleable.InternalCsmightBemorese.it.it'sclucialtobalancepopryseceneceenceprodrenceprodrenceNeed

我的CSS必須在較低的情況下嗎? 我的CSS必須在較低的情況下嗎? Jun 19, 2025 am 12:29 AM

否,CSSDOESNOTHAVETOBEINLOWERCASE.CHOMENDENS,使用flowercaseisrecommondendendending:1)一致性和可讀性,2)避免使用促進(jìn)性技術(shù),3)潛在的Performent FormanceBenefits,以及4)RightCollaboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraboraborationWithInteams。

CSS案例靈敏度:了解重要的 CSS案例靈敏度:了解重要的 Jun 20, 2025 am 12:09 AM

cssismostlycaseminemintiment,buturlsandfontfamilynamesarecase敏感。1)屬性和valueslikeColor:紅色; prenotcase-sensive.2)urlsmustmustmatchtheserver'server'scase,例如

什么是AutoPrefixer,它如何工作? 什么是AutoPrefixer,它如何工作? Jul 02, 2025 am 01:15 AM

Autoprefixer是一個根據(jù)目標(biāo)瀏覽器范圍自動為CSS屬性添加廠商前綴的工具。1.它解決了手動維護(hù)前綴易出錯的問題;2.通過PostCSS插件形式工作,解析CSS、分析需加前綴的屬性、依配置生成代碼;3.使用步驟包括安裝插件、設(shè)置browserslist、在構(gòu)建流程中啟用;4.注意事項(xiàng)有不手動加前綴、保持配置更新、非所有屬性都加前綴、建議配合預(yù)處理器使用。

什么是CSS計數(shù)器? 什么是CSS計數(shù)器? Jun 19, 2025 am 12:34 AM

csscounterscanautomationallymentermentermentections和lists.1)usecounter-ensettoInitializize,反插入式發(fā)芽,andcounter()orcounters()

CSS:何時重要(何時不)? CSS:何時重要(何時不)? Jun 19, 2025 am 12:27 AM

在CSS中,選擇器和屬性名不區(qū)分大小寫,而值、命名顏色、URL和自定義屬性則區(qū)分大小寫。1.選擇器和屬性名不區(qū)分大小寫,例如background-color和Background-Color相同。2.值中的十六進(jìn)制顏色不區(qū)分大小寫,但命名顏色區(qū)分大小寫,如red有效而Red無效。3.URL區(qū)分大小寫,可能導(dǎo)致文件加載問題。4.自定義屬性(變量)區(qū)分大小寫,使用時需注意大小寫一致。

什么是圓錐級函數(shù)? 什么是圓錐級函數(shù)? Jul 01, 2025 am 01:16 AM

theconic-Gradient()functionIncsscreatesCircularGradientsThatRotateColorStopSaroundAcentralPoint.1.IsidealForPieCharts,ProgressIndicators,colordichers,colorwheels和decorativeBackgrounds.2.itworksbysbysbysbydefindefingincolordefingincolorstopsatspecificains off.

See all articles