tim_tairan: Делал на jQuery менюшку для Joomla шаблона.
jQuery('.nav-child').css('display','none'); // вложенную менюшку скрываем
jQuery('.parent').mouseover(function(){ // при наведении на корневую менюшку...
var l=jQuery(this).children('ul');
l.css('display','block').css('position','absolute'); // вложенную показываем
l.mouseout(function(){l.css('display','none');}); // при выходе мышки с вложенной скрываем её
jQuery('.parent').mouseout(function(){l.css('display','none');}); // при выходе с корневой вложенную скрываем
});
jQuery('.nav li').each(function(){ // для каждого пункта корневого и вложенного меню
var t=jQuery(this);
t.click(function(){ // при клике
jQuery(this).parent().parent().removeAttr('onclick'); // отменяем обработку события "click"
});
t.attr('onclick',"window.location='"+t.children('a').attr('href')+"'"); // и задаем на это событие новую задачу
});
Здесь суть в том, что вложенная менюшка, в коде, размещается внутри корневой, поэтому вложенная является частью корневой меню, и пока мышь над ней, она не пропадает. Главное сделать так, чтобы вложенная наезжала хотябы на 1px на корневую менюшку, чтобы промежуток не вызывал обработку события mouseout.
Не знаю как это сделать в нативном JS, но главное понять принцип, тогда на любом скрипте можно сделать.
Maks: по сути там простой принцип, определяем координаты курсора, и задаем постепенное стремление блока к этим координатам. Что то вроде javascript.ru/setInterval можно использовать. К примеру: если blockX <> mouseX делаем setinterval('blockX=blockX+1',100)
если урл из переменной вставляется, тогда лучше и вызывать обработчик жестко.
Как пример, код срабатывающий на нажатие Ctrl + V.
$(document).ready(function () {
var ctrl=false
$('input#myinput').keydown(function(e){
//alert(e.which); // можно использовать для определения кода клавиши.
if(e.which===17){ctrl=true;}
else if(e.which===86 && ctrl){loadIMG($(this).val());}
else ctrl=false;
});
});
function loadIMG(img){
var link = document.createElement('a');
link.href = img;
link.download = 'yandex.png';
link.click();
}
тогда на принимающей стороне надо смотреть. Возможно фильтруются теги, или используется что-то вроде $('body').text(answer) вместо $('body').html(answer) или $('body').append(answer). Здесь .text() обрезает все теги, тогда как .html() и .append() выдают с тегами.
Здесь суть в том, что вложенная менюшка, в коде, размещается внутри корневой, поэтому вложенная является частью корневой меню, и пока мышь над ней, она не пропадает. Главное сделать так, чтобы вложенная наезжала хотябы на 1px на корневую менюшку, чтобы промежуток не вызывал обработку события mouseout.
Не знаю как это сделать в нативном JS, но главное понять принцип, тогда на любом скрипте можно сделать.