js實現代碼摺疊功能(代碼摺疊快捷鍵)

本文目錄一覽:

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,來給定不同的長度:

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行代碼,是不是非常簡單?童鞋們都理解了嗎?不管有什麼疑問,童鞋們都可以問我。感謝閱讀!

求助如何用JS實現摺疊菜單功能

最簡單的方法就是把二級菜單的樣式設置為:

.oe_secondary_submenu {display:none;}

然後在點擊的時候顯示二級菜單:

$(“.oe_secondary_submenu”).data(“onShow”)=false;    //一開始狀態為隱藏

$(“.oe_secondary_menu_section”).click(function(){

    if($(“.oe_secondary_submenu”).data(“onShow”)){  //切換二級菜單的同時改變狀態

       $(“.oe_secondary_submenu”).hide();

       $(“.oe_secondary_submenu”).data(“onShow”,false);

    }else{

       $(“.oe_secondary_submenu”).show();

       $(“.oe_secondary_submenu”).data(“onShow”,true);

    }

});

複雜一點的話可以用各種插件

javascript怎麼實現列表顯示與摺疊

一、首先定義一個JavaScript function,如下:

function puckerMenu(level) {

var levelLength = (‘row’ + level).length;

var toDo = ‘0’;

for (var iCount = 0 ; iCount document.all.length; iCount++){

if ( document.all[iCount].id.indexOf(‘row’ + level) -1 ( document.all[iCount].id.length levelLength)) {

if ( document.all(‘level’ + level).src.indexOf(‘minus.gif’) -1 ) {

document.all[iCount].style.display = ‘none’;

toDo = ‘1’;

} else {

document.all[iCount].style.display = ‘block’;

toDo = ‘0’;

}

}

}

if ( toDo == ‘1’ ) {

document.all(‘level’ + level).src = ‘images/plus.gif’;

} else {

document.all(‘level’ + level).src = ‘images/minus.gif’;

}

}

二、然後在網頁上定義一個div和一個ul,注意div中要包含一個id為level開頭的image和一個onclick事件,ul中id要包含row,默認情況下是展開的,如果需要默認為閉合,則要在ul中加入style=”display:none”

例子如下:

body

divstyle=”CURSOR: hand”

onclick=”puckerMenu(‘1’);”IMGid=level1

src=”images/minus.gif”public class DataAccess/div

ulid=row1

li private string connString;

divstyle=”CURSOR: hand”

onclick=”puckerMenu(‘2’);”IMGid=level2

src=”images /plus.gif”protected DbConnection OpenConnection()/div

ulid=row2style=”display:none”{…}/ul

li

Other

/ul

/body

MyEclipse中怎樣才能使js代碼 摺疊起來

js好像只有script/script兩個之間的可以摺疊,小段的函數不行

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/289046.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-24 03:01
下一篇 2024-12-24 03:01

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • JS Proxy(array)用法介紹

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

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在著手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29
  • 怎麼寫不影響Python運行的長段代碼

    在Python編程的過程中,我們不可避免地需要編寫一些長段代碼,包括函數、類、複雜的控制語句等等。在編寫這些代碼時,我們需要考慮代碼可讀性、易用性以及對Python運行性能的影響。…

    編程 2025-04-29

發表回復

登錄後才能評論