Adding a Right-click context menu to a webpage
Posted on October 31, 2016 • 3 minutes •JQuery
This is the code by which users can add customize right click context menu to web page.
Adding CSS File
#contextMenuContainer {display: none; position: fixed; width:200px; z-index: 100;} #contextMenuContainer #contextMenu {list-style: none; padding: 0px; font-size: 20px; border-radius: 10px; border: 1px solid #D3D3D3;} #contextMenuContainer #contextMenu li {font-size: 20px; cursor: pointer; padding-top: 5px; padding-left: 20px; padding-right: 20px; padding-bottom: 5px; text-align: center;}
Adding JS File
$(function() { var doubleClicked = false; $(document).on("contextmenu", function (e) { if(doubleClicked == false) { e.preventDefault(); // To prevent the default context menu. var windowHeight = $(window).height()/2; var windowWidth = $(window).width()/2; //When user click on bottom-left part of window if(e.clientY > windowHeight && e.clientX <= windowWidth) { $("#contextMenuContainer").css("left", e.clientX); $("#contextMenuContainer").css("bottom", $(window).height()-e.clientY); $("#contextMenuContainer").css("right", "auto"); $("#contextMenuContainer").css("top", "auto"); } else if(e.clientY > windowHeight && e.clientX > windowWidth) { //When user click on bottom-right part of window $("#contextMenuContainer").css("right", $(window).width()-e.clientX); $("#contextMenuContainer").css("bottom", $(window).height()-e.clientY); $("#contextMenuContainer").css("left", "auto"); $("#contextMenuContainer").css("top", "auto"); } else if(e.clientY <= windowHeight && e.clientX <= windowWidth) { //When user click on top-left part of window $("#contextMenuContainer").css("left", e.clientX); $("#contextMenuContainer").css("top", e.clientY); $("#contextMenuContainer").css("right", "auto"); $("#contextMenuContainer").css("bottom", "auto"); } else { //When user click on top-right part of window $("#contextMenuContainer").css("right", $(window).width()-e.clientX); $("#contextMenuContainer").css("top", e.clientY); $("#contextMenuContainer").css("left", "auto"); $("#contextMenuContainer").css("bottom", "auto"); } $("#contextMenuContainer").fadeIn(500, FocusContextOut()); doubleClicked = true; } else { e.preventDefault(); doubleClicked = false; $("#contextMenuContainer").fadeOut(500); } }); function FocusContextOut() { $(document).on("click", function () { doubleClicked = false; $("#contextMenuContainer").fadeOut(500); $(document).off("click"); }); } });