ПафНутиЙ 31 Опубликовано: 19 февраля 2012 Рассказать Опубликовано: 19 февраля 2012 (изменено) Очередной баг с позиционированием и скриптами 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. Спасибо. Изменено 19 февраля 2012 пользователем ПафНутиЙ 3 Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.