Как отследить количество просмотров формы, если она находится внизу страницы или в середине? Без отслеживания скроллинга здесь никак.
Придется:
1. Вычислять высоту страницы в пикселях (в браузере каждого пользователя при каждом просмотре страницы);
2. Вычислить (один раз) высоту в пикселях, на которую необходимо отмотать страницу, чтобы полностью увидеть форму.
3. Исключить срабатывание счетчика, когда пользователь скроллит «тудым-сюдым».
Последнее нужно, чтобы статистика была более корректной. Будем считать просмотр формы один раз. Пока пользователь не перезагрузит страницу, скроллинг «тудым-сюдым» не будет влиять на количество просмотров формы в нашей статистике.
В таком случае код может выглядеть примерно так:
//вводим переменную, чтобы не учитывать скроллинг тудым-сюдым, а только один раз
var CountScroll=0;//узнаем высоту страницы в браузере пользователя:
var scrollHeight = Math.max(
document.body.scrollHeight, document.documentElement.scrollHeight,
document.body.offsetHeight, document.documentElement.offsetHeight,
document.body.clientHeight, document.documentElement.clientHeight
);//предположим, 300 — это наша высота от низа страницы до кнопки "Отправить"
var HeightScrolling = scrollHeight-300;$(window).scroll(function(){
if($(this).scrollTop() > HeightScrolling){if (CountScroll==0) {
$.ajax({
url: "/myhandler.php",
type: "post",
data:{'Shows':'1'},
dataType: 'json',
success:function (data) {}
});CountScroll=1;
}
}
}).scroll();
Подобный скрипт я применяю для следующих показателей в моей системе статистики:
/myhandler.php — это php обработчик формы, написанный по тому же принципу, что и здесь.
Смотрите также: