Почему бегущая строка не останавливается при наведении?

Чтобы остановить выделение при наведении мыши, я сделал следующее:

CSS:

<style type="text/css">

.wm {
    border: solid 2px;
    border-color:#0aa2e3;
    border-radius: 10px;
    font-family:Georgia, "Times New Roman", Times, serif;
    font-size:13px;
}

marquee:hover {
    animation-play-state:paused;
}

</style>

HTML :

<p class="wm"> <marquee> ... </marquee> </p>

Но ничего не происходит, когда я навожу указатель мыши на движущийся абзац. Это почему ?


person saplingPro    schedule 30.07.2014    source источник
comment
Какой браузер вы используете?   -  person jjjjjjjjjjjjjjjjjjjj    schedule 30.07.2014
comment
Я думал, что это связано с тем, что хром является веб-браузером, но Кевин, похоже, указал на реальную проблему ниже.   -  person jjjjjjjjjjjjjjjjjjjj    schedule 30.07.2014
comment
Просто из любопытства, почему вы используете шатер?   -  person putvande    schedule 30.07.2014


Ответы (1)


Это потому, что выделение не является анимацией CSS3, и это все, что вы можете приостановить с помощью animation-play-state:paused;.

Но что еще более важно: вы больше не должны использовать бегущую строку.

Если вам нужно что-то подобное, например список движущихся ссылок, по которому можно щелкнуть и который останавливается при наведении курсора, вам следует искать альтернативы, я могу поспорить, что есть некоторые плагины бегущих строк jQuery.


Изменить. Поскольку вы ищете анимацию CSS3 с возможностью паузы в соответствии с вашими комментариями, вам потребуется следующая разметка:

<p class="marquee"> <!-- the wrapping container -->
  <span> ... </span> <!-- the tray moving around -->
</p>

Содержимое в вашем диапазоне будет перемещаться по контейнеру-обертке с классом marquee.

/* define the animation */
@keyframes marquee {
  0%   { transform: translate(0, 0); }
  100% { transform: translate(-100%, 0); }
}

/* define your limiting container */
.marquee {
  width: 450px;
  margin: 0 auto;
  white-space: nowrap;
  overflow: hidden;
  box-sizing: border-box;
}

/* this is the tray moving around your container */
.marquee span {
  display: inline-block;
  padding-left: 100%;
  text-indent: 0;
  animation: marquee 15s linear infinite; /* here you select the animation */
}

/* pause the animation on mouse over */
.marquee span:hover {
  animation-play-state: paused
}

Также как jsfiddle: http://jsfiddle.net/MaY5A/209/


Дополнительное примечание:

Поскольку анимация CSS3 все еще находится в экспериментальном состоянии в некоторых браузерах, возможно, вам придется добавить префиксы поставщиков. Что может быть странно, особенно для самого определения анимации:

@-webkit-keyframes marquee {
  ...
}

@-moz-keyframes marquee {
  ...
}

Но для transform, translate, animation и animation-play-state могут потребоваться префиксы поставщиков, в зависимости от того, насколько давно вы хотите поддерживать браузеры.

person Kevin Sandow    schedule 30.07.2014
comment
и мне не разрешено использовать js - person saplingPro; 30.07.2014
comment
В вашей скрипте они добавили анимацию для span, которая находится внутри выделенного абзаца. - person Suresh Ponnukalai; 30.07.2014
comment
Как я могу реализовать, как в скрипке? - person saplingPro; 30.07.2014
comment
Добавленный вами jsfiddle использует не выделение, а замену анимации CSS3, но мне нужно проверить, что здесь возможно. - person Kevin Sandow; 30.07.2014
comment
Это странно, он использует почти тот же код, что и тот, который вы связали. (это также движется для меня) - person jjjjjjjjjjjjjjjjjjjj; 30.07.2014
comment
Я обновил свой ответ, чтобы отразить ваше требование использования анимации CSS3 и отсутствия javascript. - person Kevin Sandow; 30.07.2014
comment
@KevinBusse Не работает для хрома. Даже после добавления @-webkit-keyframes marquee - person saplingPro; 30.07.2014
comment
@KevinBusse Вот ошибки для chrome s14.postimg.org/ttsdxwmgx/Capture.jpg - person saplingPro; 30.07.2014
comment
Перечеркнутые в s14.postimg.org/ttsdxwmgx/Capture.jpg говорят недопустимое значение свойства - person saplingPro; 30.07.2014
comment
Вам придется использовать -webkit-animation и -webkit-animation-play-state, если вы используете его на своем собственном сайте, jsfiddle делает это автоматически, но если вы хотите использовать его на нашей онлайн-странице, вы сами будете обрабатывать префиксы поставщиков. - person Kevin Sandow; 30.07.2014