2017-10-09 1 views
0

Comment puis-je faire concentrer invisible pour les boutons radio uniquement clic (focus doit être visible à travers la navigation au clavier)faire attention invisible pour les boutons radio sur clic, mais l'accent doit être visible sur la navigation du clavier

souris désactivation vers le bas événement ou en utilisant settimeout (() => $ (event.target) .blur(), 1) sur mousedown fonctionne mais la sélection de boutons radio à l'aide des touches fléchées ne fonctionne pas lorsque le focus provient du clic. Alors, quel est le meilleur moyen de rendre la mise au point invisible pour les boutons radio uniquement en cliquant sans que la sélection de la touche fléchée soit inutilisable?

Merci à l'avance

Répondre

0

Cela a fonctionné pour moi

gestionnaires d'événements ajoutés pour mousedown et flou comme ci-dessous

--------------- modèle -----------------

<input type="radio" 
(mousedown)="removeOutline($event)" 
(blur)="radioBlur($event)"/> 

------ événement ----------------- Handlers

removeOutline(event: MouseEvent): void { 
     $(event.target).addClass("focus"); 
    } 

radioBlur(event: MouseEvent): void { 
     $(event.target).removeClass("focus"); 
     if ($(event.target).attr("class") === "") { 
      $(event.target).removeAttr("class"); 
     } 
    } 

-----------css--------------- 
    .focus { 
     outline: 0; 
    } 
0

parlons-nous

pointer-events: none; 

ou suis-je manque quelque chose?

+0

Je veux juste que l'accent soit désactivé sur click..by en utilisant "pointer-events: none" wouldnt click est également désactivé aussi bien? – Moeed

0

Vous pouvez essayer ce code:

HTML:

<input type="text" class="inp" /> 
<input type="radio" class="rb" /> 

CSS:

.inp { 
    display: block; 
} 

.rb { 
/*hide default outline*/ 
    outline: none; 
} 

[type=radio]:not(:hover):not(:active):focus { 
    /*set custom focus ring instead via box-shadow*/ 
    box-shadow: 1px 0 1px #c5c3c3 inset, -1px 1px 1px #c5c3c3 inset, 0px 0px 0 2px #fff, 0px 0px 0 3px rgb(100, 149, 237); 
} 

Il cachera bague de mise au point sur le vol stationnaire et clic, mais l'afficher lorsque le bouton radio se mise au point via le clavier.

Voici lien vers JSFiddle

Il y a aussi une proposition de ce genre de chose appelée accent anneau (uniquement implémenté dans Firefox, mais il est polyfill pour cela.

+0

son cacher l'accent sur le vol stationnaire et cliquez, mais lorsque les mouvements quitte le bouton radio après avoir cliqué, l'accent est toujours visible.Merci de toute façon – Moeed

+0

@Moeed, désolé mais je ne comprends pas ce que vous voulez dire. il supprime le focus lorsque vous déplacez le focus dans un autre élément. S'il vous plaît l'exemple de mise à jour sur JSFiddle – Krusader

+0

, lorsque le bouton radio est cliqué et la souris quitte le bouton radio (focus n'est pas déplacé vers un autre élément), l'ombre de la boîte est toujours visible.je veux supprimer cela aussi. – Moeed