J'ai un site Web d'une page qui est piloté par le plugin jquery scrollTo qui, je suppose, n'a pas d'importance dans mon cas. Le problème semble être la conception 1page. Si je clique sur l'onglet, le design entier est en train de gâcher parce que l'onglet saute à tout ce qu'il peut trouver sur lequel se concentrer. Cela inclut les espaces situés en dehors de la zone de la fenêtre courante.
En fait, je ne veux pas que l'onglet se concentre sur autre chose que sur mon div #contactForm après avoir cliqué sur le premier champ de formulaire. L'onglet pourrait se concentrer sur cela, mais seulement si le hash "#contact" est dans la fenêtre. Y a-t-il un moyen de réaliser quelque chose comme ça ou est-ce que l'onglet/focus est toujours en train de gâcher des conceptions de 1 page qui traitent du contenu en dehors de la zone de la fenêtre d'affichage?
Peut-être que quelques idées peuvent me aider à comprendre cette question un peu mieuxLa mise au point cause des problèmes sur la conception d'un site Web 1page
Répondre
Comme je ne sais pas ce que votre HTML ressemble, j'ai emprunté la démo ScrollTo. Vous pouvez essayer de faire un lien qui a le focus dans la force du panneau du panneau en vue (demo):
Quelque chose comme ceci:
$('#pane-target li a').bind('focusin', function() {
$('#pane-target').scrollTo($(this).closest('li'), 800, {queue: true});
})
Mise à jour démo pour éliminer les conflits entre les lier et cliquez sur le bouton de retour.
Mise à jour: Changé demo travailler avec HTML/script à partir du lien fourni. J'ai dû le modifier un peu pour que les liens ne soient pas en conflit. En outre, j'ai déplacé la classe .selected
à l'élément au lieu du lien dans le premier panneau uniquement. J'espère avoir ajouté suffisamment de commentaires pour que tout soit clair.
$('a').bind('focusin click', function(e){
// focusin occurs before click
if (e.type == 'click') {
var tar = $(this).attr('href');
if ($(this).is('.panel')) {
// clicked on a.panel; scroll to destination
$('#wrapper').scrollTo(tar, 800);
//reset and highlight the clicked link
$('.item').removeClass('selected');
$(tar).addClass('selected');
//cancel the link default behavior
return false;
} else {
// clicked on link (not '.panel'), return true in case it's an external link
return true;
}
} else {
// link was focused
var time, item = $(this).closest('.item');
if (item.is('.selected')){
// if item is already in view (position it immediately)
time = 0;
} else {
// item is not in view, so smoothly scroll & update classes
time = 800;
$('.item').removeClass('selected');
item.addClass('selected');
}
$('#wrapper').scrollTo(item, time);
}
});
Hi Hardy, j'ai mis à jour ma réponse et fourni une démo ... j'espère que j'ai choisi la bonne version. Oh et la démo sur jsFiddle est un peu plus "saccadée" que la version que j'avais localement. – Mottie
Hi Hardy, je ne peux pas aider sans voir votre code HTML, car ce n'est pas la même chose que le code d'origine - les panneaux vides fonctionneraient. – Mottie
Essayez ceci: http: //jsfiddle.net/797Xj/5/... J'ai supprimé tout le 'id =" item "' supplémentaire puisque les ID devraient être uniques. J'ai dû commenter quelques lignes pour le curseur nivo afin que la démo fonctionne. – Mottie
Il serait utile si vous pouviez fournir un lien ou un échantillon de code. –
Je suis désolé mais il est seulement local à ce moment-là et beaucoup trop complexe pour coller quoi que ce soit. Il s'agit d'un site Web glissant verticalement/horizontalement qui utilise différents panneaux (sections) pour remplir la fenêtre, comme #home, #contact, #about. En utilisation normale, vous atteignez ces panneaux (sections) en cliquant sur le bouton de lien. Comme vous avez normalement dans un menu mais la touche de tabulation est tout déconner. Supposons que vous consultez actuellement la section #home. – markimark
Si vous utilisez la touche de tabulation, la fenêtre surgit soudainement de la section #home, en se concentrant sur un autre élément, quelque part et ce que vous voyez n'est alors qu'un dessin détruit. Seul quelqu'un qui connaît ce type de conception de site Web saura de quoi je parle. Quelqu'un là-bas? – markimark