Comment puis-je déclencher un événement de clic lorsque je clique sur un bouton affiché en dehors de l'élément de dialogue ?
P粉116654495
2023-08-31 23:33:50
<p>J'utilise un élément de dialogue HTML natif comme modal dans mon application Vue 3 et j'ai réussi à afficher un bouton sur le côté/à l'extérieur du modal en utilisant le positionnement absolu. Cependant, en raison de la nature des éléments de dialogue et de la manière dont ils sont placés au niveau supérieur, je ne parviens pas à déclencher l'événement click (displayNextModal) lorsque je clique sur un bouton en dehors de l'élément de dialogue. L'ajustement du z-index de l'un ou l'autre élément n'a aucun effet car la boîte de dialogue est toujours en haut par défaut. Je me demande s'il existe une solution de contournement ou si le seul moyen de déclencher cet événement de clic est de placer le bouton à l'intérieur de l'élément de dialogue. </p>
<pre class="brush:php;toolbar:false;"><template>
<dialog class="modal-post" ref="postModalRef">
<div>Écran modal</div>
</dialogue>
<button class="suivant-modal-bouton" @click="displayNextModal">Suivant</bouton>
</template></pre>
<pre class="brush:php;toolbar:false;">.modal-post {
largeur : 500 px ;
hauteur : 600 px ;
}
.bouton-modal-suivant {
position : absolue ;
largeur : 60 px ;
hauteur : 30px ;
la couleur noire;
haut : 50 % ;
à droite : 10px ;
indice z : 1000 ;
}</pre></p>
Bien que le bouton ne soit pas placé exactement là où vous le souhaitez, vous pouvez toujours définir les bordures et l'arrière-plan de la boîte de dialogue pour qu'ils soient transparents. Ensuite, à l’intérieur se trouve un div que vous définissez pour ressembler à une boîte de dialogue. et placez le bouton dans la boîte de dialogue elle-même. Cela fera apparaître le bouton en dehors de la boîte de dialogue, mais vous permettra toujours d'y accéder. Vous devrez cependant jouer avec la taille et le positionnement absolu.