<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        使用vue和react來實現展開收起等效果

        來源:懂視網 責編:小采 時間:2020-11-27 19:40:42
        文檔

        使用vue和react來實現展開收起等效果

        使用vue和react來實現展開收起等效果:這篇文章主要介紹了vue和react等項目中更簡單的實現展開收起更多等效果示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下前言本文題目中雖然寫有vue和react,但是并非vue和react相關知識,而是最基本的html5和css3的一些知識,之所以寫vue,是因為我
        推薦度:
        導讀使用vue和react來實現展開收起等效果:這篇文章主要介紹了vue和react等項目中更簡單的實現展開收起更多等效果示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下前言本文題目中雖然寫有vue和react,但是并非vue和react相關知識,而是最基本的html5和css3的一些知識,之所以寫vue,是因為我
        這篇文章主要介紹了vue和react等項目中更簡單的實現展開收起更多等效果示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下

        前言

        本文題目中雖然寫有vue和react,但是并非vue和react相關知識,而是最基本的html5和css3的一些知識,之所以寫vue,是因為我最近項目中用到了類似效果,我用vue相關知識實現并不雅觀,用html5和css3實現,則更加完美。

        項目案例

        項目中有如下效果:

        好多展開收起,對于這個的實現,我一開始用了vue一些比較挫的dom操作,就是父元素toggleClass一個類名,進行子元素的顯示和隱藏。

        由于這個方法是通用方法,項目中好多地方使用,代碼大概如下:

        toggleShow() {
         let target = window.event.srcElement;
         if (target.nodeName == "SPAN") {
         target.parentNode.parentNode.classList.toggle("toggleclass");
         target.classList.toggle("el-icon-arrow-right");
         } else {
         target.parentNode.classList.toggle("toggleclass");
         target.children[0].classList.toggle("el-icon-arrow-right");
         }
        }

        這樣寫,既不友好,后期又難以維護。最近重構項目的時候,把這些地方都重構了,用了今天介紹的方法!更多重構要點,請點擊vue項目重構技術要點 這篇文章。

        html5和css3實現展開收起

        代碼如下:

        <details class="haorooms" open>
         <summary>圖表參數</summary>
         <content>這里是包含的p等其他展示元素</content>
        </details>

        css代碼

        .haorooms{position:relative}
        .haorooms summary{
         -webkit-user-select: none;
         -moz-user-select: none;
         -ms-user-select: none;
         user-select: none;
         outline: 0;
        }
        /* 自定義的三角 */
        .haorooms summary::after {
         content: '';
         position: absolute;
         left:0;
         top:0;
         width: 15px; height: 15px;
         background: url(./haorooms.png) no-repeat; /* 自定義的三角圖片 */
         background-size: 100% 100%;
         transition: transform .2s;
        }
        .haorooms:not([open]) summary::after {
         transform: rotate(90deg); 
        }
        /* 隱藏默認三角 */
        .haorooms ::-webkit-details-marker {
         display: none;
        }
        .haorooms ::-moz-list-bullet {
         font-size: 0;
        }

        代碼解釋

        html5的detail和summary本身就是一個展開收起的效果。假如不了解, 可以查看 。

        隱藏默認三角如下:

        .haorooms ::-webkit-details-marker {
         display: none;
        }
        .haorooms ::-moz-list-bullet {
         font-size: 0;
        }

        details和summary的ui優化

        張鑫旭有篇文章,對details和summary介紹的很詳細

        對應其UI的優化,主要有如下幾個方面:

        1、小三角的優化,包括顏色、隱藏、位置、替換。
        2、outline輪廓的去除

        小三角顏色修改

        .haorooms ::-webkit-details-marker {
         color: gray;
        }
        .haorooms ::-moz-list-bullet {
         color: gray;
        }

        小三角位置修改-右側顯示

        .haorooms summary {
         width: -moz-fit-content;
         width: fit-content;
         direction: rtl;
        }
        .haorooms ::-webkit-details-marker {
         direction: ltr;
        }
        .haorooms ::-moz-list-bullet {
         direction: ltr;
        }

        outline輪廓的去除

        我上面用的是

        -webkit-user-select: none;
         -moz-user-select: none;
         -ms-user-select: none;
         user-select: none;
         outline: 0;

        這樣對無障礙訪問非常不友好,優化方案可以看張鑫旭大神的做法。

        details和summary其他應用

        1、更多效果

        <details>
         <summary>
         <p>測試內容測試內容</p>
         <p class="more">
         <p>haorooms測試內容測試內容...</p>
         </p>
         <a>更多</a>
         </summary> 
        </details>

        css代碼

        ::-webkit-details-marker {
         display: none;
        }
        ::-moz-list-bullet {
         font-size: 0;
         float: left;
        }
        summary {
         user-select: none;
         outline: 0;
        }
        .more {
         display: none;
        }
        [open] .more {
         display: block;
        }
        [open] summary a {
         font-size: 0;
        }
        [open] summary a::before {
         content: '收起';
         font-size: 14px;
        }

        2、懸浮菜單效果

        CSS代碼:

        /* 隱藏默認三角 */
        ::-webkit-details-marker {
         display: none;
        }
        ::-moz-list-bullet {
         font-size: 0;
         float: left;
        }
        summary {
         display: inline-block;
         padding: 5px 28px;
         text-indent: -15px;
         user-select: none;
         position: relative;
         z-index: 1;
        }
        summary::after {
         content: '';
         position: absolute;
         width: 12px; height: 12px;
         margin: 4px 0 0 .5ch;
         background: url(./arrow-on.svg) no-repeat;
         background-size: 100% 100%;
         transition: transform .2s;
        }
        [open] summary,
        summary:hover {
         background-color: #fff;
         box-shadow: inset 1px 0 #ddd, inset -1px 0 #ddd;
        }
        [open] summary::after {
         transform: rotate(180deg);
        }
        .box {
         position: absolute;
         border: 1px solid #ddd;
         background-color: #fff;
         min-width: 100px;
         padding: 5px 0;
         margin-top: -1px;
        }
        .box a {
         display: block;
         padding: 5px 10px;
         color: inherit;
        }
        .box a:hover {
         background-color: #f0f0f0;
        }
        .box sup {
         position: absolute;
         color: #cd0000;
         font-size: 12px;
         margin-top: -.25em;
        }

        HTML代碼:

        <p class="bar">
         <details>
         <summary>我的消息</summary> 
         <p class="box">
         <a href>我的回答<sup>12</sup></a>
         <a href>我的私信</a>
         <a href>未評價訂單<sup>2</sup></a>
         <a href>我的關注</a>
         </p>
         </details>
        </p>
        <p>這里放一段文字表明上面的是懸浮效果。</p>

        3、樹形菜單效果

        CSS代碼:

        /* 隱藏默認三角 */
        ::-webkit-details-marker {
         display: none;
        }
        ::-moz-list-bullet {
         font-size: 0;
         float: left;
        }
        details {
         padding-left: 20px;
        }
        summary::before {
         content: '';
         display: inline-block;
         width: 12px; height: 12px;
         border: 1px solid #999;
         background: linear-gradient(to right, #999, #999) no-repeat center, linear-gradient(to top, #999, #999) no-repeat center;
         background-size: 2px 10px, 10px 2px;
         vertical-align: -2px;
         margin-right: 6px;
         margin-left: -20px;
        }
        [open] > summary::before {
         background: linear-gradient(to right, #999, #999) no-repeat center;
         background-size: 10px 2px;
        }

        HTML代碼:

        <details>
         <summary>我的視頻</summary>
         <details>
         <summary>爆肝工程師的異世界狂想曲</summary>
         <p>tv1-720p.mp4</p>
         <p>tv2-720p.mp4</p>
         ...
         <p>tv10-720p.mp4</p>
         </details>
         <details>
         <summary>七大罪</summary>
         <p>七大罪B站00合集.mp4</p>
         </details>
         <p>珍藏動漫網盤地址.txt</p>
         <p>我們的小美好.mp4</p>
        </details>

        上面是我整理給大家的,希望今后會對大家有幫助。

        相關文章:

        如何處理vue渲染前的顯示方面問題(詳細教程)

        通過在vue項目中使用ueditor(詳細教程)

        通過在vue項目中引入noVNC遠程桌面的方法步驟有哪些

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        使用vue和react來實現展開收起等效果

        使用vue和react來實現展開收起等效果:這篇文章主要介紹了vue和react等項目中更簡單的實現展開收起更多等效果示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下前言本文題目中雖然寫有vue和react,但是并非vue和react相關知識,而是最基本的html5和css3的一些知識,之所以寫vue,是因為我
        推薦度:
        標簽: 實現 React 用vue
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲第一福利视频| 亚洲欧洲日产v特级毛片| 亚洲性日韩精品一区二区三区| 久久久久亚洲AV无码永不| 亚洲久热无码av中文字幕| 免费精品99久久国产综合精品| 国内免费高清在线观看| 亚洲热线99精品视频| 亚洲AV无码一区二区三区网址| 日本免费一区二区三区| 亚洲中文字幕伊人久久无码| 美女被免费视频网站| 和日本免费不卡在线v| 久久91亚洲精品中文字幕| 暖暖日本免费中文字幕| 亚洲中文字幕成人在线| 国产性生大片免费观看性| 亚洲Aⅴ无码一区二区二三区软件| 日韩精品一区二区亚洲AV观看| 18女人腿打开无遮掩免费| 亚洲欧洲日产国码无码网站| 久草福利资源网站免费| 久久亚洲中文字幕精品有坂深雪 | 67pao强力打造67194在线午夜亚洲| 精品视频免费在线| 毛片免费全部免费观看| 久久亚洲AV成人无码| 18禁无遮挡无码网站免费| 色天使色婷婷在线影院亚洲| 少妇高潮太爽了在线观看免费| 亚洲午夜久久影院| 久草免费福利视频| 国产成人精品日本亚洲网址| 国产高清免费视频| 亚洲国产精品综合久久网各| 午夜老司机免费视频| 久久精品国产亚洲AV电影网| 亚洲国产精品无码久久一区二区| 美女网站在线观看视频免费的| 精品亚洲视频在线观看| 国产免费牲交视频免费播放 |