То, что вы хотите, это animate - замените ваш переключатель на animate и введите параметры для (свойства, длительность, замедление, функция обратного вызова).
Чтобы это работало с вашим кодом, вам нужно изменить / добавить несколько вещей. Во-первых, удалите display: none из вашего tool_hover - вместо этого мы спрячем его, поместив его за пределы поля .show, а затем установим переполнение .show скрытым.
На ваш CSS:
.show {
overflow:hidden;
position:relative; /* Otherwise the absolute positioned child element ignores overflow */
}
.tool_hover {
z-index: 0; /* Take precedence over .tool_box */
left: 500px; /* Starting position is outside .show , effectively hidden */
}
.tool_box {
z-index: 1; /* So hover will cover this box */
}
Далее мы хотим заменить вашу функцию переключения на animate. Когда вы наведите курсор мыши на прямоугольник, мы скажем классу .tool_hover, чтобы он вернулся, установив его левую позицию обратно в 0. Просто замените первый .toggle () на:
...
.animate({
'left' : '0px'},
'slow');
и второй переключатель () с:
...
.animate({
'left' : '0px'},
'slow');
Вот jsfiddle для демонстрации