Резиновый каталог с удалением элементов
Добрый день.
Подскажите, как можно реализовать резиновый каталог с удалением элементов, которые не помещаются в блок при сужении страницы и наоборот, при растягивании что бы появлялись. И еще, что бы менялась ширина в зависимости от кол-ва элементов отображаемых.. В общем, например, как на ozon.ru на главной странице блок "Другие пользователи сейчас смотрят" |
Вы просите готовый скрипт с нуля.
Это работа, и за нее обычно платят деньги. Для таких сообщений предназначен раздел форума "Работа". Если вы все же хотите, чтобы вам помогли - приложите какие-то усилия сами и задавайте вопросы по ходу дела. |
Нет, не надо готовый скрипт, мне интересно как это реализовано на теории, сделаю я сам, подскажите в какую сторону копать..
|
На ozone это реализовано через CSS, там даже скрипт не нужен... Не проверял, но догадываюсь что именно так
|
на css разве можно менять ширину блока при растягивании, сужении страницы?
|
вот сделал, но как то немного тормозит, можно ли это оптимизировать?
$(window).resize(function() { blockResize(".catalog_leader", ".catalog_item_card"); }) function blockResize(blockName, itemName) { if ($(blockName).width() < 800) { //3 товара $(blockName + " " + itemName).css("width", "33.3%"); $(blockName + " " + itemName).slice(3,6).hide(); } if ($(blockName).width() < 1000 && $(blockName).width() >= 800) { //4 товаров $(blockName + " " + itemName).css("width", "25%"); $(blockName + " " + itemName).slice(4,6).hide(); $(blockName + " " + itemName).slice(3,4).show(); } if ($(blockName).width() < 1200 && $(blockName).width() >= 1000) { //5 товаров $(blockName + " " + itemName).css("width", "20%"); $(blockName + " " + itemName).slice(5,6).hide(); $(blockName + " " + itemName).slice(3,5).show(); } if ($(blockName).width() >= 1200) { //6 товаров $(blockName + " " + itemName).css("width", "16.6%"); $(blockName + " " + itemName).slice(3,6).show(); } } |
Может тебе поможет мое чудовище.
Ширина пунктов меню равная .При размере браузера менее 400рх 3 блока убираются.Можно сделать постепенное скрытие по одному блоку <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Документ без названия</title> <style type="text/css"> * { margin: 0; padding: 0; font: 11px "Trebuchet MS", Verdana, Tahoma, sans-serif; } ul { list-style: none; text-align: justify; text-justify: newspaper; line-height: 0; } li { display: inline-block; vertical-align:top; text-align: center; background: red; } li.helper { width: 100%; background: none; } </style> <!--[if lte IE 7]> <style type="text/css"> ul { width: 99.9%; text-align-last: justify; } li { display: inline; } li.helper { display: none; } </style> <![endif]--> </head> <body> <ul> <li>home</li> <li>about us</li> <li>contacts</li> <li>home</li> <li>about us</li> <li>contacts</li> <li> link</li> <li class="helper"></li> </ul> <script> function handler(){ ul=document.getElementsByTagName('ul')[0] if(document.body.clientWidth<400){ ul.getElementsByTagName('li')[6].style.display='none' ul.getElementsByTagName('li')[5].style.display='none' ul.getElementsByTagName('li')[4].style.display='none' }else{ ul.getElementsByTagName('li')[6].style.display='' ul.getElementsByTagName('li')[5].style.display='' ul.getElementsByTagName('li')[4].style.display='' } } if(window.addEventListener){ window.addEventListener('resize',handler,false) } else{ window.attachEvent('onresize',handler) } </script> </body> </html> Работает везде даже в ишаке |
Часовой пояс GMT +3, время: 14:53. |