Maison interface Web tutoriel HTML a : actif plus animation clic solution invalide

a : actif plus animation clic solution invalide

Nov 27, 2017 am 11:37 AM
active 无效 解决方案

Nous rencontrons souvent un problème, un clic:active plus animation n'est pas valide. Aujourd'hui, je vais vous montrer mon code et ma solution, et au passage, je vais partager avec vous. comment Méthode qui n'enregistre pas l'historique des sauts d'URL.

une balise : le clic actif plus animation n'est pas valide

Mon code css est le suivant :

.haorooms{  -webkit-animation: jpyd 1.5s cubic-bezier(0,.98,.44,1) both;  animation:  jpyd 1.5s cubic-bezier(0,.98,.44,1) both;}
.haorooms:active{ -webkit-animation: zoomOuts 1s ; animation: zoomOuts 1s; }
Copier après la connexion

le code html est le suivant :

<a class="haorooms delay3 " href="/jingpin/"  ></a>
Copier après la connexion

Sur les téléphones Apple, cliquer sur la balise a n'est pas valide. Après vérification, la balise a n'est pas bloquée. Quelle en est la raison ? Comment le résoudre ?

La raison en est que l'actif a une animation d'une seconde. Si vous appuyez et maintenez le bouton, il n'y a aucun moyen de sauter.

un tag : actif plus animation clic solution invalide

En fait, il existe de nombreuses solutions à ce problème, car nous le montrons sur le téléphone mobile, et l'effet attendu est de sauter après l'animation se termine. Nous pouvons ajouter l'événement ontouchend et accéder à une adresse après touchend.

ontouchend="window.location.href=&#39;/jingpin/&#39;"
Copier après la connexion

Après avoir ajouté ceci, vous pouvez accéder à l'adresse spécifiée, que vous la mainteniez enfoncée ou que vous cliquiez dessus. Après avoir appuyé sur la fin, vous pouvez accéder à l'adresse spécifiée.

L'historique des sauts de page ne sera pas enregistré au retour

Concernant le stockage de l'historique de navigation, je l'ai évoqué dans mon article précédent : quelques introductions aux applications web monopage SPA et page ajax non rafraîchissement commutation, historique Enregistrer Précédent Suivant Solution

Nous pouvons exploiter l'historique du navigateur via

history.replaceState 
history.pushState(state, title, url)
Copier après la connexion

.

Cependant, dans des situations réelles, il existe également des situations dans lesquelles nous n'avons pas besoin d'enregistrer l'historique de navigation. Par exemple, "Il y a deux étiquettes de changement d'onglet dans une page. Le changement d'onglet modifie l'adresse du navigateur." le changement d'onglet est enregistré dans l'historique par défaut. Par conséquent, lorsque nous cliquons sur le bouton de retour, nous continuons de basculer entre deux onglets. Cependant, nous souhaitons en réalité revenir à la page précédente, et non basculer entre deux onglets. Alors comment résoudre cette situation ?

Nous y avons pensé

location.replace(newURL)

la méthode replace() ne générera pas de nouvel enregistrement dans l'historique objet. Lors de l'utilisation de cette méthode, la nouvelle URL écrasera l'enregistrement actuel dans l'objet Historique.

Nous pouvons donc écrire le code comme suit :

<ul id="haorooms">
  <li><a href="http://www.haorooms.com/archives">标签一</a></li>
  <li><a href="http://www.haorooms.com/tools/index">标签二</a></li>
</ul>
$(&#39;#haorooms li  a&#39;).on(&#39;click&#39;, function (event) { //tab中a标签点击
    event.preventDefault();
    location.replace(this.href);
})
Copier après la connexion

Le code ci-dessus renvoie un code invalide sur certains téléphones mobiles, donc la solution échoue !

Méthodes history.replaceState() et location.replace()

La méthode ci-dessus a échoué, j'ai donc dû changer d'avis et j'ai vu que Maître Zhang Xinxu avait une solution de cas similaire à un moment donné. il y a. Alors j’en ai tiré des leçons !

La solution est la suivante :

$(&#39;#haorooms li  a&#39;).on(&#39;click&#39;, function (event) {
    event.preventDefault();
    history.replaceState(null, document.title, this.href.split(&#39;#&#39;)[0] + &#39;#&#39;);
    location.replace(&#39;&#39;);
})
Copier après la connexion

Remplacez d'abord l'adresse URL actuelle par l'adresse actuelle du lien se terminant par le signe dièse # via la méthode HTML5 history.replaceState() <🎜 ; >

Exécutez location.replace('') ​​​​pour actualiser l'adresse actuelle (# sera ignoré à ce moment-là

Avec cette solution, peu importe la façon dont nous changeons d'onglet, après avoir cliqué sur retour) ; nous reviendrons à la page précédente comme d'habitude. Plus besoin de basculer entre les onglets !

Parce que history.replaceState n'est pris en charge qu'à partir d'IE10, si vous souhaitez être compatible avec les navigateurs antérieurs, ou l'utiliser sur PC. J'ai vu que Zhang Dashen encapsulait également une fonction, donc je l'ai empruntée ici :

var fnUrlReplace = function (eleLink) {
    if (!eleLink) {
        return;
    }
    var href = eleLink.href;
    if (href && /^#|javasc/.test(href) === false) {
        if (history.replaceState) {
            history.replaceState(null, document.title, href.split(&#39;#&#39;)[0] + &#39;#&#39;);
            location.replace(&#39;&#39;);
        } else {
             location.replace(href);
        }
    }
};
Copier après la connexion
La fonction ci-dessus peut être appliquée comme suit

$(&#39;#haorooms li  a&#39;).on(&#39;click&#39;, function (event) {
  if (event && event.preventDefault) {
      event.preventDefault();
   }
   fnUrlReplace(this);
   return false;
})
Copier après la connexion
Je crois que vous maîtrisez la méthode après lire ces cas, et plus encore Comme c'est excitant, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !


Lecture connexe :

Comment écrire un hack de condition en CSS

Page Web CSS désalignement Comment gérer

Comment utiliser CSS3 pour créer une animation de texte sous un éclairage lumineux

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

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)

Solution pour Win11 impossible d'installer le pack de langue chinoise Solution pour Win11 impossible d'installer le pack de langue chinoise Mar 09, 2024 am 09:15 AM

Win11 est le dernier système d'exploitation lancé par Microsoft. Par rapport aux versions précédentes, Win11 a considérablement amélioré la conception de l'interface et l'expérience utilisateur. Cependant, certains utilisateurs ont signalé avoir rencontré le problème de l'impossibilité d'installer le module linguistique chinois après l'installation de Win11, ce qui leur a posé des problèmes lors de l'utilisation du chinois dans le système. Cet article fournira quelques solutions au problème selon lequel Win11 ne peut pas installer le pack de langue chinoise pour aider les utilisateurs à utiliser le chinois en douceur. Tout d’abord, nous devons comprendre pourquoi le pack de langue chinoise ne peut pas être installé. D'une manière générale, Win11

Raisons et solutions de l'échec de l'installation de la bibliothèque Scipy Raisons et solutions de l'échec de l'installation de la bibliothèque Scipy Feb 22, 2024 pm 06:27 PM

Raisons et solutions de l'échec de l'installation de la bibliothèque scipy, des exemples de code spécifiques sont nécessaires Lors de l'exécution de calculs scientifiques en Python, scipy est une bibliothèque très couramment utilisée, qui fournit de nombreuses fonctions pour les calculs numériques, l'optimisation, les statistiques et le traitement du signal. Cependant, lors de l'installation de la bibliothèque scipy, vous rencontrez parfois des problèmes, entraînant l'échec de l'installation. Cet article explorera les principales raisons pour lesquelles l'installation de la bibliothèque Scipy échoue et fournira les solutions correspondantes. L'installation des packages dépendants a échoué. La bibliothèque scipy dépend de certaines autres bibliothèques Python, telles que nu.

Une solution efficace pour résoudre le problème des caractères tronqués provoqués par la modification du jeu de caractères Oracle. Une solution efficace pour résoudre le problème des caractères tronqués provoqués par la modification du jeu de caractères Oracle. Mar 03, 2024 am 09:57 AM

Titre : Une solution efficace pour résoudre le problème des caractères tronqués provoqués par la modification du jeu de caractères Oracle. Dans la base de données Oracle, lorsque le jeu de caractères est modifié, le problème des caractères tronqués se produit souvent en raison de la présence de caractères incompatibles dans les données. Afin de résoudre ce problème, nous devons adopter des solutions efficaces. Cet article présentera des solutions spécifiques et des exemples de code pour résoudre le problème des caractères tronqués provoqués par la modification du jeu de caractères Oracle. 1. Exportez les données et réinitialisez le jeu de caractères. Tout d’abord, nous pouvons exporter les données de la base de données à l’aide de la commande expdp.

Problèmes courants et solutions liés à la fonction Oracle NVL Problèmes courants et solutions liés à la fonction Oracle NVL Mar 10, 2024 am 08:42 AM

Problèmes courants et solutions pour la fonction OracleNVL La base de données Oracle est un système de base de données relationnelle largement utilisé et il est souvent nécessaire de gérer des valeurs nulles lors du traitement des données. Afin de résoudre les problèmes causés par les valeurs nulles, Oracle fournit la fonction NVL pour gérer les valeurs nulles. Cet article présentera les problèmes courants et les solutions des fonctions NVL, et fournira des exemples de code spécifiques. Question 1 : Utilisation inappropriée de la fonction NVL La syntaxe de base de la fonction NVL est : NVL(expr1,default_value).

Résoudre Impossible de démarrer l'application correctement, code d'erreur 0xc000007b Résoudre Impossible de démarrer l'application correctement, code d'erreur 0xc000007b Feb 20, 2024 pm 01:24 PM

Comment résoudre le problème de l'impossibilité de démarrer normalement 0xc000007b Lors de l'utilisation de l'ordinateur, nous rencontrons parfois divers codes d'erreur, l'un des plus courants est 0xc000007b. Lorsque nous essayons d'exécuter certaines applications ou jeux, ce code d'erreur apparaît soudainement et nous empêche de le démarrer correctement. Alors, comment devrions-nous résoudre ce problème ? Tout d’abord, nous devons comprendre la signification du code d’erreur 0xc000007b. Ce code d'erreur indique généralement qu'un ou plusieurs fichiers système ou fichiers de bibliothèque critiques sont manquants, corrompus ou incorrects.

Implémentation d'algorithmes d'apprentissage automatique en C++ : défis et solutions courants Implémentation d'algorithmes d'apprentissage automatique en C++ : défis et solutions courants Jun 03, 2024 pm 01:25 PM

Les défis courants rencontrés par les algorithmes d'apprentissage automatique en C++ incluent la gestion de la mémoire, le multithread, l'optimisation des performances et la maintenabilité. Les solutions incluent l'utilisation de pointeurs intelligents, de bibliothèques de threads modernes, d'instructions SIMD et de bibliothèques tierces, ainsi que le respect des directives de style de codage et l'utilisation d'outils d'automatisation. Des cas pratiques montrent comment utiliser la bibliothèque Eigen pour implémenter des algorithmes de régression linéaire, gérer efficacement la mémoire et utiliser des opérations matricielles hautes performances.

Causes courantes et solutions aux caractères chinois tronqués dans l'installation de MySQL Causes courantes et solutions aux caractères chinois tronqués dans l'installation de MySQL Mar 02, 2024 am 09:00 AM

Raisons et solutions courantes pour les caractères chinois tronqués dans l'installation de MySQL MySQL est un système de gestion de base de données relationnelle couramment utilisé, mais vous pouvez rencontrer le problème des caractères chinois tronqués lors de l'utilisation, ce qui pose des problèmes aux développeurs et aux administrateurs système. Le problème des caractères chinois tronqués est principalement dû à des paramètres de jeu de caractères incorrects, à des jeux de caractères incohérents entre le serveur de base de données et le client, etc. Cet article présentera en détail les causes courantes et les solutions des caractères chinois tronqués dans l'installation de MySQL pour aider tout le monde à mieux résoudre ce problème. 1. Raisons courantes : paramètre du jeu de caractères

Comment résoudre l'erreur 403 de la requête jQuery AJAX Comment résoudre l'erreur 403 de la requête jQuery AJAX Feb 19, 2024 pm 05:55 PM

jQuery est une bibliothèque JavaScript populaire utilisée pour simplifier le développement côté client. AJAX est une technologie qui envoie des requêtes asynchrones et interagit avec le serveur sans recharger la page Web entière. Cependant, lorsque vous utilisez jQuery pour effectuer des requêtes AJAX, vous rencontrez parfois des erreurs 403. Les erreurs 403 sont généralement des erreurs d'accès refusé par le serveur, probablement en raison de problèmes de politique de sécurité ou d'autorisation. Dans cet article, nous verrons comment résoudre la requête jQueryAJAX rencontrant une erreur 403.

See all articles