Maison interface Web js tutoriel Jquery implémente le plug-in_jquery de la couche contextuelle

Jquery implémente le plug-in_jquery de la couche contextuelle

May 16, 2016 pm 04:17 PM
jquery 弹出层 插件

Il existe encore de nombreuses applications pour les couches pop-up, telles que la connexion et certaines opérations sur la même page. Les biens des autres appartiennent aux autres, et les vôtres vous appartiennent, j'ai donc toujours voulu écrire un pop-up. plug-in de couche. Sans plus tarder, commençons !

1 : Couche de masque

Pour faire apparaître un calque, vous devez d'abord utiliser un calque de masque pour bloquer la page en dessous. Ce calque de masque est en plein écran et la page doit défiler, donc définissez la position : fixe, il a également un effet de transparence. ma définition Le calque de masque CSS s'appelle masque

Copier le code Le code est le suivant :

.masque
{
poste : fixe ;
largeur : 100 % ;
hauteur : 100%;
couleur de fond : blanc ;
Débordement : faites défiler ;
Filtre : alpha(opacité=50);
-moz-opacité : 0,5 ;
Opacité : 0,5 ;
indice z : 20 ;
Débordement : auto ;
haut : 0px;
Droite : 0px ;
>

2 : Principaux paramètres du plug-in

tag : Pourquoi avez-vous besoin d'un tag ? Vous pouvez utiliser des balises pour spécifier les éléments masqués qui doivent être affichés. Vous pouvez spécifier des balises comme sélecteur "#*", afin que les éléments spécifiés puissent être affichés. Ici, j'ai défini la valeur par défaut sur ceci.

mainContent : ce paramètre est-il obligatoire ? Je ne pense pas que ce soit très utile. Je l'ai défini principalement pour les contrôles du serveur. Si tous sont ajoutés au corps, le formulaire ne peut pas être soumis. Mais après avoir cliqué sur Soumettre, la page s'actualisera et le calque pop-up disparaîtra, donc je pense que c'est toujours inutile...

Copier le code Le code est le suivant :

$.fn.xsPop = fonction (options) {
        var defaults = {//Valeur par défaut
              titre : "Fenêtre pop-up", //Titre de la fenêtre
                largeur : 500,
Hauteur : 400,
             tag : this, // Affiche les éléments qui doivent être chargés
              fermer : "Fermer",
                 mainContent: "body"//Container, afin de soumettre le formulaire, mais la soumission actualisera la page...
        };
         var options = $.extend(defaults, options); //Remplacer par les paramètres passés
This.each(function () {
                    xsMain(options.title, options.width, options.heigth, options.tag, options.close, options.mainContent //L'entrée principale du plug-in
);         });
};

3 : Utilisez la fonction xsMain pour ajouter des éléments et lier des événements

Il existe un processus ici qui consiste à contrôler la hauteur et la largeur. Si le paramètre dépasse la hauteur et la largeur de l'écran, il s'adaptera à l'écran, empêchant ainsi le calque contextuel d'être trop grand pour fonctionner. L'autre est d'ajouter du HTML normalement, j'utilise l'ajout de chaîne

Copier le code Le code est le suivant :

//En fonction des données entrantes, ajoutez un calque de masque et affichez une boîte de dialogue
Fonction xsMain(titre, largeur, hauteur, balise, fermeture, mainContent) {
      var divmask = "
";
​​​​ $(mainContent).append(divmask);
          var xsPop1 = " ";
      var allHtml = xsPop1 xsPop2 xsPop3 xsPop5;
​​​​ $(mainContent).append(allHtml);
​​​​ $(tag).show();
​​​​ $(tag).appendTo("#xsPopMain");
//Obtenez la hauteur et la largeur du navigateur et effectuez des jugements ultérieurs (hauteur dépassée, limite de bordure en faisant glisser)
clientHeight = window.screen.height;
clientWidth = window.screen.width;
Si (hauteur > clientHeight) {
            hauteur = clientHeight - 100;
>
Si (largeur > clientWidth) {
               width = clientWidth - 100;
>
           $("#xsPop").css({
"hauteur": hauteur "px",
"width": largeur "px",
"margin-top": "-" (hauteur / 2) "px",
"margin-left": "-" (largeur / 2) "px"
        });
          $("#xsPopMain").css("height", height - $("#xsPopHead").height());
           xsdrag("#xsPopHead", "#xsPop" // Lier l'action de glisser
);              $("#xsColse").bind("click", function () { ClosePop(tag, mainContent); }); // Lier l'action de fermeture
>

4 : Fermer l'action

Ici, vous devez d'abord donner l'étiquette au conteneur, sinon elle sera supprimée ensemble lorsque vous la supprimerez plus tard, et l'étiquette ne sera pas trouvée la deuxième fois qu'elle apparaîtra.

Copier le code Le code est le suivant :
//Ferme le calque contextuel
Fonction ClosePop(tag, mainContent) {
​​​​ $(mainContent).append(tag); //Enregistrez, sinon $("#xsPop").remove() à l'étape 4 effacera la balise
          $(tag).hide();
          $(".mask").remove();
          $("#xsPop").remove();
>

5 : Effet de glisser

Méthode 1 : La première fois que je trouve que c'est un événement qui utilise des éléments, mais il est facile de perdre des éléments et l'effet n'est pas idéal

Copier le code Le code est le suivant :

//Faites glisser et déposez le calque contextuel (méthode échouée, une perte d'objet se produira)
//Control est l'élément glisser, tag est l'élément action, généralement le contrôle est dans la balise
// fonction glisser(contrôle, balise) {
// // var isMove = false;
// var abs_x = 0, abs_y = 0;
// // $(contrôle).mousedown(
// // fonction (événement) {
// // var top = $(tag).offset().top;
// // var gauche = $(tag).offset().left;
//                          abs_x = event.pageX - gauche;
// //                   abs_y = event.pageY - top;
// // isMove = true;
                                }).mouseleave(function () {
// // isMove = false;
// // });
// // $(control).mouseup(function () {
// // isMove = false;
// // });
// // $(document).mousemove(function (event) {
// // si (isMove) {
// // $(tag).css({
// // 'gauche' : event.pageX - abs_x $(tag).width() / 2 - 1,
// // 'top' : event.pageY - abs_y $(tag).height() / 2 - 1
// // // // }
// // renvoie faux ;
// // });
// }

Méthode 2, la méthode que j'utilise actuellement, utilise le bas et le haut du document, mais il y a encore quelques problèmes, le problème du déplacement trop rapide, et les coordonnées ont un petit saut

J'ai également trouvé un problème. Si je fais glisser le calque contextuel directement vers le haut de l'écran et que je le lâche, haha, vous ne pourrez jamais le faire glisser en arrière ou cliquer pour le fermer. J'ai jeté un œil au calque contextuel sur la page d'accueil de Baidu. Ils ont également ce phénomène, mais après avoir zoomé et dézoomé sur la fenêtre, le calque contextuel reviendra au centre. J'ai également essayé de le faire, mais lorsque j'ai lié onresize, il est apparu qu'il ne pouvait pas se déplacer vers le bas. L'événement qu'ils ont utilisé n'était certainement pas onresize. J'ai donc directement jugé que la position de la souris ne pouvait pas être inférieure à 0.

Copier le code Le code est le suivant :

//Faites glisser et déposez le calque contextuel
//Control est l'élément glisser, tag est l'élément action, généralement le contrôle est dans la balise
Fonction xsdrag(contrôle, balise) {
           $(control).mousedown(function (e)//événement emouse
            {
               var offset = $(this).offset(); //La position du DIV sur la page
                 var x = e.pageX - offset.left; //Obtient la distance entre le pointeur de la souris et la bordure gauche de l'élément DIV
                 var y = e.pageY - offset.top; //Obtient la distance entre le pointeur de la souris et la limite supérieure de l'élément DIV
$(document).bind("mousemove", function (ev)//Lier l'événement de mouvement de la souris, car le curseur doit également avoir un effet en dehors de l'élément DIV, donc l'événement de document doit être utilisé à la place de l'événement d'élément DIV
                {
If (ev.pageY <= 0) { return; }//Empêcher la fermeture et le déplacement de la bordure après qu'elle dépasse l'écran
                     $(tag).css({
                    'gauche' : ev.pageX - x $(tag).width() / 2, // Je dois ajouter ceci à ma mise en page
'top' : ev.pageY - y $(tag).height() / 2
                });
            });
        });
$(document).mouseup(function () {
               $(this).unbind("mousemove");
        });
>

6 : Feuille de style

La disposition du calque contextuel utilise des valeurs négatives en haut et en haut de la marge gauche, j'ajoute donc la moitié de la hauteur et de la largeur dans mon js

Copier le code Le code est le suivant :

.masque
{
poste : fixe ;
largeur : 100 % ;
hauteur : 100%;
couleur de fond : blanc ;
Débordement : faites défiler ;
Filtre : alpha(opacité=50);
-moz-opacité : 0,5 ;
Opacité : 0,5 ;
indice z : 20 ;
Débordement : auto ;
haut : 0px;
Droite : 0px ;
>
.PopUp
{
Remplissage : 0px ;
Position : absolue ;
z-index : 21 !important;
Couleur de fond : Blanc ;
Style bordure : solide solide solide ;
Largeur de bordure : 1 px ;
Couleur de la bordure : #C0C0C0;
Gauche : 50 % ;
haut : 50% ;
>
.PopHead
{
Couleur d'arrière-plan : #F0F0F0;
Style bordure inférieure : solide ;
Largeur de bordure inférieure : 1 px ;
Couleur de la bordure inférieure : #C0C0C0;
Hauteur : 30 px ;
Curseur : déplacer ;
clip : rect(0px, auto, auto, 0px);
>
.PopHead b
{
flotter : gauche ;
Affichage : bloquer ;
Couleur : #C0C0C0;
famille de polices : Système ;
taille de police : moyenne ;
Hauteur de ligne : 30 px ;
retrait de texte : 2em ;
>
.PopHead durée
{
flotter : à droite ;
Affichage : bloquer ;
Alignement du texte : à droite ;
Hauteur de ligne : 30 px ;
Curseur : pointeur ;
Retrait du texte : 5 px ;
Couleur : #FF0000;
taille de police : 12 pt ;
>
.PopMain
{
Remplissage : 10 px ;
Débordement : auto ;
>

7 : Utilisation des pages

Les contrôles du serveur de test peuvent soumettre des formulaires

Copier le code Le code est le suivant :

           $(document).ready(function () {
                $("#btnPop").click(function () {
             var options = {
                       titre : "mon papa",
                          largeur : 500,
Hauteur : 400,
                                      fermer : "fermer",
                            mainContent : "formulaire"
                }
                   $("#pop1").xsPop(options);
            });
        });

D'accord, c'est tout. Au départ, je voulais faire une bordure pour changer la taille, mais j'ai trouvé que cela prendrait un certain temps, alors j'ai arrêté de le faire. En fait, pour être honnête, je pense que glisser n'a pas beaucoup de sens, et la taille du contrôle des bordures n'a pas beaucoup de sens non plus, car j'ai défini le débordement et les barres de défilement apparaîtront.

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)

Quel est le répertoire d'installation de l'extension du plug-in Chrome ? Quel est le répertoire d'installation de l'extension du plug-in Chrome ? Mar 08, 2024 am 08:55 AM

Quel est le répertoire d’installation de l’extension du plug-in Chrome ? Dans des circonstances normales, le répertoire d'installation par défaut des extensions de plug-in Chrome est le suivant : 1. L'emplacement du répertoire d'installation par défaut des plug-ins Chrome dans Windows XP : C:\DocumentsandSettings\username\LocalSettings\ApplicationData\Google\Chrome\UserData\ Default\Extensions2. chrome dans Windows7 Emplacement du répertoire d'installation par défaut du plug-in : C:\Users\username\AppData\Local\Google\Chrome\User

Partagez trois solutions expliquant pourquoi le navigateur Edge ne prend pas en charge ce plug-in Partagez trois solutions expliquant pourquoi le navigateur Edge ne prend pas en charge ce plug-in Mar 13, 2024 pm 04:34 PM

Lorsque les utilisateurs utilisent le navigateur Edge, ils peuvent ajouter des plug-ins pour répondre davantage à leurs besoins. Mais lors de l'ajout d'un plug-in, cela indique que ce plug-in n'est pas pris en charge. Comment résoudre ce problème ? Aujourd'hui, l'éditeur partagera avec vous trois solutions. Venez l'essayer. Méthode 1 : essayez d’utiliser un autre navigateur. Méthode 2 : Le Flash Player du navigateur peut être obsolète ou manquant, ce qui rend le plug-in non pris en charge. Vous pouvez télécharger la dernière version sur le site officiel. Méthode 3 : Appuyez simultanément sur les touches « Ctrl+Shift+Delete ». Cliquez sur "Effacer les données" et rouvrez le navigateur.

Comment utiliser la méthode de requête PUT dans jQuery ? Comment utiliser la méthode de requête PUT dans jQuery ? Feb 28, 2024 pm 03:12 PM

Comment utiliser la méthode de requête PUT dans jQuery ? Dans jQuery, la méthode d'envoi d'une requête PUT est similaire à l'envoi d'autres types de requêtes, mais vous devez faire attention à certains détails et paramètres. Les requêtes PUT sont généralement utilisées pour mettre à jour des ressources, comme la mise à jour de données dans une base de données ou la mise à jour de fichiers sur le serveur. Ce qui suit est un exemple de code spécifique utilisant la méthode de requête PUT dans jQuery. Tout d'abord, assurez-vous d'inclure le fichier de la bibliothèque jQuery, puis vous pourrez envoyer une requête PUT via : $.ajax({u

Comment supprimer l'attribut height d'un élément avec jQuery ? Comment supprimer l'attribut height d'un élément avec jQuery ? Feb 28, 2024 am 08:39 AM

Comment supprimer l'attribut height d'un élément avec jQuery ? Dans le développement front-end, nous rencontrons souvent le besoin de manipuler les attributs de hauteur des éléments. Parfois, nous pouvons avoir besoin de modifier dynamiquement la hauteur d'un élément, et parfois nous devons supprimer l'attribut height d'un élément. Cet article explique comment utiliser jQuery pour supprimer l'attribut height d'un élément et fournit des exemples de code spécifiques. Avant d'utiliser jQuery pour exploiter l'attribut height, nous devons d'abord comprendre l'attribut height en CSS. L'attribut height est utilisé pour définir la hauteur d'un élément

Conseils jQuery : modifiez rapidement le texte de toutes les balises a de la page Conseils jQuery : modifiez rapidement le texte de toutes les balises a de la page Feb 28, 2024 pm 09:06 PM

Titre : jQuery Astuces : Modifier rapidement le texte de toutes les balises a de la page En développement web, nous avons souvent besoin de modifier et d'exploiter des éléments de la page. Lorsque vous utilisez jQuery, vous devez parfois modifier le contenu textuel de toutes les balises de la page en même temps, ce qui peut économiser du temps et de l'énergie. Ce qui suit explique comment utiliser jQuery pour modifier rapidement le texte de toutes les balises a de la page et donne des exemples de code spécifiques. Tout d'abord, nous devons introduire le fichier de la bibliothèque jQuery et nous assurer que le code suivant est introduit dans la page : &lt

Utilisez jQuery pour modifier le contenu textuel de toutes les balises Utilisez jQuery pour modifier le contenu textuel de toutes les balises Feb 28, 2024 pm 05:42 PM

Titre : utilisez jQuery pour modifier le contenu textuel de toutes les balises. jQuery est une bibliothèque JavaScript populaire largement utilisée pour gérer les opérations DOM. En développement web, nous rencontrons souvent le besoin de modifier le contenu textuel de la balise de lien (une balise) sur la page. Cet article expliquera comment utiliser jQuery pour atteindre cet objectif et fournira des exemples de code spécifiques. Tout d’abord, nous devons introduire la bibliothèque jQuery dans la page. Ajoutez le code suivant dans le fichier HTML :

Comment Google Chrome permet aux plugins d'animation de s'exécuter Comment Google Chrome permet aux plugins d'animation de s'exécuter Mar 28, 2024 am 08:01 AM

Comment Google Chrome autorise-t-il l'exécution des plugins d'animation ? Google Chrome est très puissant. De nombreux amis aiment utiliser ce navigateur pour regarder des animations vidéo. Cependant, si vous souhaitez regarder diverses vidéos animées, vous devez installer des plug-ins d'animation dans le navigateur. plug-in d'animation, je ne me soucie toujours pas de la vidéo. Comment dois-je résoudre ce problème ? Ensuite, laissez l'éditeur vous montrer les étapes spécifiques pour permettre au plug-in d'animation de s'exécuter dans Google Chrome. Les amis intéressés peuvent venir y jeter un œil. Étapes spécifiques à Google Chrome pour permettre l'exécution des plug-ins d'animation : 1. Exécutez d'abord Google Chrome sur votre ordinateur, puis cliquez sur le bouton du menu principal dans le coin supérieur droit de la page d'accueil (comme indiqué sur l'image). 2. Après avoir ouvert le menu principal, sélectionnez l'option « Paramètres » ci-dessous (comme indiqué sur l'image). 3. Dans les paramètres

Comment débloquer le plug-in Google Chrome s'il est bloqué Comment débloquer le plug-in Google Chrome s'il est bloqué Apr 01, 2024 pm 01:41 PM

Comment débloquer le plug-in Google Chrome ? De nombreux utilisateurs aiment installer divers plug-ins utiles lors de l'utilisation de Google Chrome. Ces plug-ins peuvent fournir des fonctions et des services riches et améliorer l'efficacité du travail. Cependant, certains utilisateurs affirment qu'après avoir installé les plug-ins dans Google Chrome, les plug-ins le feront. toujours affiché est bloqué, alors comment débloquer le plug-in après avoir rencontré cette situation ? Laissez maintenant l'éditeur vous montrer les étapes pour débloquer les plug-ins dans Google Chrome. Les amis dans le besoin devraient venir y jeter un œil. Comment débloquer les plug-ins dans Google Chrome Étape 1. Lorsque l'invite bloquée apparaît, cliquez sur la « Barre de contrôle » et sélectionnez « Installer le contrôle ActiveX ». 2. Ouvrez ensuite le menu « Outils » du navigateur et cliquez sur « Options Internet ». 3.

See all articles