国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison interface Web js tutoriel écrivez une fonction de panier d'achat simple en JavaScript

écrivez une fonction de panier d'achat simple en JavaScript

Feb 04, 2017 pm 01:31 PM

Il existe de nombreux codes pour la mise en ?uvre d'un panier d'achat sur Internet. J'ai lu quelques points de connaissances aujourd'hui et j'ai décidé de les écrire moi-même, j'ai donc écrit un simple panier d'achat. Ensuite, j'expliquerai la mise en ?uvre spécifique.

1. Utilisez html pour implémenter le contenu

2. Utilisez CSS pour modifier l'apparence

3. ) pour concevoir des effets d'animations.

La première étape consiste à concevoir la page html. J'utilise un grand div pour contenir tous les produits, puis j'utilise différents div pour encapsuler différents produits, j'utilise ul li is. implémenté. Le code d'implémentation spécifique est le suivant (les produits impliqués dans le code sont copiés avec désinvolture en ligne et n'ont aucune valeur de référence) :

<div id="goods">
  <div class="goodsItem">
   <ul class="goditem">
    <li class="godpic"><img  src="/static/imghw/default1.png"  data-src="images/1.png"  class="lazy"   alt="écrivez une fonction de panier d'achat simple en JavaScript" ></li>
    <li class="godprice">¥25.00</li>
    <li class="godinfo">《飛鳥集》中很多詩(shī)歌是用孟加拉文創(chuàng)作的,這部詩(shī)集最早由鄭振鐸先生譯介到中國(guó)。</li>
    <li class="godadd"><a href="javascript:;">加入購(gòu)物車</a></li>
   </ul>
  </div>
  <div class="goodsItem">
   <ul class="goditem">
    <li class="godpic"><img  src="/static/imghw/default1.png"  data-src="images/2.png"  class="lazy"   alt="écrivez une fonction de panier d'achat simple en JavaScript" ></li>
    <li class="godprice">¥56.00</li>
    <li class="godinfo">本書主要介紹了如何使用現(xiàn)有的Web 相關(guān)技術(shù)構(gòu)建Android 應(yīng)用程序。</li>
    <li class="godadd"><a href="javascript:;">加入購(gòu)物車</a></li>
   </ul>
  </div>
  <div class="goodsItem">
   <ul class="goditem">
    <li class="godpic"><img  src="/static/imghw/default1.png"  data-src="images/3.png"  class="lazy"   alt="écrivez une fonction de panier d'achat simple en JavaScript" ></li>
    <li class="godprice">¥37.00</li>
    <li class="godinfo">用文字打敗時(shí)間。馮唐最暢銷作品,雜文才是其銷量最好、最受歡迎的作品。</li>
    <li class="godadd"><a href="javascript:;">加入購(gòu)物車</a></li>
   </ul>
  </div>
  <div class="goodsItem">
   <ul class="goditem">
    <li class="godpic"><img  src="/static/imghw/default1.png"  data-src="images/1.png"  class="lazy"   alt="écrivez une fonction de panier d'achat simple en JavaScript" ></li>
    <li class="godprice">¥25.00</li>
    <li class="godinfo">《飛鳥集》中很多詩(shī)歌是用孟加拉文創(chuàng)作的,這部詩(shī)集最早由鄭振鐸先生譯介到中國(guó)。</li>
    <li class="godadd"><a href="javascript:;">加入購(gòu)物車</a></li>
   </ul>
  </div>
  <div class="goodsItem">
   <ul class="goditem">
    <li class="godpic"><img  src="/static/imghw/default1.png"  data-src="images/2.png"  class="lazy"   alt="écrivez une fonction de panier d'achat simple en JavaScript" ></li>
    <li class="godprice">¥56</li>
    <li class="godinfo">本書主要介紹了如何使用現(xiàn)有的Web 相關(guān)技術(shù)構(gòu)建Android 應(yīng)用程序。</li>
    <li class="godadd"><a href="javascript:;">加入購(gòu)物車</a></li>
   </ul>
  </div>
  <div class="goodsItem">
   <ul class="goditem">
    <li class="godpic"><img  src="/static/imghw/default1.png"  data-src="images/3.png"  class="lazy"   alt="écrivez une fonction de panier d'achat simple en JavaScript" ></li>
    <li class="godprice">¥37.00</li>
    <li class="godinfo">用文字打敗時(shí)間。馮唐最暢銷作品,雜文才是其銷量最好、最受歡迎的作品。</li>
    <li class="godadd"><a href="javascript:;">加入購(gòu)物車</a></li>
   </ul>
  </div>
 </div>
 
 <div id="godcar">
  <div class="dnum">0</div>
  <div class="dcar">
   <img  src="/static/imghw/default1.png"  data-src="images/car.jpg"  class="lazy"   alt="écrivez une fonction de panier d'achat simple en JavaScript" >
  </div>
 </div>

Cela implique un point de connaissance : in

  • Ajouter au panier
  • , j'ai utilisé javascript:; Cela signifie qu'aucun saut ne sera effectué et qu'un vide sera exécuté. événement .

    étape 2 : Concevoir l'apparence. Pour un meilleur affichage, j'ai défini la largeur, la hauteur et la bordure du div contenant chaque liste de produits. Il est à noter que afin de fixer le panier, une certaine position. , définissez sa position sur fixe, puis réglez-la sur la position souhaitée en définissant en haut et à gauche. De plus, vous devez apprendre à utiliser la marge et le remplissage avec flexibilité pour rendre l'affichage plus beau.

    Remarque?: Si vous souhaitez définir la largeur et la hauteur ou d'autres attributs d'élément au niveau du bloc pour les éléments en ligne, vous devez définir display:block.

    Le code de conception spécifique est le suivant?:

    * {
     padding: 0px;
     margin: 0px;
     font-family: "微軟雅黑";
    }
     
    .goodsItem{
     width:280px;
     height: 400px;
     float: left;
     border: 1px solid #ccc;
     margin:5px;
    }
    #goods{
     width:910px;
    }
    .goditem{
     list-style: none;
    }
    .godpic img{
     display: block;
     width:250px;
     height: 250px;
     margin:0px auto;
    }
    .godprice,.godinfo,.godadd{
     display: block;
     width:220px;
     margin:0px auto;
     text-align: center;
    }
    .godprice{
     font-size: 20px;
     color: #f00;
    }
    .godinfo{
     text-align: center;
     font-size: 14px;
     margin: 10px 0px;
     
    }
    .godadd a{
     display: block;
     width: 150px;
     height: 36px;
     background-color: #fd6a01;
     border-radius: 10px;
     margin: 0px auto;
     text-decoration: none;
     color:#fff;
     line-height: 36px;
    }
    #godcar{
     position: fixed;
     right: 0px;
     top:40%;
     width: 72px;
     height: 64px;
    }
    #godcar .dnum{
     width:24px;
     height: 24px;
     border-radius: 12px;
     background-color: #f00;
     text-align: center;
     line-height: 24px;
     position: absolute;
     font-size: 12px;
     top:0px;
    }
    .godadd .bg {
     background-color: #808080;
    }

    Le premier * signifie définir des attributs pour tous les éléments. C'est une bonne habitude de définir la marge et le remplissage au début.

    étape 3 : Implémenter la page statique. Ensuite, vous devez implémenter l'implémentation spécifique du panier via jq, comme l'ajout au panier, la modification du nombre de paniers, etc. J'ai passé du temps à concevoir : comment faire en sorte que l'image se déplace lentement vers le panier, puis devienne plus petite et enfin disparaisse lorsque le produit est ajouté au panier. Parmi eux, j'ai utilisé la fonction animer pour implémenter ce processus. La difficulté pour réaliser cette fonction est : comment déplacer et changer l'image.

    Ce qui suit explique comment mettre en ?uvre ce processus?:

    1) Tout d'abord, vous devez obtenir l'image du produit, puis copier l'image obtenue

    var img = $(this).parent().find(".godpic").find("img");
     var cimg = img.clone();
    2) Obtenez les valeurs en haut et à gauche de l'image du produit, ainsi que les valeurs en haut et à gauche du panier, afin que le mouvement puisse être réalisé via la fonction d'animation?; = img.offset().top;

    var imgleft = img.offset().left;
    var cartop = $("#godcar").offset().top;
    var carleft = $("#godcar").offset().left;
    3) écrivez la fonction d'animation pour obtenir des effets spécifiques

    cimg.appendTo($("body")).css({

    "position": "absolute",//絕對(duì)定位
     "opacity": "0.7",
     "top": imgtop,
     "left": imgleft
    }).animate({
     "top": cartop,
     "left": carleft,
     "width": "40px",
     "height": "40px",
     "opacity": "0.3" //透明度
    }, 1000, function () {
     cimg.remove(); //圖片消失
     $(".dnum").text(i); //購(gòu)物車數(shù)量變化
    });
    Des mouvements et des changements simples sont obtenus.

    Mais ensuite j'ai pensé que cela semble incompatible avec le fait que la quantité dans le panier reviendra à 0 à chaque fois que j'actualise la page, alors je j'ai réfléchi à la fa?on d'éviter que la quantité dans le panier ne change lors de l'actualisation de la page. J'ai vérifié les informations et résumé trois méthodes Méthode?:


    (1) Enregistrer dans la base de données

    (2?; ) Via la méthode cookie?;
    (3) Via la méthode localStorage de h5

    Finalement j'ai décidé d'utiliser la troisième méthode car je voulais essayer la nouvelle méthode de h5; ~~ et parce que j'ai vu cette méthode, je l'ai donc essayée). Les données stockées par la méthode localStorage n'ont pas de limite de temps. Après la deuxième semaine ou l'année suivante, les données sont toujours disponibles. mon code :

    D'accord, j'ai dit tout ce qu'il fallait dire. Ci-joint tous les codes de jq Comme :

    var i = 0;
    $(function(){
     var inum = 0;
     if(localStorage.getItem("inum")!==null){
      inum = localStorage.getItem("inum");
     }
     $(".dnum").text(inum);
     
     $(".godadd").click(function(){
      if (!$(this).find("a").hasClass("bg")) {
       i++;
       $(this).find("a").addClass("bg");
       var img = $(this).parent().find(".godpic").find("img");
       var cimg = img.clone();
     
       var imgtop = img.offset().top;
       var imgleft = img.offset().left;
     
       var cartop = $("#godcar").offset().top;
       var carleft = $("#godcar").offset().left;
     
       cimg.appendTo($("body")).css({
        "position": "absolute",
        "opacity": "0.7",
        "top": imgtop,
        "left": imgleft
       }).animate({
        "top": cartop,
        "left": carleft,
        "width": "40px",
        "height": "40px",
        "opacity": "0.3"
       }, 1000, function () {
        cimg.remove();
        $(".dnum").text(i);
        localStorage.setItem("inum", i);
       });
      }
     
     });
    });
    Rendu :

    <.>

    écrivez une fonction de panier dachat simple en JavaScriptCe qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun, et j'espère que tout le monde soutiendra le site Web PHP chinois

    Pour plus d'articles liés à l'écriture. une simple fonction de panier d'achat en JavaScript, veuillez faire attention au site Web PHP 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

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    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.

    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 grace à notre outil d'échange de visage AI entièrement gratuit?!

    Article chaud

    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)

    Sujets chauds

    Tutoriel PHP
    1502
    276
    Comment faire une demande HTTP dans Node.js? Comment faire une demande HTTP dans Node.js? Jul 13, 2025 am 02:18 AM

    Il existe trois fa?ons courantes d'initier des demandes HTTP dans Node.js: utilisez des modules intégrés, Axios et Node-Fetch. 1. Utilisez le module HTTP / HTTPS intégré sans dépendances, ce qui convient aux scénarios de base, mais nécessite un traitement manuel de la couture des données et de la surveillance des erreurs, tels que l'utilisation de https.get () pour obtenir des données ou envoyer des demandes de post via .write (); 2.AXIOS est une bibliothèque tierce basée sur la promesse. Il a une syntaxe concise et des fonctions puissantes, prend en charge l'async / attendre, la conversion JSON automatique, l'intercepteur, etc. Il est recommandé de simplifier les opérations de demande asynchrones; 3.Node-Fetch fournit un style similaire à la récupération du navigateur, basé sur la promesse et la syntaxe simple

    Types de données JavaScript: référence primitive vs Types de données JavaScript: référence primitive vs Jul 13, 2025 am 02:43 AM

    Les types de données JavaScript sont divisés en types primitifs et types de référence. Les types primitifs incluent la cha?ne, le nombre, le booléen, le nul, un non défini et le symbole. Les valeurs sont immuables et les copies sont copiées lors de l'attribution des valeurs, de sorte qu'elles ne se affectent pas; Les types de référence tels que les objets, les tableaux et les fonctions stockent les adresses de mémoire, et les variables pointant vers le même objet s'afferchent mutuellement. Le typeof et l'instance de OFF peuvent être utilisés pour déterminer les types, mais prêtent attention aux problèmes historiques de typeofnull. Comprendre ces deux types de différences peut aider à écrire un code plus stable et fiable.

    Objet JavaScript Time, quelqu'un construit un site Web Eactexe, plus rapide sur Google Chrome, etc. Objet JavaScript Time, quelqu'un construit un site Web Eactexe, plus rapide sur Google Chrome, etc. Jul 08, 2025 pm 02:27 PM

    Bonjour, développeurs JavaScript! Bienvenue dans JavaScript News de cette semaine! Cette semaine, nous nous concentrerons sur: le différend de marque d'Oracle avec Deno, les nouveaux objets Time JavaScript sont pris en charge par les navigateurs, les mises à jour Google Chrome et certains outils de développeurs puissants. Commen?ons! Le différend de marque d'Oracle avec la tentative de Deno Oracle d'enregistrer une marque "JavaScript" a provoqué la controverse. Ryan Dahl, le créateur de Node.js et Deno, a déposé une pétition pour annuler la marque, et il pense que JavaScript est un niveau ouvert et ne devrait pas être utilisé par Oracle

    Gestion des promesses: cha?nage, gestion des erreurs et combinateurs de promesses en javascript Gestion des promesses: cha?nage, gestion des erreurs et combinateurs de promesses en javascript Jul 08, 2025 am 02:40 AM

    La promesse est le mécanisme central pour gérer les opérations asynchrones en JavaScript. Comprendre les appels de cha?ne, la gestion des erreurs et les combinants est la clé pour ma?triser leurs applications. 1. L'appel de la cha?ne renvoie une nouvelle promesse à travers. Puis () pour réaliser la concaténation des processus asynchrones. Chaque .then () re?oit le résultat précédent et peut renvoyer une valeur ou une promesse; 2. La gestion des erreurs doit utiliser .catch () pour attraper des exceptions pour éviter les défaillances silencieuses, et peut renvoyer la valeur par défaut dans Catch pour continuer le processus; 3. Combinateurs tels que promesse.all () (réussi avec succès uniquement après tout succès), promesse.race () (le premier achèvement est retourné) et promesse.allsetTled () (en attente de toutes les achèvements)

    Qu'est-ce que l'API Cache et comment est-elle utilisée avec les travailleurs du service? Qu'est-ce que l'API Cache et comment est-elle utilisée avec les travailleurs du service? Jul 08, 2025 am 02:43 AM

    Cacheapi est un outil fourni par le navigateur pour mettre en cache les demandes de réseau, qui est souvent utilisée en conjonction avec travailleur de service pour améliorer les performances du site Web et l'expérience hors ligne. 1. Il permet aux développeurs de stocker manuellement des ressources telles que des scripts, des feuilles de style, des photos, etc.; 2. Il peut faire correspondre les réponses du cache en fonction des demandes; 3. Il prend en charge la suppression des caches spécifiques ou la nettoyage du cache entier; 4. Il peut mettre en ?uvre des stratégies de priorité de cache ou de priorité de réseau grace à l'écoute des événements Fetch; 5. Il est souvent utilisé pour le support hors ligne, accélérez la vitesse d'accès répétée, préchargement des ressources clés et du contenu de mise à jour des antécédents; 6. Lorsque vous l'utilisez, vous devez faire attention au contr?le de la version du cache, aux restrictions de stockage et à la différence entre le mécanisme de mise en cache HTTP.

    JS Roundup: une plongée profonde dans la boucle d'événement JavaScript JS Roundup: une plongée profonde dans la boucle d'événement JavaScript Jul 08, 2025 am 02:24 AM

    La boucle d'événement de JavaScript gère les opérations asynchrones en coordonnant les piles d'appels, les webapis et les files d'attente de taches. 1. La pile d'appels exécute du code synchrone, et lors de la rencontre de taches asynchrones, il est remis à WebAPI pour le traitement; 2. Une fois que le WebAPI a terminé la tache en arrière-plan, il met le rappel dans la file d'attente correspondante (macro tache ou micro tache); 3. La boucle d'événement vérifie si la pile d'appels est vide. S'il est vide, le rappel est retiré de la file d'attente et poussé dans la pile d'appels pour l'exécution; 4. Micro taches (comme Promise. puis) ??prendre la priorité sur les taches macro (telles que Settimeout); 5. Comprendre la boucle d'événements permet d'éviter de bloquer le thread principal et d'optimiser l'ordre d'exécution du code.

    Comprendre l'événement bouillonnant et capturer dans les événements JavaScript DOM Comprendre l'événement bouillonnant et capturer dans les événements JavaScript DOM Jul 08, 2025 am 02:36 AM

    Les bulles d'événements se propagent de l'élément cible vers l'extérieur vers le n?ud d'ancêtre, tandis que la capture d'événements se propage de la couche externe vers l'intérieur vers l'élément cible. 1. événements Bubbles: Après avoir cliqué sur l'élément enfant, l'événement déclenche l'auditeur de l'élément parent vers le haut. Par exemple, après avoir cliqué sur le bouton, il sortira d'abord cliqué sur l'enfant, puis parent. 2. Capture d'événement: définissez le troisième paramètre sur true, afin que l'auditeur soit exécuté dans l'étape de capture, tels que le déclenchement de l'écouteur de capture de l'élément parent avant de cliquer sur le bouton. 3. Les utilisations pratiques incluent la gestion unifiée des événements d'éléments enfants, le prétraitement d'interception et l'optimisation des performances. 4. Le flux d'événements DOM est divisé en trois étapes: capture, cible et bulle, et l'écouteur par défaut est exécuté dans l'étape de la bulle.

    Un tour d'horizon des fonctions d'ordre supérieur au-delà de la carte et du filtre Un tour d'horizon des fonctions d'ordre supérieur au-delà de la carte et du filtre Jul 10, 2025 am 11:41 AM

    Dans les tableaux JavaScript, en plus de la carte et du filtre, il existe d'autres méthodes puissantes et rarement utilisées. 1. La réduction peut non seulement résumer, mais également compter, se regrouper, aplatir les tableaux et construire de nouvelles structures; 2. Find et FindIndex sont utilisés pour trouver des éléments ou des index individuels; 3.Il et tout sont utilisés pour déterminer si les conditions existent ou que toutes les personnes se rencontrent; 4.Sort peut être trié mais changera le tableau d'origine; 5. Faites attention à la copie du tableau lorsque vous l'utilisez pour éviter les effets secondaires. Ces méthodes rendent le code plus concis et efficace.

    See all articles