I have a vertical menu (html list) with an arrow image (as a div). I would like the arrow to slide vertically to the clicked position.
Should be a pretty simple animate!
I have a vertical menu (html list) with an arrow image (as a div). I would like the arrow to slide vertically to the clicked position.
Should be a pretty simple animate!
Like following perhaps:
$('#arrow_image').animate($('#vertical_menu').position(), 'slow');
position might be offset depending on context.
Edit: erm, read question wrong :)
to move it to mouse position in a click handler:
var click_handler = function(event) {
$('#arrow_image').animate(
{
left: event.pageX - $('#vertical_menu').offset().left
}, 'slow');
}
left depends as usual on context where the arrow image is located in DOM, if it's absolute positioned in relation to body then pageX is sufficient.
Click here to see this in action.
HTML
<ul>
<li>Click</li>
<li>Here</li>
<li>And</li>
<li>Watch</li>
<li>The</li>
<li>Magic</li>
<li>Happen</li>
</ul>
<div id="bullet">♦</div>
CSS
ul { list-style:outside circle; padding-left:20px; }
li { cursor: pointer; }
#bullet { color:#0c0; padding:1px 0 0 3px; position:absolute; top:200px; }
Important part is #bullet { position:absolute; }
jQuery (in $(document).ready)
$('li').bind('click', function(e) {
var offset = $(e.target).offset();
$('#bullet').animate({'top':offset.top},600);
});
Pretty simple!