Estoy utilizando el menú desplegable superfish con skelton framework. Yo también quería que funcionara en móviles. De forma predeterminada muestra los elementos desplegables, pero se desplaza sobre los elementos debajo de él. Quiero tenerlo de una manera para que empuje los elementos principales debajo de él. ¿Alguna solución?¿Cómo hacer que el menú desplegable de Superfish sea receptivo?
Respuesta
Actualización: ver la respuesta por Ryan Brackett
Menús desplegables no funcionan bien en el móvil. Sugiero esconder el menú superfish en el móvil y reemplazarlo por otra cosa.
Recursos: Verano
http://www.lukew.com/ff/entry.asp?1569
http://www.zurb.com/playground/off-canvas-layouts
patrones de navegación móvil
http://bradfrostweb.com/blog/web/responsive-nav-patterns/
Para otros que buscan una solución, asegúrese de estar utilizando el jQuery más nuevo. Tenía algunos sitios más antiguos en los que descubrí que el uso de una versión más reciente de jQuery hacía que los menús de Superfish funcionaran en dispositivos móviles.
Aquí una respuesta mejor
yo era capaz de convertir el mismo HTML para Superfish en un cajón menú sensible. El JS es ultra simple y todo se hace básicamente usando CSS. ¡Compruébalo y hazme saber lo que piensan!
// TRIGGER ACTIVE STATE
$('#mobnav-btn').click(
function() {
$('.sf-menu').toggleClass("xactive");
});
// TRIGGER DROP DOWN SUBS
$('.mobnav-subarrow').click(
function() {
$(this).parent().toggleClass("xpopdrop");
});
body {
font-family: Arial;
font-size: 12px;
padding: 20px;
}
#mobnav-btn {
display: none;
font-size: 20px;
font-weight: bold;
background-color: blue;
color: white;
padding: 10px;
cursor: pointer;
}
.mobnav-subarrow {
display: none;
}
@media only screen and (max-width: 480px) {
#mobnav-btn {
display: block;
}
.mobnav-subarrow {
display: block;
background-color: #0f3975;
opacity: .3;
border-bottom: 1px solid white;
border-top: 1px solid black;
height: 20px;
width: 30px;
background-position: top left!important;
position: absolute;
top: 8px;
right: 10px;
-webkit-border-radius: 5px;
border-radius: 5px;
cursor: pointer;
-webkit-border-radius: 5px;
border-radius: 5px;
cursor: pointer;
-webkit-transition: all .1s ease-in-out;
-moz-transition: all .1s ease-in-out;
-ms-transition: all .1s ease-in-out;
-o-transition: all .1s ease-in-out;
transition: all .1s ease-in-out;
}
.sf-menu {
width: 100%!important;
display: none;
}
.sf-menu.xactive {
display: block!important;
}
.sf-menu li {
float: none!important;
display: block!important;
width: 100%!important;
}
.sf-menu li a {
float: none!important;
}
.sf-menu ul {
position: static!important;
display: none!important;
}
.xpopdrop ul {
display: block!important;
}
}
<script src="http://code.jquery.com/jquery-compat-git.js"></script>
<script src="http://users.tpg.com.au/j_birch/plugins/superfish/js/superfish.js"></script>
<link href="http://users.tpg.com.au/j_birch/plugins/superfish/css/superfish.css" rel="stylesheet" />
<small>This is a responsive Superfish Menu by <a href="mailto:[email protected]">Ryan Brackett</a>. <br/>
<br/>In this demo, you can drag the middle bar to see the responsive menu. I have already included the default css and js files for Superfish</small>
<br/>
<br/>
<div id="mobnav-btn">Button</div>
<ul class="sf-menu">
<li><a href="#">Item 1</a>
<div class="mobnav-subarrow"></div>
<ul>
<li><a href="#">Subitem 1.1</a>
</li>
<li><a href="#">Subitem 1.2</a>
</li>
<li><a href="#">Subitem 1.3</a>
</li>
<li><a href="#">Subitem 1.4</a>
</li>
</ul>
</li>
<li><a href="#">Item 2</a>
<div class="mobnav-subarrow"></div>
<ul>
<li><a href="#">Subitem 2.1</a>
</li>
<li><a href="#">Subitem 2.2</a>
</li>
<li><a href="#">Subitem 2.3</a>
</li>
<li><a href="#">Subitem 2.4</a>
</li>
</ul>
</li>
<li><a href="#">Item 3</a>
<div class="mobnav-subarrow"></div>
<ul>
<li><a href="#">Subitem 3.1</a>
</li>
<li><a href="#">Subitem 3.2</a>
</li>
<li><a href="#">Subitem 3.3</a>
</li>
<li><a href="#">Subitem 3.4</a>
</li>
</ul>
</li>
<li><a href="#">Item 4</a>
<div class="mobnav-subarrow"></div>
<ul>
<li><a href="#">Subitem 4.1</a>
</li>
<li><a href="#">Subitem 4.2</a>
</li>
<li><a href="#">Subitem 4.3</a>
</li>
<li><a href="#">Subitem 4.4</a>
</li>
</ul>
</li>
<li><a href="#">Item 5</a>
<div class="mobnav-subarrow"></div>
<ul>
<li><a href="#">Subitem 5.1</a>
</li>
<li><a href="#">Subitem 5.2</a>
</li>
<li><a href="#">Subitem 5.3</a>
</li>
<li><a href="#">Subitem 5.4</a>
</li>
</ul>
</li>
<li><a href="#">Item 6</a>
<div class="mobnav-subarrow"></div>
<ul>
<li><a href="#">Subitem 6.1</a>
</li>
<li><a href="#">Subitem 6.2</a>
</li>
<li><a href="#">Subitem 6.3</a>
</li>
<li><a href="#">Subitem 6.4</a>
</li>
</ul>
</li>
</ul>
Esto es lo que yo uso:
isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
$(".menu a").click(function(event){
if($(this).parents("ul").length == 1 && !$(this).hasClass("lastClick") && isMobile)
event.preventDefault();
$(".menu a").removeClass("lastClick");
$(this).addClass("lastClick");
});
reemplazar ".menu a" con sus enlaces de navegación y este fragmento el usuario se desplazará al sitio se hace clic después de la segunda haga clic y el primer clic solo le mostrará las subpáginas.
Hola hombre, ¿puedes JSfiddle esto para nosotros? –
Reshad: Simplemente cambiar el CSS como esto:
.xpopdrop > ul {
display: block!important;
}
Y que va a estar bien.
Como señaló Ed, parece problemático resolver todos los diferentes problemas de superfish/css para un menú receptivo.
Después de ver las opciones aquí y en todas partes, encontré un menú de respuesta Pure CSS que ha sido más rápido y más fácil de modificar que superfish, y no tiene los gastos generales de jquery o javascript. También tiene menús de segundo nivel.
Comprobé the demo con screenfly para comprobar la capacidad de respuesta y el diseño móvil antes de usarlo. La versión de CSSscript.com (enlace arriba) ofrece un diseño receptivo horizontal para móviles, a diferencia de la página de demostración del codepen.
El código está en un solo archivo HTML que se puede fácilmente dividir en un archivo CSS vinculado, sólo 2 preguntas de los medios gestionar los cambios de respuesta e incluso entonces sólo con cambios mínimos. Los símbolos '+' se pueden eliminar sin problemas.
Solo una pequeña desventaja: el primer enlace descarga un HTML tiene un javascript en la parte inferior que agrega un seguimiento obvio de Google Analytics, se elimina fácilmente y no en el codepen.
Explanationauthor andor nagy - code from codepen
/* CSS Document */
@import url(http://fonts.googleapis.com/css?family=Open+Sans);
@import url(http://fonts.googleapis.com/css?family=Bree+Serif);
body {
\t background: #212121;
\t font-size:22px;
\t line-height: 32px;
\t color: #ffffff;
\t word-wrap:break-word !important;
\t font-family: 'Open Sans', sans-serif;
\t }
h1 {
\t font-size: 60px;
\t text-align: center;
\t color: #FFF;
} \t
h3 {
\t font-size: 30px;
\t text-align: center;
\t color: #FFF;
}
h3 a {
\t color: #FFF;
}
a {
\t color: #FFF;
}
h1 {
\t margin-top: 100px;
\t text-align:center;
\t font-size:60px;
\t font-family: 'Bree Serif', 'serif';
\t }
#container {
\t margin: 0 auto;
\t max-width: 890px;
}
p {
\t text-align: center;
}
#relatedContent {
max-width: 800px;
margin: 200px auto;
}
#relatedContent .item {
max-width: 44%;
padding: 3%;
float: left;
text-align: center;
}
#relatedContent .item a img {
max-width: 100%;
} \t
nav {
\t margin: 50px 0;
\t background-color: #E64A19;
}
nav ul {
\t padding:0;
\t margin:0;
\t list-style: none;
\t position: relative;
\t }
\t
nav ul li {
\t display:inline-block;
\t background-color: #E64A19;
\t }
nav a {
\t display:block;
\t padding:0 10px; \t
\t color:#FFF;
\t font-size:20px;
\t line-height: 60px;
\t text-decoration:none;
}
nav a:hover {
\t background-color: #000000;
}
/* Hide Dropdowns by Default */
nav ul ul {
\t display: none;
\t position: absolute;
\t top: 60px;
}
\t
/* Display Dropdowns on Hover */
nav ul li:hover > ul {
\t display:inherit;
}
\t
/* Fisrt Tier Dropdown */
nav ul ul li {
\t width:170px;
\t float:none;
\t display:list-item;
\t position: relative;
}
/* Second, Third and more Tiers \t */
nav ul ul ul li {
\t position: relative;
\t top:-60px;
\t left:170px;
}
\t
/* Change this in order to change the Dropdown symbol */
li > a:after { content: ' +'; }
li > a:only-child:after { content: ''; }
<div id="container">
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">WordPress</a>
<!-- First Tier Drop Down -->
<ul>
<li><a href="#">Themes</a></li>
<li><a href="#">Plugins</a></li>
<li><a href="#">Tutorials</a></li>
</ul>
</li>
<li><a href="#">Web Design</a>
<!-- First Tier Drop Down -->
<ul>
<li><a href="#">Resources</a></li>
<li><a href="#">Links</a></li>
<li><a href="#">Tutorials</a>
\t <!-- Second Tier Drop Down -->
<ul>
<li><a href="#">HTML/CSS</a></li>
<li><a href="#">jQuery</a></li>
<li><a href="#">Other</a>
<!-- Third Tier Drop Down -->
<ul>
<li><a href="#">Stuff</a></li>
<li><a href="#">Things</a></li>
<li><a href="#">Other Stuff</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Graphic Design</a></li>
<li><a href="#">Inspiration</a></li>
<li><a href="#">Contact</a></li>
<li><a href="#">About</a></li>
</ul>
</nav>
<h1>Pure CSS Drop Down Menu</h1>
<p> A simple dropdown navigation menu made with CSS Only. Dropdowns are marked with a plus sign (+)</p>
<p>Read tutorial <a target="_blank" href="http://webdesignerhut.com/css-dropdown-menu/">here</a></p>
</div>
Esto no entiende el punto del menú de Superfish, que a su vez comienza desde un menú desplegable de "CSS puro" y lo mejora. – DisgruntledGoat
debe incluir el css y html de la demostración con un diseño receptivo funcional. No es el códec que no responde – Toskan
Gracias por la información, simplemente respondiendo a la pregunta específica sobre Superfish. –
- 1. color del menú Superfish?
- 2. Quitar el retraso del menú desplegable de Superfish onmouseover, mientras mantengo el retraso de Hoverintent onmouseout
- 3. Android Spinner: cómo hacer que la vista desplegable sea transparente?
- 4. Cómo crear el menú desplegable que aparece en función de la respuesta de otro menú desplegable
- 5. Hacer menú desplegable de CSS 2 Columnas
- 6. ¿La forma más rápida de hacer que el sitio web sea receptivo?
- 7. jQuery menú desplegable desplegable
- 8. ¿Cuál es la mejor alternativa de navegación desplegable a Superfish?
- 9. ¿Cómo puedo abrir un menú jQuery de Superfish al hacer clic en lugar de desplazarme?
- 10. ¿Cómo hacer que DataGridViewComboBoxColumn expanda el menú desplegable a la izquierda?
- 11. Java Swing: ¿Cómo hacer que la lista desplegable JComboxBox sea más alta?
- 12. ¿Es posible reiniciar un menú desplegable de CKEditor/menú desplegable?
- 13. Estilo menú desplegable ActionBar
- 14. ¿Cómo hacer menú desplegable como "delicioso" y "google"?
- 15. Menú desplegable en android
- 16. ¿Cómo hacer que el archivo sea escaso?
- 17. Spinners personalizados/menú desplegable
- 18. ¿Cómo hacer un menú desplegable basado en CSS puro?
- 19. jQuery ocultar el menú desplegable al hacer clic en cualquier lugar menos en el menú
- 20. Desplegable de Bootstrap dentro del menú desplegable
- 21. Menú desplegable de JavaScript simple
- 22. onchange - el menú desplegable seleccionado usando jquery
- 23. jQuery menú desplegable, pestaña accesibilidad
- 24. Angry Birds como menú desplegable
- 25. ¿Cómo hacer que EditText sea más pequeño que el predeterminado?
- 26. menú desplegable de RadComboBox SOLAMENTE
- 27. Agregar el menú desplegable usando d3.js
- 28. seleccionar el menú desplegable con ascua
- 29. Superfish: cómo mantener abierto el menú secundario después de haber hecho clic
- 30. ¿Cómo puedo hacer que mis encabezados de página cambien de tamaño con el diseño receptivo?
buen ejemplo. Actualicé mi respuesta a los usuarios directos aquí. –
¿Es posible usar 3 capas para el menú en lugar de 2? – Reshad