Сейчас: 17:01:29   23-го апреля 2024 г.
UsefulScript.ruСкриптыСложные менюМеню по клику кнопки мышки
19
65

Собственное меню, появляющееся при клике
правой кнопки мышки

Предлагаем Вашему вниманию необычный скрипт, который позволит Вам создать свое собственное меню, которое появится при клике правой кнопкой мышки.


Для демонстрации работы скрипта появляющегося собственного меню при нажатии правой кнопкой мышки, просто кликните на правую кнопку мышки в любом месте данной странички.


Для получения своего собственного меню, появляющегося при клике правой кнопкой мышки как в демонстрационном примере, добавьте в шапку Вашего сайта (между тегами <head></head>) стиль создаваемого меню:

HTML код:
<style type="text/css">
#main_menu {
    
positionabsolute;
    
width160px;
    
border1px solid #000000;
    
background-color#EEEEEE;
    
font-family"Verdana";
    
line-height20px;
    
font-size14px;
    
z-index99;
    
visibilityhidden;
}
#main_menu > div {
    
padding-left10px;
    
padding-right10px;
}
#main_menu > :hover {
    
background-color#6666FF;
    
color#FFFFFF;
    
cursorpointer;
}
</
style>

Далее необходимо создать само меню, которое будет показываться при клике правой кнопкой мышки. Для этого необходимо вставить на свою страничку следующий код:

HTML код:
<div id="main_menu">
 <
div onClick="jump(this);" url="http://usefulscript.ru">На главную</div>
 <
div onClick="jump(this);" url="script.php">Скрипты</div>
 <
div onClick="jump(this);" url="useful_site.php">Онлайн-сервисы</div>
 <
div onClick="jump(this);" url="trick.php">Хитрости</div>
 <
div onClick="jump(this);" url="forum/index.php">Форум</div>
 <
hr>
 <
div onClick="jump(this)" url="support.php">Обратная связь</div>
</
div>

Далее вставляем скрипт, который будет отображать и скрывать меню, появляющееся при нажатии правой кнопки мышки:

JavaScript код:
<script type="text/javascript">
var 
mouse_x 0;
var 
mouse_y 0;
menu_obj document.getElementById("main_menu");

function 
mousemove(event) {
    if (
document.attachEvent != null) {
        
mouse_x window.event.pageX;
        
mouse_y window.event.pageY;
    } else if (!
document.attachEvent && document.addEventListener) {
        
mouse_x event.pageX;
        
mouse_y event.pageY;
    }
}

function 
show_menu(e) {
    
mousemove(e);
    
menu_obj.style.left mouse_x "px";
    
menu_obj.style.top mouse_y "px";
    
menu_obj.style.visibility "visible";
    return 
false;
}

function 
hide_menu(e) { menu_obj.style.visibility "hidden"; }

function 
jump(e) { window.location=e.getAttribute("url"); }

document.oncontextmenu show_menu;
document.onclick hide_menu;
</script>

Если Вы все сделали так, как написано в данной теме, то у Вас должно получиться точно такое же меню, доступное при клике по правой кнопке мышки, как и в нашем примере.

Дата создания: 21:34:12 08.10.2011 г.
Дата обновления: 22:36:47 08.03.2012 г.
Посещений: 10558 раз(а).

Комментарии посетителей (5 шт.):
Антош
0
# 2332
(18:57:50  14.03.2015 г.)

Работает, но я кликаю и оно остается не там где курсор, а в углу сайта.
Ответить

Евгений
0
# 3315
(09:41:09  08.07.2016 г.)

Такая же проблема.
Админ, подскажи пожалуйста, как исправить это?
Как сделать, чтобы меню появлялось рядом с курсором?
Ответить

Виталий
0
# 3428
(08:40:27  21.09.2016 г.)

Здравствуйте, без !doctype работает, скрипт рабочий, но нельзя ли как-то скрипт сделать рабочим, чтобы страницы прошли валидацию, а то без <!doctype html> "не очень хорошо".
Переменная - var ns6 = document.getElementById&&!document.all использует !document, поэтому скрипт и не работает, было бы неплохо, если бы и с <!doctype html> скрипт заработал, я бы точно применил у себя на сайте.
Ответить

Administrator
0
# 3438
(22:43:07  22.09.2016 г.)

Статью исправил, но не работает в IE.
Как вариант, можно попробовать сделать что-то подобное при помощи jQuery:
$(document).ready(function(){
$('body').mousedown(function(event){
event.preventDefault();
if(event.button==2){
alert("Правая кнопка мыши");
//показываем меню
}
});
$("body").contextmenu(function(){return false;});
});
Ответить

Вадим
0
# 4846
(13:07:34  30.07.2021 г.)

Плохо что target blank не сработал.
Ответить

Закрыть
Ваше имя:
363 + 11 =
Добавить комментарий:
Ваше имя:
363 + 11 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 9

Какую CMS для сайта Вы предпочитаете?