


Utilisez vue et réagissez pour obtenir des effets tels que l'expansion et l'effondrement
Cet article présente principalement des exemples d'implémentation plus simples d'effets d'expansion, de réduction et d'autres dans des projets tels que vue et réagir. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer
Avant-propos
Bien que le titre de cet article contienne vue et réagis, il n'est pas lié à vue et réagir, mais à quelques connaissances de base en html5 et css3. La raison pour laquelle j'écris vue est parce que j'ai un effet similaire. utilisé dans des projets récents. J'ai utilisé des connaissances liées à vue pour y parvenir, ce qui n'est pas élégant, mais utiliser html5 et css3 pour y parvenir est encore plus parfait.Cas du projet
Le projet a les effets suivants :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"); } }Écrit comme ceci, il est peu convivial et difficile à utiliser. maintenir plus tard. Lorsque j'ai refactorisé le projet récemment, j'ai refactorisé tous ces endroits et utilisé la méthode présentée aujourd'hui ! Pour plus de points de refactoring, veuillez cliquer sur l'article Points techniques de refactorisation du projet Vue.
html5 et css3 implémentent l'expansion et le repli
Le code est le suivant :<details class="haorooms" open> <summary>图表参数</summary> <content>这里是包含的p等其他展示元素</content> </details>code 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; }
Explication du code
Le détail et le résumé du HTML5 lui-même ont un effet d'expansion et de réduction. Si vous ne comprenez pas, vous pouvez vérifier. Masquer le triangle par défaut comme suit :.haorooms ::-webkit-details-marker { display: none; } .haorooms ::-moz-list-bullet { font-size: 0; }
Optimisation de l'interface utilisateur des détails et du résumé
Zhang Xinxu a un article qui présente les détails et le résumé très bien Dans le détail, correspond à l'optimisation de son UI, qui comprend principalement les aspects suivants : 1 Optimisation des petits triangles, y compris la couleur, le masquage, la position et le remplacement.2. Suppression du contour
Modifier la couleur du petit triangle
.haorooms ::-webkit-details-marker { color: gray; } .haorooms ::-moz-list-bullet { color: gray; }
Modifier la position du petit triangle - affichage à droite
.haorooms summary { width: -moz-fit-content; width: fit-content; direction: rtl; } .haorooms ::-webkit-details-marker { direction: ltr; } .haorooms ::-moz-list-bullet { direction: ltr; }
Suppression du contour
Ce que j'ai utilisé ci-dessus est-webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; outline: 0;Ceci est très hostile à l'accessibilité. voir l’approche de Maître Zhang Xinxu.
détails et résumé des autres applications
1. Plus d'effets
<details> <summary> <p>测试内容测试内容</p> <p class="more"> <p>haorooms测试内容测试内容...</p> </p> <a>更多</a> </summary> </details>code 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. Effet de menu suspendu
Code 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; }Code 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. effet de menu
Code 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; }Code 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>Ce qui précède est ce que j'ai compilé pour tout le monde, j'espère que cela sera utile à tout le monde à l'avenir Utile. Articles associés :
Comment gérer les problèmes d'affichage avant le rendu de la vue (tutoriel détaillé)
En utilisant ueditor dans le projet vue (Tutoriel détaillé)
Quelles sont les étapes pour introduire le bureau à distance noVNC dans un projet vue
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Ace est un éditeur de code intégrable écrit en JavaScript. Il correspond aux fonctionnalités et aux performances des éditeurs natifs comme Sublime, Vim et TextMate. Il peut être facilement intégré à n’importe quelle page Web et application JavaScript. Ace est maintenu en tant qu'éditeur principal de l'IDE Cloud9 et est le successeur du projet Mozilla Skywriter (Bespin).

Lorsque nous avons utilisé Amap, le responsable nous a recommandé de nombreux cas et démos, mais ces cas utilisaient tous des méthodes natives d'accès et ne fournissaient pas de démos de vue ou de réaction. Cependant, dans cet article, de nombreuses personnes ont écrit sur l'accès à vue2. , nous verrons comment vue3 utilise l'API Amap couramment utilisée. J'espère que cela sera utile à tout le monde !

Vue.js est devenu aujourd'hui un framework très populaire dans le développement front-end. À mesure que Vue.js continue d'évoluer, les tests unitaires deviennent de plus en plus importants. Aujourd'hui, nous allons explorer comment écrire des tests unitaires dans Vue.js 3 et fournir quelques bonnes pratiques ainsi que des problèmes et solutions courants.

Dans le processus de développement réel du projet, il est parfois nécessaire de télécharger des fichiers relativement volumineux, puis le téléchargement sera relativement lent, de sorte que l'arrière-plan peut nécessiter que le front-end télécharge des tranches de fichiers. Par exemple, 1 A. Le flux de fichiers de gigaoctets est découpé en plusieurs petits flux de fichiers, puis l'interface est invitée à fournir respectivement les petits flux de fichiers.

Lorsque je travaillais sur le site miroir chatgpt, j'ai découvert que certains sites miroir n'avaient pas d'effets de curseur de machine à écrire, mais seulement une sortie de texte. Ne voulaient-ils pas le faire ? Je veux le faire de toute façon. Je l'ai donc étudié attentivement et j'ai réalisé l'effet de la machine à écrire et du curseur. Je vais maintenant partager ma solution et mes rendus ~.

Dans Vue.js, les développeurs peuvent utiliser deux syntaxes différentes pour créer des interfaces utilisateur : la syntaxe JSX et la syntaxe des modèles. Les deux syntaxes ont leurs propres avantages et inconvénients. Discutons de leurs différences, avantages et inconvénients.

Comment implémenter la fonction de glissement d'élément ? L'article suivant vous guidera étape par étape pour comprendre comment utiliser Vue3 pour implémenter une fonction élégante de déplacement d'éléments et apprendre des points de connaissances pertinents à travers des exemples. J'espère que cela vous sera utile !

Vue.js convient aux projets de petite et moyenne taille et aux itérations rapides, tandis que React convient aux applications grandes et complexes. 1) Vue.js est facile à utiliser et convient aux situations où l'équipe est insuffisante ou l'échelle du projet est petite. 2) React a un écosystème plus riche et convient aux projets avec des performances élevées et des besoins fonctionnels complexes.
