Maison interface Web js tutoriel Introduction aux composants du framework JavaScript (xmlplus) (5) Barre d'onglets

Introduction aux composants du framework JavaScript (xmlplus) (5) Barre d'onglets

May 05, 2017 am 10:43 AM
选项卡

xmlplus est un JavaScriptframework pour le développement rapide de projets front-end et back-end. Cet article présente principalement l'onglet de la série de conception de composants xmlplus, qui a une certaine valeur de référence. Les amis intéressés peuvent se référer à

Ce chapitre concevra un composant d'onglet, qui est portable et couramment utilisé sur les équipements. un diagramme schématique :

Composition des onglets

Avant l'implémentation spécifique, imaginer comment le composant cible est utilisé sera d'une grande aide à la conception. Par inspection, le composant onglet peut être divisé en une partie conteneur et une partie enfant, comme indiqué dans la structure XML suivante.

<Tabbar id="tabbar">
  <TabItem id="home" label="首页"/>
  <TabItem id="setting" label="设置"/>
  <TabItem id="logs" label="日志"/>
  <TabItem id="about" label="关于"/>
</Tabbar>
Copier après la connexion

Passons maintenant à la partie sous-élément du composant onglet pour voir comment la partie sous-élément est décomposée. À partir du diagramme, vous pouvez voir que la section enfant peut être décomposée en un conteneur enfant et une section enfant contenant une icône et un texte.

<a id="tabitem">
  <Icon id="icon"/>
  <span id="label">首页</span>
</a>
Copier après la connexion

Donc, maintenant notre objectif est très clair, concevoir principalement trois composants : le composant icône Icon, le sous-élément TabItem du composant onglet et le conteneur Tabbar du composant onglet.

Schéma de structure

Ce composant étant relativement simple, les trois sous-composants peuvent être placés au même niveau. Mais veuillez noter que nous avons également quatre composants d'icônes et que nous pouvons créer un enfant pour les contenir. Notre diagramme de structure de composants est donné ci-dessous :

Tabbar/
├── Tabbar
├── TabItem
└── Icon/
├─ ─ À propos
├── Accueil
├── Journaux
└── Paramètres

Mise en œuvre des icônes

Commençons par le plus simple et examinons les quatre composants d'icône. Le composant icône est principalement implémenté en encapsulant du texte SVG. Étant donné que le texte de l'icône est long, seule une section de chaque texte d'icône est interceptée ici.

About: {
  xml: `<svg width="48" height="48" viewBox="0 0 1024 1024">
        <path d="M507.577907 23.272727C240.142852..."/>
     </svg>`
},
Home: {
  xml: `<svg width="48" height="48" viewBox="0 0 1024 1024">
        <path d="M949.082218 519.343245 508.704442..."/>
     </svg>`
},
Logs: {
  xml: `<svg width="48" height="48" viewBox="0 0 1024 1024">
        <path d="M576 125.344l32 0 0 64-32 0 0-64Z..."/>
     </svg>`
},
Setting: {
  xml: `<svg width="48" height="48" viewBox="0 0 1024 1024">
        <path d="M512 336.664c-96.68 0-175.336 78...."/>
     </svg>`
}
Copier après la connexion

Veuillez noter que ces icônes sont situées sous le répertoire/icône virtuel, c'est-à-dire que vous devez les importer comme suit :

xmlplus("ui", function (xp, $_, t) {
  $_().imports({Tabbar: {... }, TabItem: {...}});

  $_("icon").imports({--这里包含了四个图标组件--});
});
Copier après la connexion

Ce qui suit est d'implémenter l'icône Icône du composant, l'icône ici Le composant est différent de celui ci-dessus, il instanciera différentes icônes en fonction du type d'icône d'entrée. Cette conception permet de réutiliser une partie du même code et d’éviter la redondance.

Icon: {
  css: "#icon { width: 1.5em; height: 1.5em; display: inline-block; }",
  opt: { icon: "about" },
  xml: `<span id="icon"/>`,
  fun: function (sys, items, opts) {
    sys.icon.replace("icon/" + opts.icon).addClass("#icon");
  }
}
Copier après la connexion

L'élément fonction de ce composant crée un composant d'icône basé sur le type d'icône d'entrée et remplace l'élément span existant objet . Notez que vous devez rajouter le style après le remplacement.

Implémentation du sous-élément

Selon le principe de l'intérieur vers l'extérieur, implémentez ensuite le sous-élément TabItem du composant onglet. Pour ce composant, vous devez également effectuer un mappage d'attribut dans l'élément de mappage du composant et mapper la valeur de l'attribut id à l'attribut icon du composant icône interne.

TabItem: {
  css: "这里是样式项部分,为便于组件整体展示,略去...",
  map: {"attrs": { icon: "id->icon" } },
  xml: `<a id="tabitem">
       <Icon id="icon"/>
       <span id="label">首页</span>
     </a>`,
  fun: function (sys, items, opts) {
    sys.label.text(opts.label);
    function select() {
      sys.tabitem.addClass("#primary");
    }
    function unselect() {
      sys.tabitem.removeClass("#primary");
    }
    return { select: select, unselect: unselect };
  }
}
Copier après la connexion

Ce composant fournit une interface pour basculer entre les états sélectionnés et non sélectionnés lors du changement d'option. À utiliser avec les conteneurs à onglets.

Implémentation des onglets

Enfin, regardons l'implémentation du composant d'onglet Tabbar. Ce composant écoute l' événement lorsque l'utilisateur appuie sur l'onglet. Il fait principalement deux choses dans l'écouteur : l'une consiste à maintenir le changement d'état de l'onglet ; commuté.

Tabbar: {
  css: "这里是样式项部分,为便于组件整体展示,略去...",
  xml: `<nav id="tabbar"/>`,
  fun: function (sys, items, opts) {
    var sel = this.first();
    this.on("touchend", "./*[@id]", function (e) {
      sel.value().unselect();
      (sel = this).value().select();
      this.trigger("switch", this.toString());
    });
    if (sel) sel.value().select();
  }
}
Copier après la connexion

À ce stade, un composant onglet est terminé. Jetons un coup d'œil à une application spécifique :

xmlplus("example", function (xp, $_, t) {
  $_().imports({
  Index: {
    xml: `<Footer id=&#39;footer&#39;/>`,
    fun: function (sys, items, opts) {
      this.on("switch", (e, target) => console.log(target));
    }
  },
  Footer: {
    xml: `<Tabbar id="footer">
         <TabItem id="home" label="首页"/>
         <TabItem id="setting" label="设置"/>
         <TabItem id="logs" label="日志"/>
         <TabItem id="about" label="关于"/>
       </Tabbar>`
  }
  });
});
Copier après la connexion

Dans le composant Index, vous pouvez écouter les messages de l'onglet. Changez d'événement pour effectuer les opérations correspondantes. Par exemple, utilisez le composant de pile View que nous présenterons plus tard pour effectuer des opérations de commutation entre les pages.

Cette série d'articles est basée sur le framework xmlplus. Si vous ne savez pas grand-chose sur XMLplus, vous pouvez visiter www.xmlplus.cn. Une documentation détaillée de démarrage est disponible ici.

[Recommandations associées]

1. Tutoriel vidéo en ligne js gratuit

2. Manuel de référence JavaScript chinois

3. php.cn Dugu Jiujian (3) - Tutoriel vidéo JavaScript

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Correction : erreur ERR_ADDRESS_UNREACHABLE dans Google Chrome Correction : erreur ERR_ADDRESS_UNREACHABLE dans Google Chrome May 15, 2023 pm 06:22 PM

Plusieurs utilisateurs de Windows se sont plaints du fait que lorsqu'ils tentent d'accéder à certains sites Web sur le navigateur Google Chrome sur leurs systèmes, ils ne parviennent pas à accéder aux pages Web. Il affiche également un message sur le navigateur indiquant « Le site n'est pas accessible » avec le code d'erreur ERR_ADDRESS_UNREACHABLE. Il peut y avoir de nombreuses raisons potentielles derrière ce problème, cela peut être dû à des problèmes de serveur de site Web, aux paramètres du serveur proxy, à une connexion Internet instable, etc. Si vous rencontrez des problèmes similaires, pas de panique. Après avoir analysé en profondeur le problème dans cet article, nous avons obtenu de nombreuses solutions. Avant de continuer, essayez les solutions de contournement suivantes : Essayez de vérifier si l'utilisateur tente d'accéder au site à partir d'autres appareils et qu'il n'y a aucun problème, alors ceci

Logitech G Hub ne fonctionne pas sous Windows 11 ? Réparer maintenant Logitech G Hub ne fonctionne pas sous Windows 11 ? Réparer maintenant Apr 17, 2023 pm 08:16 PM

Logitech GHub est un logiciel qui permet aux utilisateurs de gérer leurs périphériques Logitech. Ce logiciel est compatible avec Windows 11. Cependant, certains utilisateurs ont signalé que Logitech GHub ne fonctionnait pas pour eux sous Windows 11. Nos lecteurs ont signalé que lorsqu'ils essayaient de lancer le logiciel, le chargement se bloquait. Par conséquent, ils ne peuvent pas utiliser le logiciel lorsqu’il ne s’ouvre pas pour eux. Avez-vous également essayé de réparer LogitechGHub qui ne fonctionne pas sous Windows 11 ? Si tel est le cas, les solutions potentielles ci-dessous peuvent lancer LogitechGHub. Quelle est la raison pour laquelle Logitech GHub ne fonctionne pas sous Windows 11 ? avec beaucoup d'autres

Comment réparer le volet d'aperçu qui ne fonctionne pas sous Windows 11 Comment réparer le volet d'aperçu qui ne fonctionne pas sous Windows 11 Apr 24, 2023 pm 06:46 PM

L'une des fonctionnalités fournies avec l'Explorateur de fichiers Windows est le volet d'aperçu, qui affiche un aperçu du fichier que vous avez sélectionné. Cela signifie que vous pouvez afficher le contenu du fichier avant de l'ouvrir. Le volet d'aperçu de l'Explorateur de fichiers fournit des aperçus de différents types de fichiers tels que les documents Office, les PDF, les fichiers texte, les images et les vidéos. Cela fonctionne généralement bien, mais parfois l'aperçu du fichier n'est pas disponible. Récemment, de nombreux utilisateurs de Windows 11 ont soulevé le problème selon lequel le volet d’aperçu de l’Explorateur de fichiers ne fonctionne pas et ne peuvent pas afficher les aperçus des fichiers. Êtes-vous confronté au problème du volet de visualisation qui ne fonctionne pas sur votre ordinateur Windows ? Ensuite, continuez à lire cet article. Nous avons compilé ici une liste de correctifs qui peuvent vous aider à résoudre

Vous ne pouvez pas utiliser MSI Afterburner sous Windows 11 ? Essayez les correctifs suivants. Vous ne pouvez pas utiliser MSI Afterburner sous Windows 11 ? Essayez les correctifs suivants. May 09, 2023 am 09:16 AM

MSIAfterburner est un outil d'overclocking adapté à la plupart des cartes graphiques. En dehors de cela, vous pouvez également l'utiliser pour surveiller les performances de votre système. Mais certains utilisateurs ont signalé que MSIAfterburner ne fonctionnait pas sous Windows 11. Cela peut être dû à plusieurs raisons, que nous aborderons dans les sections suivantes. Cependant, lorsque cela se produit, cela vous empêche de modifier les performances ou de les surveiller pendant le jeu. Comme prévu, cela pose un défi de taille aux joueurs. C'est pourquoi nous avons dédié ce didacticiel pour vous aider à comprendre le problème et vous guider à travers les correctifs les plus efficaces pour le problème MSIAfterburned ne fonctionnant pas sous Windows 11.

Correctif : erreur VAN 1067 lors de l'exécution de Valorant sous Windows 11 Correctif : erreur VAN 1067 lors de l'exécution de Valorant sous Windows 11 May 22, 2023 pm 02:41 PM

Le système d'exploitation est bien meilleur que son prédécesseur et possède des fonctionnalités orientées joueurs comme AutoHDR et DirectStorage, mais les joueurs de Valorant ont eu quelques difficultés à lancer le jeu. Ce n'est pas le premier problème rencontré par les joueurs plus tôt, Valorant qui ne s'ouvre pas sur Windows 11 est un autre problème qui les tourmente, mais nous avons expliqué les moyens de le résoudre. Il semble maintenant que les joueurs de Valorant qui sont passés à Windows 11 soient confrontés à des problèmes dus aux services Secure Boot et TPM2.0, ce qui fait que le menu du jeu n'affiche qu'une option de sortie pendant l'exécution. De nombreux utilisateurs reçoivent l'erreur VAN1067, mais cela ne devrait pas être une source d'inquiétude

Comment désactiver la lecture automatique des vidéos dans le navigateur Opera ? Comment désactiver la lecture automatique des vidéos dans le navigateur Opera ? Apr 22, 2023 pm 10:43 PM

La dernière version du navigateur Opera inclut une nouvelle fonctionnalité de popup vidéo automatique. En utilisant cette fonctionnalité, vous remarquerez que la vidéo apparaîtra automatiquement lorsque vous naviguerez vers un autre onglet du navigateur. Il a été remarqué que cette vidéo contextuelle peut être redimensionnée et déplacée sur l'écran. Lorsque vous revenez à l'onglet Vidéos, il reprend et la fenêtre flottante disparaît. La fonctionnalité vidéo contextuelle est utile pour les utilisateurs multitâches qui aiment regarder des vidéos tout en travaillant. Cependant, tous les utilisateurs d'Opera n'apprécieront pas cette fonctionnalité de popup vidéo automatique. Si vous faites partie de ces utilisateurs du navigateur Opera qui sont ennuyés par les vidéos qui apparaissent à chaque fois que vous changez d'onglet, alors vous avez trouvé le bon article. Nous détaillons ici comment désactiver cette fenêtre contextuelle dans Opera

Pour résoudre ce problème, vous devez utiliser une station Windows interactive Pour résoudre ce problème, vous devez utiliser une station Windows interactive Apr 24, 2023 pm 11:52 PM

Cette opération nécessite une station fenêtre interactive ce qui est un bug assez étrange. Les fenêtres du logiciel permettant aux utilisateurs d'interagir avec l'application ne sont pas ouvertes, vous devez les activer. Ce bug a été lié à la vulnérabilité 2021 Printing Nightmare. Cependant, cela continue à ce jour, affectant les pilotes de votre ordinateur et de vos périphériques. Heureusement, c'est facile à réparer. Pourquoi cette erreur se produit-elle en premier lieu ? Avant de décrire comment corriger cette erreur, assurez-vous de répertorier les causes de cette erreur. De cette façon, vous pourrez prendre les mesures nécessaires pour garantir que cela ne se reproduise plus. Les fichiers corrompus gâchent vos fichiers informatiques – La corruption peut être causée par diverses raisons, allant des logiciels malveillants aux pannes de courant. Il est recommandé d'exécuter une analyse SFC. Vous avez une application antivirus trop zélée – Le logiciel antivirus bloque parfois

La fonction DirectX GetDeviceRemovedReason échoue avec une erreur La fonction DirectX GetDeviceRemovedReason échoue avec une erreur May 17, 2023 pm 03:38 PM

Presque tous les jeux haut de gamme auxquels nous jouons s'appuient sur DirectX pour fonctionner efficacement. Cependant, certains utilisateurs ont signalé avoir rencontré la fonction DirectX GetDeviceRemovedReasonfailedwith suivie de la raison de l'erreur. Les raisons ci-dessus ne sont pas évidentes pour l’utilisateur moyen et nécessitent un certain niveau de recherche pour déterminer la cause profonde et la solution la plus efficace. Pour faciliter les choses, nous avons dédié ce tutoriel à ce problème. Dans les sections suivantes, nous vous aiderons à identifier les causes potentielles et vous guiderons à travers les étapes de dépannage pour éliminer la fonction DirectX GetDeviceRemovedReasonfailedwitherror. quelles sont les causes

See all articles