jQuery plugin to create a circle Path-like menu
WCircleMenu is a jQuery plugin to create circle menu like Path app. WCircleMenu use javascript to calculate transition and animation of elements. It doesn't use CSS easing function.
Download and include javascript file in your page. Create the menu using div elements, example :
<div id="my-menu" class="" style="border-radius: 50%;position: relative; width: 50px; height: 50px; background-color: #999;margin:200px auto;">
<div class="wcircle-icon">
<div style="padding: 15px;width: 20px;height: 20px;text-align: center;">
+
</div>
</div>
<div class="wcircle-menu" style="display:none;">
<div class="wcircle-menu-item" style="background-color:red;border-radius:50%;padding:15px;width:20px;height:20px;">
A
</div>
<div class="wcircle-menu-item" style="background-color:green;border-radius:50%;padding:15px;width:20px;height:20px;">
B
</div>
<div class="wcircle-menu-item" style="background-color:blue;border-radius:50%;padding:15px;width:20px;height:20px;">
C
</div>
<div class="wcircle-menu-item" style="background-color:yellow;border-radius:50%;padding:15px;width:20px;height:20px;">
D
</div>
</div>
</div>
wcircle-icon class is your menu icon. wcircle-menu class is your menu list. You can replace divs inside these icon and menu div elements with links or images.
Call WCircleMenu on your menu :
$('#my-menu').WCircleMenu();
WCircleMenu is customizable with following options
$('#menu_icon').WCircleMenu({
angle_start : -Math.PI/2,
delay: 50,
distance: 100,
angle_interval: Math.PI/6,
easingFuncShow:"easeOutBack",
easingFuncHide:"easeInBack",
step:15,
openCallback:false,
closeCallback:false,
itemRotation:360,
iconRotation:180,
});
Open menu
$('#menu_icon').WCircleMenu('open');
Close menu
$('#menu_icon').WCircleMenu('close');
<div id="menu_icon" class="" style="border-radius: 50%;position: relative; width: 50px; height: 50px; background-color: #999;margin:200px auto;">
<div class="wcircle-icon">
<div style="padding: 15px;width: 20px;height: 20px;text-align: center;">
+
</div>
</div>
<div class="wcircle-menu" style="display:none;">
<div class="wcircle-menu-item" style="background-color:red;border-radius:50%;padding:15px;width:20px;height:20px;">
A
</div>
<div class="wcircle-menu-item" style="background-color:green;border-radius:50%;padding:15px;width:20px;height:20px;">
B
</div>
<div class="wcircle-menu-item" style="background-color:blue;border-radius:50%;padding:15px;width:20px;height:20px;">
C
</div>
<div class="wcircle-menu-item" style="background-color:yellow;border-radius:50%;padding:15px;width:20px;height:20px;">
D
</div>
<div class="wcircle-menu-item" style="background-color:cyan;border-radius:50%;padding:15px;width:20px;height:20px;">
E
</div>
<div class="wcircle-menu-item" style="background-color:magenta;border-radius:50%;padding:15px;width:20px;height:20px;">
F
</div>
<div class="wcircle-menu-item" style="background-color:khaki;border-radius:50%;padding:15px;width:20px;height:20px;">
G
</div>
<div class="wcircle-menu-item" style="background-color:gold;border-radius:50%;padding:15px;width:20px;height:20px;">
H
</div>
</div>
</div>
<button id="openWCM">open</button>
<button id="closeWCM">close</button>
$('#menu_icon').WCircleMenu({
width: '50px',
height: '50px',
angle_start : 0,//-Math.PI/2,
delay: 50,
distance: 100,
angle_interval: Math.PI/4,
easingFuncShow:"easeOutBack",
easingFuncHide:"easeInBack",
step:35,
itemRotation:360,
});
$('.icons').on('click',function(){
console.log($(this).text());
});
$('#openWCM').on('click',function(){
$('#menu_icon').WCircleMenu('open');
});
$('#closeWCM').on('click',function(){
$('#menu_icon').WCircleMenu('close');
});
MIT License