国产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)頁上選擇了一些文本 - 可能是將其複制並粘貼到某個地方或共享。如果選擇文本揭示了一些使這些任務更容易的選項,那會不會很酷?這就是選擇菜單的作用。

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

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

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

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

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

最後有一個標籤。內(nèi)部的是我們的選擇菜單控件。 標籤中的任何內(nèi)容都不會在頁面上渲染,直到隨後使用JavaScript添加到頁面。當用戶選擇文本時,我們將“選擇”菜單控件添加到頁面。當用戶選擇該文本時,我們的選擇菜單將提示用戶發(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>“);
  光標:指針;
  位置:絕對;
  寬度:40px;
  身高:40px;
}
#control :: {
  背景色:黑色;
  顏色:白色;
  內(nèi)容:“推文!”;
  顯示:塊;
  字體重量:大膽;
  左鍵:37px;
  保證金頂:6px;
  填充:2px;
  寬度:Max-Content;
  身高:20px;
}

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

到目前為止,示例文本已經(jīng)準備就緒,並且選擇菜單控件已被設計。讓我們繼續(xù)使用JavaScript。進行選擇後,我們將在頁面上獲得所選區(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ā)生什麼。換句話說,我們將做到這一點,以便在單擊提示時發(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的“新推文”頁面,並配有準備就緒的選定文本。

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

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

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

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

演示

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

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

關於該

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

一些UI/UX建議

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

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

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

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

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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

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

外部與內(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)避免使用促進性技術(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ù)目標瀏覽器範圍自動為CSS屬性添加廠商前綴的工具。 1.它解決了手動維護前綴易出錯的問題;2.通過PostCSS插件形式工作,解析CSS、分析需加前綴的屬性、依配置生成代碼;3.使用步驟包括安裝插件、設置browserslist、在構(gòu)建流程中啟用;4.注意事項有不手動加前綴、保持配置更新、非所有屬性都加前綴、建議配合預處理器使用。

什麼是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.值中的十六進制顏色不區(qū)分大小寫,但命名顏色區(qū)分大小寫,如red有效而Red無效。 3.URL區(qū)分大小寫,可能導致文件加載問題。 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