Ho una lista che funge da menu. Ogni volta che l'utente fa clic su uno degli elementi nell'elenco, voglio uno div
più dettagliato da far scorrere da sinistra a destra.Impossibile div diventare animare da sinistra a destra in jQuery
Quindi, se l'utente doveva fare clic sulla voce di menu A
per prima, A
diapositive da sinistra a destra. Se l'utente fa clic poi B
, A
scivoli fuori da destra a sinistra (scompare dallo schermo) e B
diapositive in.
Ho cercato per questo problema e trovato questo post. Ho incorporato il codice dallo jsfiddle
, ma non ha funzionato. Nessun errore viene mostrato nel log di js nello strumento di debug di Chrome. Non succede nulla quando faccio clic su una voce dal menu. Che cosa sto facendo di sbagliato?
<div class="project">
<ul id="project_menu" class="project_menu">
<li id="menu-php-mysql" data-projectID="php-project">PHP/MySQL</li>
<li id="menu-nodejs" data-projectID="node-project">NodeJS</li>
<!-- more code -->
</ul>
<div class="project-detail">
<div id="php-project">
<i class="ion-ios-close-empty close-icon js-close-icon"></i>
<div classs="project-text">
<!-- data about project -->
</div>
</div>
<div id="node-project">
<i class="ion-ios-close-empty close-icon js-close-icon"></i>
<div classs="project-text">
<!-- data about project -->
</div>
</div>
<!-- and so on.. -->
#php-project {
background-color: #9b59b6;
margin: 30px;
display: none;
}
$(document).ready(function() {
itemsToRender = [];
$('ul#project_menu li').click(function(e) {
menuItemId = (e.currentTarget.id);
$('.common').hide();
$(getProjectId(menuItemId)).css('display', 'inline');
var value = $(getProjectId(menuItemId)).css('right') === '100px' ? '-100px' : '100px';
$(getProjectId(menuItemId)).animate({
right: value
}, 800);
});
});
function getProjectId(menuItemId) {
if (menuItemId.indexOf('php') > 0) {
return '#php-project';
} else if (menuItemId.indexOf('node') > 0) {
return '#node-project';
} else if (menuItemId.indexOf('angular') > 0) {
return '#angular-project';
} else if (menuItemId.indexOf('mean') > 0) {
return '#mean-project';
}
}
Update1: @user5325596 ha sottolineato che la mia proprietà di visualizzazione per dettaglio div
è stato fissato a nessuno, così ho fisse che aggiungendo la seguente:
$(getProjectId(menuItemId)).css('display', 'inline-block');
subito dopo $('.common').hide()
.
Ora, posso vedere il dettaglio div quando clicco sulla voce di menu, ma non si anima.
Update2: ho caricato un jsFiddle, include l'animazione jQuery che sto usando con successo (fadeIn, che viene commentata), così come il codice suggerito da elchininet.
nel CSS avete 'visualizzazione: none', vuol mai ottenere cambiato? – user5325596
Grazie per il tuo commento! Ho aggiornato il post per riflettere il tuo suggerimento. – Frosty619
hai un esempio? immagine, jsfiddle? – FlipFloop