Постала задача определить разрешение экрана пользователя для того чтобы исходя из размера экрана выводить в ширину 4, 5 ,6 и тд товаров.
через javascript знаю как определить и как передать но это не сработает при первой загрузке страницы.
Может браузер передает в заголовках разрешение экрана или нет.
Может кто сталкивался
1. biperch - 16 Сентября, 2011 - 16:48:30 - перейти к сообщению
2. SAD - 16 Сентября, 2011 - 16:51:35 - перейти к сообщению
после загрузки страницы разруливать яваскриптом
3. garvey - 16 Сентября, 2011 - 16:51:43 - перейти к сообщению
Нет, браузер не передает разрешение экрана в хидерах. Узнайте Яваскриптом, а потом передайте это значение аяксом на сервер.
4. LIME - 16 Сентября, 2011 - 16:54:50 - перейти к сообщению
biperch ну да...при первой загрузке без тела только JS с редиректом и передачей параметров
5. garvey - 16 Сентября, 2011 - 16:56:08 - перейти к сообщению
LIME, зачем редиректы? Аякс. 21-й век
6. biperch - 16 Сентября, 2011 - 17:06:47 - перейти к сообщению
решил пойти другим путем, выводить все как есть float:left а потом смотря какой экран считать сколько товаров в ряд поместится, а остальное пространство скриптом margin добавлю чтобы равномерные отступы были между товарами
7. LIME - 16 Сентября, 2011 - 17:32:09 - перейти к сообщению
garvey в принципе да
если только кол-во товаров и ничто больше не зависит от экрана
если только кол-во товаров и ничто больше не зависит от экрана
8. biperch - 16 Сентября, 2011 - 17:52:53 - перейти к сообщению
хотел через ПХП из за того что бы не заморачиватся с кросбаузерностью, но так подумал ведь за меня все сделает JQuery ))
9. DeepVarvar - 16 Сентября, 2011 - 18:23:46 - перейти к сообщению
biperch http://forum.php.su/topic.php?fo...0&topic=2000 решено
10. biperch - 16 Сентября, 2011 - 19:30:57 - перейти к сообщению
немножко не то, выводятся товары, типа помещается 4 шт но есть еще место сбоку где не поместился 5 блок, так вот я хочу скриптом задать отступы блокам для того что бы они красиво по ширине стояли типа равномерно
а ваш скрипт высоту определяет и всем одинаковую задает, я от этого ушел ограничением количества выводимого описания, и бронированием высоты для текстов типа название и тд чтобы все ровнехонько было и не прыгало когда одно название в две а другое в четыре типа такого, тогда все чехардой идет.
а ваш скрипт высоту определяет и всем одинаковую задает, я от этого ушел ограничением количества выводимого описания, и бронированием высоты для текстов типа название и тд чтобы все ровнехонько было и не прыгало когда одно название в две а другое в четыре типа такого, тогда все чехардой идет.
11. biperch - 18 Сентября, 2011 - 19:17:45 - перейти к сообщению
взял выше приведенный пример по ссылке и трошки усовершенствовал, теперь он не только высоту блоков в ряду одинаковой делает, так теперь и равномерные расстояния между блоками, что бы они ровненько смотрелись.
CODE (javascript):
скопировать код в буфер обмена
скопировать код в буфер обмена
- function autoEquallyFloatHeight(e,p) {
- var ew = e.eq(0).width();
- var pw = p.width();
- var dcnt = (pw/ew|0); // количество товаров в ряду
- var imax; /* макс высота элементов в ряду*/
- var margin = ((pw-ew*dcnt)/(dcnt+1)|0); //отступ у элемента с каждой стороны
- var clines = (e.length/dcnt|0)+1; // количество рядов блоков
- e.css("height","100%");
- for (var line=0; line<clines; line++) {
- imax = 0;
- for (var d=(dcnt*line); d<(dcnt*line)+dcnt; d++) {
- if (imax < e.eq(d).height()) {
- imax = e.eq(d).height();
- }
- }
- for (var n = (dcnt*line); n<(dcnt*line)+dcnt; n++) {
- e.eq(n).height(imax);
- e.eq(n).css('margin-left', margin+'px');
- }
- }
- }
- window.onload = function() {
- autoEquallyFloatHeight($(".browseProductContainer"), $('#product_list'));
- }
- window.onresize = function() {
- autoEquallyFloatHeight($(".browseProductContainer"), $('#product_list'));
- }