veleg

veleg
Рейтинг
142
Регистрация
30.01.2011
Интересы
Туризм, программирование, скалолазание
Путешественник
Mayskiykot:
Завел паблик вО вк

Авторство указывай и все, проблем то?

vl273:

В данном конкретном случае можно закостылить так: if ($(document).height() - $( window ).height() - 200 <= $( window ).scrollTop()), и будет работать. Но и в десктопе запрос к серверу будет срабатывать чуть раньше, хотя пользователь разницы и не заметит.

Открывается не по 30, а сразу всю выборку.

vl273:
И узрел он код. И содрогнулся он. И наполнилось его сердце скорбью.

Потестил на мобиле в хроме. Проблема в следующем: на мобиле $(document).height() вычисляется мягко говоря странно. Причем, в горизонтальном и вертикальном положении устройства, в одном и том же браузере, цифры сильно разные.
Если в двух словах, то $( window ).scrollTop() на мобиле значительно меньше $(document).height() - $( window ).height().
В данном конкретном случае можно закостылить так: if ($(document).height() - $( window ).height() - 200 <= $( window ).scrollTop()), и будет работать. Но и в десктопе запрос к серверу будет срабатывать чуть раньше, хотя пользователь разницы и не заметит.

Однако мое имхо, если оно Вам интересно, то это мягко говоря неправильный подход. Зачем дергать каждый раз сервер? При большом количестве записей в БД, ответ будет приходить достаточно долго, плюс это нагрузка на сервер. Я бы с сервера отдавал все данные сразу, а на стороне клиента уже сделал все свистелки, перделки и сортировки с подгрузками. В Вашем случае могла бы подойти библиотека jqueryDataTables. Понятно, что из коробки она работает иначе, но при помощи небольшого напилинга, функционал вполне можно сделать аналогичным Вашему. При этом вся работа будет переложена на сторону клиента.

А если записей например миллион. Он весь этот миллион загрузит и будет обрабатывать на стороне клиента?

vl273:
Сложно что-то сказать не видя картины в целом. Просто тот ответ был самым очевидным.
Можете скинуть ссылку на эту страницу в личку. Будет время - посмотрю.

blogcode.ru

В личку кидать не стал, чтоб не докучать лишний раз.

vl273:
попробуйте так
if ($(document).height() - $( window ).height() <= $( window ).scrollTop())

Афигеть. Вы монстр.

На телефоне заработало, только если со скоростью света скрол прокручивать. Если медленно, то нет.

Никто не знает?

giveaway:
Давно занимаюсь самостоятельными путешествиями. Главный материал для продажи - готовые маршруты по городам Европы с gps-треками, которые я готовил и прошел лично сам. Надо их красиво оформить перед началом продажи. Второй планируемый источник дохода - партнерки по продаже авиа- и других билетов.

Под это дело пока создал три мес. назад группу в ВК: https://vk.com/bezgida Пишу посты (в среднем 2 раза в день) Есть чем поделиться с народом. Свечу свои материалы, но скачать их на данный момент нельзя. По моим подсчетам материала о моих путешествиях у меня на год, если продолжать таким же темпом.

Раскручивал пока через рекламу в смежных сообществах, делал один конкурс. Подписчики набираются медленно, по цене 15р за одного. Вложил 4 тыс. Предлагал написание статей конкурентам при условии засветить в них ссылку на мою группу. Согласился пока один с 15тыс подписчиками. Посмотрим, что это даст. Сегодня запустил таргетинг.рекламу с показами в самой большой конкурирующей группе. Тоже смотрю, какой будет эффект.

Вопросы у меня такие:
1) Сколько нужно вложить, чтобы группа начала приносить профит по партнеркам?
2) Какое в среднем время требуется на раскрутку? Привлечение целевых подписчиков, кто путешествует, а не просто лайкает красивые фотки "Планета Земля"))
3) Оцените опытным взглядом группу. Может чего не хватает? Выслушаю советы.

Афигеть. Вовремя я маслайкинг использовал.

по 20 копеек выходило в той же тематике.

ziliboba0213:
Угу, понял, попробуйте таймаут повесить, должно помочь:

$('#input-search')
.focus(function() {
$('#block-search-result').show();
})
.blur(function() {
setTimeout(function(){
$('#block-search-result').hide();
},200);
});

https://jsfiddle.net/s1we90y2/1/

Благодарю. Все работает 🍻

ziliboba0213:
Если кликнуть вне поля по ссылке, поле скроется, а по ссылке перейдет. У меня так везде.

В общем строить гипотезы и гадать, не видя, что там у вас происходит, устал :) Разбирайтесь сами :p

Ну есть код ваш. Просили скрин, прислал скрин, все объяснил.

Вот даже видео как это все происходит.

https://www.youtube.com/watch?v=3zooWCZaSys&feature=youtu.be

Какие ж гипотезы? Все же предоставил.

Если убрать

$('#input-search')
.focus(function() {
$('#block-search-result').show();
})
.blur(function() {
$('#block-search-result').hide();
});

то все работает и нажимается.

ziliboba0213:
Как это не произойдет перехода по ссылке? Ересь какая-то :)

Проверьте:
1. Ссылка точно есть?
2. z-index у плашек верно задан?

Вы же понимаете, что по скриншоту проблему определить все равно, что гадать на кофейной гуще? 🍿

Ну вот только код.

Ссылки все есть. Если удалить js код (который скрывает блок с результатами при смене фокуса), то переход осуществляется.

2. z-index задан верно.

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

Всего: 763