Tecnología

Inicio

Cómo hacer un menú con Javascript Dockable

Si desea mostrar su menú como una fila con estilo de imágenes que puede desplazarse y hacer clic, es necesario implementar un menú acoplable JavaScript. Al colocar el cursor del ratón sobre una de las pequeñas imágenes, se expande y puede hacer clic para navegar a otra página. Una secuencia de comandos de menú acoplable es útil para añadir características a su sitio web. Además, se muestra correctamente en todos los navegadores web y se puede usar en cualquier lugar en sus páginas.

Instrucciones

1 Abra un editor de texto, como Bloc de notas o WordPad para crear un nuevo documento de texto.

2 Inserta este código dentro del editor:

MacStyleDock función (nodo, imageDetails, minimumSize, MaximumSize, rango) {
var = iconsNode document.createElement ( 'div');
Node.appendChild (iconsNode);
var = reflectedIconsNode document.createElement ( 'div');
Node.appendChild (reflectedIconsNode);
iconsNode.style.textAlign = 'central';
reflectedIconsNode.style.textAlign = 'central';

iconsNode.style.height = maximumSize + 'px';

reflectedIconsNode.style.height = MaximumSize + 'px';
var maximumWidth = 0;
escala var = 0;

var closeTimeout = null;

var closeInterval = null;
var openInterval = null;

var images = [];

iconNodes var = [];
reflectedIconNodes var = [];
iconSizes var = [];
for (var i = 0; i <imageDetails.length; i ++) {

iconNodes[i] = document.createElement('img');
iconNodes[i].style.position = 'relative';
iconSizes[i] = minimumSize;
reflectedIconNodes[i] = document.createElement('img');
updateIconProperties(i);
iconsNode.appendChild(iconNodes[i]);
reflectedIconsNode.appendChild(reflectedIconNodes[i]);
if (iconNodes[i].addEventListener){
iconNodes[i].addEventListener('mousemove', processMouseMove, false);
iconNodes[i].addEventListener('mouseout', processMouseOut, false);
iconNodes[i].addEventListener('click', imageDetails[i].onclick, false);
}else if (iconNodes[i].attachEvent){
iconNodes[i].attachEvent('onmousemove', processMouseMove);
iconNodes[i].attachEvent('onmouseout', processMouseOut);
iconNodes[i].attachEvent('onclick', imageDetails[i].onclick);
}
for (var j = 0; j &lt; imageDetails[i].sizes.length; j++){
var image = document.createElement('img');
image.setAttribute(
'src',
imageDetails[i].name
+ imageDetails[i].sizes[j]
+ imageDetails[i].extension);
images.push(image);
}

}
updateIconProperties de función (de archivo) {

var size = minimumSize + scale * (iconSizes[index] - minimumSize);
var sizeIndex = 0;
while (imageDetails[index].sizes[sizeIndex] &lt; size
&amp;&amp; sizeIndex + 1 &lt; imageDetails[index].sizes.length){
sizeIndex++;
}
if (size == maximumSize){
iconNodes[index].setAttribute('src',
imageDetails[index].name
+ maximumSize
+ '-full'
+ imageDetails[index].extension);
}else{
iconNodes[index].setAttribute('src',
imageDetails[index].name
+ imageDetails[index].sizes[sizeIndex]
+ imageDetails[index].extension);
}
reflectedIconNodes[index].setAttribute('src',
imageDetails[index].name
+ imageDetails[index].sizes[sizeIndex]
+ '-reflection'
+ imageDetails[index].extension);
iconNodes[index].setAttribute('width', size);
iconNodes[index].setAttribute('height', size);
reflectedIconNodes[index].setAttribute('width', size);
reflectedIconNodes[index].setAttribute('height', size);
iconNodes[index].style.marginTop = (maximumSize - size) + 'px';
reflectedIconNodes[index].style.marginBottom = (maximumSize - size) + 'px';

}

3 Anexar este código:

función processMouseMove (e) {

window.clearTimeout(closeTimeout);
closeTimeout = null;
window.clearInterval(closeInterval);
closeInterval = null;
if (scale != 1 &amp;&amp; !openInterval){
openInterval = window.setInterval(
function(){
if (scale &lt; 1) scale += 0.125;
if (scale >= 1){
scale = 1;
window.clearInterval(openInterval);
openInterval = null;
}
for (var i = 0; i &lt; iconNodes.length; i++){
updateIconProperties(i);
}
},
20);
}

si e = window.event (E!);

var target = e.target || e.srcElement;
var index = 0;
while (iconNodes[index] != target) index++;
var across = (e.layerX || e.offsetX) / iconSizes[index];
if (across){
var currentWidth = 0;
for (var i = 0; i &lt; iconNodes.length; i++){
if (i &lt; index - range || i > index + range){
iconSizes[i] = minimumSize;
}else if (i == index){
iconSizes[i] = maximumSize;
}else if (i &lt; index){
iconSizes[i] =
minimumSize
+ Math.round(
(maximumSize - minimumSize - 1)
* (
Math.cos(
(i - index - across + 1) / range * Math.PI)
+ 1)
/ 2);
currentWidth += iconSizes[i];
}else{
iconSizes[i] =
minimumSize
+ Math.round(
(maximumSize - minimumSize - 1)
* (
Math.cos(
(i - index - across) / range * Math.PI)
+ 1)
/ 2);
currentWidth += iconSizes[i];
}
}
if (currentWidth > maximumWidth) maximumWidth = currentWidth;
if (index >= range
&amp;&amp; index &lt; iconSizes.length - range
&amp;&amp; currentWidth &lt; maximumWidth){
iconSizes[index - range] += Math.floor((maximumWidth - currentWidth) / 2);
iconSizes[index + range] += Math.ceil((maximumWidth - currentWidth) / 2);
}
for (var i = 0; i &lt; iconNodes.length; i++) updateIconProperties(i);
}

}
funcionar processMouseOut () {

if (!closeTimeout &amp;&amp; !closeInterval){
closeTimeout = window.setTimeout(
function(){
closeTimeout = null;
if (openInterval){
window.clearInterval(openInterval);
openInterval = null;
}
closeInterval = window.setInterval(
function(){
if (scale > 0) scale -= 0.125;
if (scale &lt;= 0){
scale = 0;
window.clearInterval(closeInterval);
closeInterval = null;
}
for (var i = 0; i &lt; iconNodes.length; i++){
updateIconProperties(i);
}
},
20);
},
100);
}

}
}

4 Guarde el archivo en la carpeta que contiene la página HTML que desea insertar en el muelle y el nombre "dockable_menu.js". La extensión ".js" es obligatorio cambiar el archivo de un documento de texto en un archivo JavaScript.

5 Abrir la página web en cualquier editor de texto o HTML. Inserte el código entre el "<head>" y "</ head>" etiquetas para ejecutar la secuencia de comandos:

<Script type = "text / javascript" src = "dockable_menu.js"> </ script>

6 Inserta este código en cualquier lugar entre el "<body>" y "</ body>" etiquetas:

<Div id = "dock"> </ div>

El muelle debe insertarse dentro de esta estructura DIV.

7 Inserte el código entre el "<div id =" muelle ">" y "</ div>" etiquetas:

<Script type = "text / javascript">
var = nuevo muelle MacStyleDock (

document.getElementById('dock'),
[
{
name : 'image1',
extension : '.jpg',
sizes : [32, 64],
onclick : function(){
window.location = 'www.example.com';
}
},
{
name : 'image2',
extension : '.bmp',
sizes : [32, 64],
onclick : function(){
alert('You clicked on the wrong icon');
}
}
],
32,
64,
2);

</ Script>

Puede insertar tantos elementos entre las etiquetas como desee "[" y "]". Reemplazar "imagen1" con el nombre exacto de la imagen, sin su extensión. Reemplazar ".jpg" con la extensión de la imagen. En la línea de "tamaños", reemplazar "32" con el tamaño de píxel mínimo de la imagen y "64" con el tamaño de píxel máxima de la imagen. Use "window.location" en la función "función" para vincular la imagen a una página web y "alertar" si sólo desea mostrar un mensaje. Sustituir "32" y "64" bajo la etiqueta de "]" con el tamaño mínimo y máximo de los iconos de base. Reemplazar "2" con el número de iconos que tiene en su base.

8 Guardar la página web y cargarlo en su navegador web para probar el menú acoplable.