欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue和react等項(xiàng)目中更簡(jiǎn)單的實(shí)現(xiàn)展開收起更多等效果示例

 更新時(shí)間:2018年02月22日 08:23:49   作者:Haorooms  
這篇文章主要介紹了vue和react等項(xiàng)目中更簡(jiǎn)單的實(shí)現(xiàn)展開收起更多等效果示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言

本文題目中雖然寫有vue和react,但是并非vue和react相關(guān)知識(shí),而是最基本的html5和css3的一些知識(shí),之所以寫vue,是因?yàn)槲易罱?xiàng)目中用到了類似效果,我用vue相關(guān)知識(shí)實(shí)現(xiàn)并不雅觀,用html5和css3實(shí)現(xiàn),則更加完美。

項(xiàng)目案例

項(xiàng)目中有如下效果:

好多展開收起,對(duì)于這個(gè)的實(shí)現(xiàn),我一開始用了vue一些比較挫的dom操作,就是父元素toggleClass一個(gè)類名,進(jìn)行子元素的顯示和隱藏。

由于這個(gè)方法是通用方法,項(xiàng)目中好多地方使用,代碼大概如下:

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");
 }
}

這樣寫,既不友好,后期又難以維護(hù)。最近重構(gòu)項(xiàng)目的時(shí)候,把這些地方都重構(gòu)了,用了今天介紹的方法!更多重構(gòu)要點(diǎn),請(qǐng)點(diǎn)擊vue項(xiàng)目重構(gòu)技術(shù)要點(diǎn) 這篇文章。

html5和css3實(shí)現(xiàn)展開收起

代碼如下:

<details class="haorooms" open>
  <summary>圖表參數(shù)</summary>
  <content>這里是包含的div等其他展示元素</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);  
}
/* 隱藏默認(rèn)三角 */
.haorooms ::-webkit-details-marker {
  display: none;
}
.haorooms ::-moz-list-bullet {
  font-size: 0;
}

代碼解釋

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

隱藏默認(rèn)三角如下:

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

details和summary的ui優(yōu)化

張?chǎng)涡裼衅恼拢瑢?duì)details和summary介紹的很詳細(xì)

對(duì)應(yīng)其UI的優(yōu)化,主要有如下幾個(gè)方面:

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

小三角顏色修改

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

小三角位置修改-右側(cè)顯示

.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;

這樣對(duì)無障礙訪問非常不友好,優(yōu)化方案可以看張?chǎng)涡翊笊竦淖龇ā?/p>

details和summary其他應(yīng)用

1、更多效果

<details>
  <summary>
    <p>測(cè)試內(nèi)容測(cè)試內(nèi)容</p>
    <div class="more">
      <p>haorooms測(cè)試內(nèi)容測(cè)試內(nèi)容...</p>
    </div>
    <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代碼:

/* 隱藏默認(rèn)三角 */
::-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代碼:

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

3、樹形菜單效果

CSS代碼:

/* 隱藏默認(rèn)三角 */
::-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>
    <div>tv1-720p.mp4</div>
    <div>tv2-720p.mp4</div>
    ...
    <div>tv10-720p.mp4</div>
  </details>
  <details>
    <summary>七大罪</summary>
    <div>七大罪B站00合集.mp4</div>
  </details>
  <div>珍藏動(dòng)漫網(wǎng)盤地址.txt</div>
  <div>我們的小美好.mp4</div>
</details>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mpvue中使用Vant Weapp組件庫的方法步驟

    Mpvue中使用Vant Weapp組件庫的方法步驟

    這篇文章主要介紹了Mpvue中使用Vant Weapp組件庫的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • 項(xiàng)目中Axios二次封裝實(shí)例Demo

    項(xiàng)目中Axios二次封裝實(shí)例Demo

    vue項(xiàng)目經(jīng)常會(huì)用到axios來請(qǐng)求數(shù)據(jù),那么首先肯定需要對(duì)這個(gè)請(qǐng)求方法進(jìn)行一個(gè)二次封裝,這篇文章主要給大家介紹了關(guān)于項(xiàng)目中Axios二次封裝的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • vue中的路由跳轉(zhuǎn)tabBar圖片和文字的高亮效果

    vue中的路由跳轉(zhuǎn)tabBar圖片和文字的高亮效果

    這篇文章主要介紹了vue中的路由跳轉(zhuǎn)tabBar圖片和文字的高亮效果,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 完美解決axios在ie下的兼容性問題

    完美解決axios在ie下的兼容性問題

    下面小編就為大家分享一篇完美解決axios在ie下的兼容性問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件

    vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件

    這篇文章主要介紹了vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下
    2021-02-02
  • Vue?插槽?Slots源碼解析與用法詳解

    Vue?插槽?Slots源碼解析與用法詳解

    這篇文章主要介紹了Vue?插槽?(Slots)?源碼解析與用法,通過實(shí)例,我們?nèi)媪私饬四J(rèn)插槽、具名插槽和作用域插槽的用法,并深入理解了其在Vue源碼中的實(shí)現(xiàn)原理,需要的朋友可以參考下
    2024-01-01
  • el-select綁定值遇到的問題小結(jié)

    el-select綁定值遇到的問題小結(jié)

    碰到一個(gè)問題,選擇框的數(shù)據(jù)是后端傳過來的,下拉框的數(shù)據(jù)也是后端傳過來的,但是打開下拉框時(shí),發(fā)現(xiàn)數(shù)據(jù)沒有高亮,最后通過只要選擇框v-model給的值和option的value綁定的值一致,就可以高亮,感興趣的朋友一起看看吧
    2023-12-12
  • Vue.js第三天學(xué)習(xí)筆記(計(jì)算屬性computed)

    Vue.js第三天學(xué)習(xí)筆記(計(jì)算屬性computed)

    這篇文章主要為大家詳細(xì)介紹了Vue.js第三天的學(xué)習(xí)筆記,vue.js計(jì)算屬性computed,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • vue使用require.context實(shí)現(xiàn)動(dòng)態(tài)注冊(cè)路由

    vue使用require.context實(shí)現(xiàn)動(dòng)態(tài)注冊(cè)路由

    這篇文章主要介紹了vue使用require.context實(shí)現(xiàn)動(dòng)態(tài)注冊(cè)路由的方法,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-12-12
  • vue3中sync修飾符的使用詳解

    vue3中sync修飾符的使用詳解

    .sync修飾符是Vue中用于實(shí)現(xiàn)子組件修改父組件傳遞的props值并更新到父組件的功能,它實(shí)際上是一個(gè)語法糖,將子組件的props綁定到一個(gè)名為update:propName的自定義事件上,本文給大家介紹了vue3中sync修飾符的使用,需要的朋友可以參考下
    2023-10-10

最新評(píng)論