js控制collapse,js控制顯示和隱藏

本文目錄一覽:

vue實現collapse摺疊板動畫,可設置動畫時間,動畫延遲等

但是這個動畫並不支持設置時間,進一步封裝還是可以的。

重寫了一個collapse 的動畫。

效果如下

新建collapseMixins.js,內容如下

建立一個collapseTransition.js,內容如下

collapseMixins.js是一個混合類,因為我封裝了其他不同類型的動畫,所以做了一個mixins。

使用的時候引入collapseTransition組件就行。

Vue.js+Element-UI實現點擊按鈕控制左側菜單摺疊與展開

在element-ui中採用NavMenu導航菜單作為系統菜單的實現。

官方文檔中NavMenu導航菜單有一個Menu Attributes屬性collapse,是一個 bollean 類型,用於控制是否水平摺疊菜單。

我們可以通過設置collapse屬性的值為 true 或 false 來控制菜單的摺疊與展開。

解決方案

1.實現一個按鈕,

2.在data中定義一個數據collapse

3.實現方法toggleCollapse

4.在el-menu中動態綁定屬性值collapse

問題:在左側菜單的展開與摺疊中,文本和圖標摺疊了,但是菜單的長度並沒有摺疊,發現原因是菜單的長度給了一個固定的值,而實際上我們需要動態給定長度。如果菜單是展開的,長度是等於文本的長度+圖標的長度。如果菜單是摺疊的,長度是等於圖標的長度。我們可以根據isCollapse的值進行判斷,通過它的值為true或者是false,來給定不同的長度:

js ,控制光標位置

1、獲取光標位置

function getCursortPosition (ctrl) {

//獲取光標位置函數 

var CaretPos = 0; // IE Support

if (document.selection) { 

ctrl.focus (); 

var Sel = document.selection.createRange ();

Sel.moveStart (‘character’, -ctrl.value.length);

CaretPos = Sel.text.length; } 

 // Firefox support 

else if (ctrl.selectionStart || ctrl.selectionStart == ‘0’)

CaretPos =ctrl.selectionStart; 

return (CaretPos); }

2.設置光標位置

function setCaretPosition(ctrl, pos){

//設置光標位置函數 

if(ctrl.setSelectionRange) {

ctrl.focus(); 

ctrl.setSelectionRange(pos,pos);

 } else if (ctrl.createTextRange){ 

 varrange = ctrl.createTextRange(); 

 range.collapse(true); 

 range.moveEnd(‘character’, pos);

 range.moveStart(‘character’, pos); 

 range.select(); 

 } 

 }

3、將光標移動到輸入框

ctrl.focus();

Vuejs高度的改變動畫探索:摺疊面板Collapse組件的最佳實現方案

使用過CSS transition屬性的童鞋們應該都清楚,當元素在過渡開始或者結束時的高度為auto時,動畫是不生效的;那麼如何才能實現元素高度的改變動畫效果呢? 本篇文章將為大家提供一個基於Vue3的非常簡潔的解決方案。

要實現高度的改變動畫,我們需要在動畫進行之前為元素設置準確的高度。

當元素由可見變為隱藏狀態時,我們需要先獲取元素的計算高度,將其設置到style屬性上,然後執行一個觸發瀏覽器渲染引擎重繪的動作,然後再將高度設置為0,這樣高度的改變動畫就會正常進行。

當元素由隱藏變為可見狀態時,我們需要先將高度設置為auto,然後獲取元素的計算高度,再將高度設置為0,然後執行一個觸發瀏覽器渲染引擎重繪的動作,然後再將高度設置為計算高度,這樣高度的改變動畫就會正常進行。

現在,根據以上實現原理分析,我們創建一個高度的改變動畫通用組件CollapseTransition.vue。該組件非常簡單,僅需30多行代碼。我幾乎每行代碼都有注釋,大家應該能看懂吧?

以上就是實現高度的改變動畫的通用組件源碼,童鞋們理解了嗎?是不是非常簡單?現在,我們實現摺疊面板組件。使用過element-ui這樣的UI庫的童鞋們應該都知道,摺疊面板是由兩個組件摺疊面板Collapse和摺疊面板項CollapseItem組合而成;

現在,我們先實現CollapseItem.vue組件。為了節省篇幅,我將源碼中的空行全部去掉了,縮進比較規範,自認為可讀性還行;源碼如下,一共30多行,我直接在源碼中添加了注釋,就不過多解釋了。

這是CollapseItem.vue組件的樣式。

現在,我們實現Collapse.vue組件。該組件仍然只有30多行,大家理解起來應該很輕鬆,我就直接在源碼里添加註釋作為講解了;

以上就是摺疊面板組件的實現。包括摺疊動畫組件,一共僅需不到150行代碼,是不是非常簡單?童鞋們都理解了嗎?不管有什麼疑問,童鞋們都可以問我。感謝閱讀!

原創文章,作者:LDJX,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/149152.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
LDJX的頭像LDJX
上一篇 2024-11-04 17:51
下一篇 2024-11-04 17:51

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • JS圖片沿着SVG路徑移動實現方法

    本文將為大家詳細介紹如何使用JS實現圖片沿着SVG路徑移動的效果,包括路徑製作、路徑效果、以及實現代碼等內容。 一、路徑製作 路徑的製作,我們需要使用到SVG,SVG是可縮放矢量圖…

    編程 2025-04-27
  • 如何使用JS調用Python腳本

    本文將詳細介紹通過JS調用Python腳本的方法,包括使用Node.js、Python shell、child_process等三種方法,以及在Web應用中的應用。 一、使用Nod…

    編程 2025-04-27
  • 如何反混淆美團slider.js

    本文將從多個方面詳細闡述如何反混淆美團slider.js。在開始之前,需要明確的是,混淆是一種保護JavaScript代碼的方法,其目的是使代碼難以理解和修改。因此,在進行反混淆操…

    編程 2025-04-27
  • Python要學JS嗎?

    Python和JavaScript都是非常受歡迎的編程語言。然而,你可能會問,既然我已經學了Python,是不是也需要學一下JS呢?在本文中,我們將圍繞這個問題進行討論,並從多個角…

    編程 2025-04-27
  • 解決js ajax post 419問題

    對於使用ajax post請求時出現的419問題,我們需要進行以下幾個方面的闡述,包括返回碼的含義、可能出現的情況、解決方案等內容。 一、解析419返回碼 419返回碼錶示用戶超時…

    編程 2025-04-27
  • Three.js實現室內模型行走

    在本文中,將介紹如何使用Three.js創建室內模型,並在場景中實現行走。為了實現這一目標,需要完成以下任務: 加載室內模型及材質貼圖 實現攝像機控制,支持用戶自由行走 添加光源,…

    編程 2025-04-25

發表回復

登錄後才能評論