Перейти к публикации

Быстрый поиск и абсолютное позиционирование блоков


ПафНутиЙ

Рекомендованные сообщения

Очередной баг с позиционированием и скриптами DLE.

Случай как обычно нечастый ибо мало людей, использующих абсолютное позиционирование блока с поиском, но тем не менее.

Проблема возникает, когда блок, в котором находится input id="search" имеет в position: absolute;

Выглядит как прибитые к левому верхнему краю страницы результаты быстрого поиска.

Так как раньше я не использовал быстрый поиск по сайту и не знаком с "правилами возникновения" на странице результатов быстрого поиска, я решил заглянуть в dle_js.js и разобраться почему же так ведёт себя блок с результатами.

В итоге немного оптимизировал скрипт, убрав оттуда совершенно не уместные там (ИМХО - позиционирование блока нужно задавать через css) расчёты позиционирования:


function dle_do_search( inputString )

{

clearInterval(dle_search_delay);

$('#searchsuggestions').remove();

$("#story").after("<div id='searchsuggestions' style='display:none'></div>");

$.post(dle_root + "engine/ajax/search.php", {query: ""+inputString+""}, function(data) {

   $('#searchsuggestions').html(data).fadeIn();

  });

dle_search_value = inputString;

};

Имеем три плюса: 1 - упрощение кода. 2 - более гибкая настройка внешнего вида. 3 - логически верное место вывода результатов поиска, а не в конце страницы. А в engine.css необходимо дописать нужные строчки кода для #searchsuggestions:
position: absolute;

top: 20px;

left: 0;

Можно ещё z-index добавить, но это уже по месту как говорится. Ну и не забыть #story заключить в блок с относительным позиционированием.

приведён не сокращенный код для dle 9.5

P.S.

Был бы очень признателен Celsoft`у если в новой версии DLE этой проблемы не будет.

Либо указанию веских причин написания именно такого кода, который лежит в dle_js.js в текущей версии DLE.

Спасибо.

Ссылка на сообщение
Поделиться на других сайтах

Архивировано

Эта тема находится в архиве и закрыта для публикации сообщений.

×
×
  • Создать...