Чтобы «обрезать» текст, используйте следующий CSS:
.list_wrapper li {
overflow: hidden;
}
.list_wrapper li a {
white-space: nowrap;
position: relative; // Needed for the animation!
}
Затем для анимации "тикер" используйте анимационную платформу, например, jQuery, чтобы «переместить» элемент <a>
(анимировать свойство CSS left
) при его наведении; но только если offsetWidth
элемента превышает ширину родительского узла (в противном случае нам не нужно прокручивать). На mouseout
мы остановим анимацию и переместим элемент обратно.
Пример использования jQuery :
$('.list_wrapper li a').mouseover( function() {
if( this.offsetWidth > this.parentNode.offsetWidth ) {
$(this).animate({'left': '-'+(this.offsetWidth)+'px'}, 5000, function(){this.style.left='0px';});
}
} ).mouseout( function() {
$(this).stop();
this.style.left = '0px';
} );
Чтобы этот JavaScript-фрагмент работал, вам нужно встроить jQuery-фреймворк на ваш сайт. Фрагмент должен быть выполнен по завершении загрузки страницы: либо вы помещаете его в самый конец HTML-кода (непосредственно перед </body>
), либо запускаете его window.onload
.
Рабочий пример см. Здесь:
http://jsfiddle.net/z7V7d/2/
Редактировать: На самом деле, я не люблю делать домашнее задание для других; но мне было весело делать это, так что я думаю, что все в порядке. Я обновил код в соответствии с вашими пожеланиями. ;)