2015-05-08 4 views
-1

На моей странице у меня есть небольшой простой колесо, как значок в верхней панели навигации, который вращается на 360 градусов, при наведении курсора мыши и обратно, когда мышь удаляется с помощью этого CSS коды:Count Общее количество завершенных CSS анимация

.img-wheel{ 
border-radius: 50%; 
border:5px solid <?php echo $nav_text_color; ?>; 
-webkit-transition-duration: 0.8s; 
-moz-transition-duration: 0.8s; 
-o-transition-duration: 0.8s; 
transition-duration: 0.8s; 

-webkit-transition-property: -webkit-transform; 
-moz-transition-property: -moz-transform; 
-o-transition-property: -o-transform; 
transition-property: transform; 

overflow:hidden; 
} 
.img-wheel:hover { 
-webkit-transform:rotate(360deg); 
-moz-transform:rotate(360deg); 
-o-transform:rotate(360deg); 

Мне нужен счетчик рядом с ним, который показывает, сколько раз кто-то завершал всю анимацию (или, если проще, сколько раз кто-то зависал за рулем). Предпочтительный абсолютный итог, поэтому пользователь 1 зависает один раз, а счетчик добавляет +1, а пользователь 2 открывает сайт с помощью счетчика уже на 1, пользователь 2 наводит один раз, и он отображает 2. Пользователь 1 возвращается к и видит счетчик на 2.

Поскольку колесо находится в навигационной панели, счетчик также не должен сбрасываться при открытии другой страницы.

Я знаю, что для этого потребуются скрипты на стороне сервера, и мне любопытно, с чего начать. Моя идея состояла в том, чтобы добавить простой файл counter.txt с начальным значением 0. И некоторый скрипт должен отредактировать файл, добавив +1 каждый раз, когда анимация будет завершена. Но это также потребует перезагрузки counter.txt каждый раз, когда он редактируется, иначе он не будет отображаться в реальном времени пользователем.

У вас, ребята, блестящая идея?

+0

Вам нужна: база данных и jQuery. Вам нужно будет использовать jQuery для прослушивания события зависания. Если он зависает, jQuery вызывает функцию, которая затем вызывает страницу PHP (все в фоновом режиме). Эта страница PHP проверяет, действительно ли запрошенный IP-адрес (или имя пользователя, если это применимо, что-то действительно) в базе данных, а если нет, он увеличивает счетчик (который также будет находиться в базе данных). – Mave

ответ

0

Если вы правильно поняли, что хотите, чтобы на странице был элемент, который изменяется для всех пользователей, когда пользователь взаимодействует с ним.

Я бы предложил вам создать функцию js, которая изменит класс элемента колеса, чтобы изменить анимацию, и попросите его ajax post обратно на сервер с тем же ударом. Следующая проблема будет заключаться в хранении данных, поэтому вам, вероятно, понадобится какое-то хранилище общих данных, такое как база данных или сервер значений ключей, где вам нужно будет хранить идентификатор (что-то вроде) и вызвать счетчик те строки счетчика. Я советую против файла, так как вы, скорее всего, получите условия гонки в одном текстовом файле.

+0

Даже если вы не бежите (каламбур) в условия гонки, вам все равно придется не иметь одного и того же посетителя дважды. Конечно, у вас может быть другой файл с IP-адресом для каждого правила. Получите содержимое файла в PHP, взорвите новое правило, проверьте, находится ли текущий IP в этом массиве и т. Д. И т. Д. База данных с Javascript, на мой взгляд, наилучшим образом. – Mave

+0

Сайт предназначен только для небольшой местной аудитории (для детей). Я хочу этот счетчик, чтобы они могли «работать» на одном и том же, когда они дома, и устанавливали некоторые достижения на определенных числах (возможно, измените цвет сайта на x hover, что-то в этом роде). Это также означает, что один пользователь должен иметь возможность добавлять к счетчику несколько раз в одном сеансе. Мой хостинг-сервис включает в себя 5 баз данных MySQL и поддержку Php, CGI, XML, Perl (я только знаком с php), и мой сайт включает jQuery. – Monthy

+0

Да, как я уже говорил, вы можете хранить Идентификатор (IP или DB-ID) для каждого прогона, а количество раз, которое видел один пользователь, было бы подсчетом количества строк в базе данных для этот IP-адрес или другой идентификатор. Если вы хотите, чтобы он был сбрасывается, вы могли бы сгенерировать идентификатор и отправить его как файл cookie/сеанс для идентификатора, а затем повторно добавить с помощью указанного идентификатора, проверив файл cookie/сеанс, когда сервер столкнется с ним. –

Смежные вопросы