Демонстрация
Недавно я увидел смену вида материалов, так как она платная в магазине uScript, который недавно презентовала ucoz; Я решил создать свой, малый и понятный, адаптивный, надеюсь красивый ( каждому не угодишь ) вид материалов, и скрипт к нему; Смысл скрипта и вида материала заключается в том что при нажатии кнопки меняется вид материалов, а точнее материалы становятся лентой, сеткой в два, или три колонки.
Чем же хорош сменный вид материалов?

  • Любой пользователь сделает вид материалов удобным для себя;
  • Простая установка;
  • Простота в изменениях кода (необходимы лишь базовые знания в CSS для изменения вида дизайна товаров). Для иконок используются специальные шрифты, в скрипте не задействованы графические элементы. Таким образом цвета иконок также очень просто изменить, заменив зеленый цвет на нужный вам;
  • работает на JQuery и cookie;

Что нового?

  • Подключен обновленный Font Awesome;
  • Убран лишний CSS;
  • Редактирован HTML код;
  • Картинки перестали сжиматься;
  • Отрегулирована высота материалов;
  • Подключён Cookie

Установка

1) Подключаем Font Awesome
Между тегом <head></head> вставляем ссылку на Font Awesome
Код
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
2) Вставляем CSS
Вставляем код в отдельный файл или в общий шаблон таблицы стилей
Код
/*----View materials uGarts-----*/
.item .blog-post-wrapper {
  padding: 4px;
  border: 1px solid #eee;
  border-bottom: 3px double #eee;
  background-color: #fff;
  width: 100%;
}
.item .figure {
  position: relative;
}
.post-thumbnail {
  margin-bottom: 20px;
  overflow: hidden;
  text-align: center;
}
.post-thumbnail img {
  opacity: 0.8;
}
.post-thumbnail img:hover {
  opacity: 1 !important;
}
.entry-header {
  padding: 0 10px;
  position: relative;
}
.item .message p {
  padding: 0px;
  margin: 0px;
}
.item.grid-item .message {
  position: relative;
  height: 80px;
  z-index: 1;
  max-width: 100%;
}
.entry-title {
  font-size: 16px;
  height: 40px;
}
.entry-title a {
  color: #282828;
  text-decoration: none;
  vertical-align: middle;
}
.entry-title a:hover {
  color: #68c3a3;
}
.item hr {
  padding: 15px 0;
  border-bottom: 1px solid #EEEEEE !important;
  background: #fff !important;
  position: relative;
  box-sizing: initial !important;
  -moz-box-sizing: initial !important;
}
.entry-meta {
  color: #afafaf;
  z-index: 2;
  position: relative;
  background: #fff;
  padding: 1px;
}
.entry-meta ul {
  padding-left: 0px;
  background: #fff;
}
list-inline {
  padding-left: 0;
  margin-left: -5px;
  list-style: none;
}
.entry-meta ul li {
  padding: 0 5px;
}
.list-inline>li {
  display: inline-block;
  padding-right: 5px;
  padding-left: 5px;
}
.the-author, .the-time, .the-comments {
  position: relative;
  padding-left: 15px;
}
.entry-meta ul li a {
  display: inline-block;
  color: #BBBBBB;
  font-weight: 400;
}
.the-author::before, .the-time::before, .the-share::before, .the-comments::before {
  font-family: FontAwesome;
  position: absolute;
  left: 0;
}
.col-sm-4 {
  width: 31.133333%;
  float:left;
  position: relative;
  min-height: 1px;
  padding-right: 15px;
}
.item.grid-item {
  width: 47.6623439788818323292%;
  float: left;
  position: relative;
  min-height: 1px;
  padding-right: 10px;
  padding-left: 5px;
  margin-bottom: 5px;
}
.list-item img {width:100%}
.item.list-item {
  margin-bottom: 1em;
  width: 97%;
  position: relative; min-height: 1px; padding-right: 10px; padding-left: 5px;  
}
.item.grid3-item hr {
  padding: 0px;
}
.item.grid-item .post-thumbnail img {
  height: 250px;
  max-width: none !important;
}
.item .entryReadAll {display:none;}
.item.grid3-item {
  width: 30.99405002593994323811%;
  float: left;
  position: relative;
  min-height: 1px;
  padding-right: 10px;
  padding-left: 5px;
  margin-bottom: 5px;
}
.grid3-item .post-thumbnail img {
  opacity: 0.8;
  height: 200px;
  max-width: none !important;
}
.grid3-item .entry-title{
  font-size: 16px !important;
  line-height: 1;
  height: 30px;
}
.grid3-item .message {
  display: none;
}
.item {
  margin-bottom: 1em;
  transition: .3s;
}
.the-author::before{
  content: "\f044";
}
.the-time::before{
  content: "\f133";
}
.the-comments::before{
  content: "\f0e6";
}
.view-news-moder{  
  float:left;  
  position: absolute;  
  top: 0px;  
  right: 0px;  
  padding: 10px;  
}
.btn-group { margin-bottom: 2em;}
.btn-group>.btn:first-child:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.btn-group>.btn:last-child:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group>.btn:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.btn-group .btn {
  border-radius: 4px;
  background-color: #68C3A3;
  padding: 10px 15px;
  color: #fff;
  margin-bottom: 2em;
}
.btn-group .btn.active,.btn-group .btn:hover {
  background-color: #79A898;
}
/*----View materials uGarts-----*/
3) Устанавливаем JS
Перед закрывающимся тегом </body> в самом низу шаблона страницы вставляем код:
Код
<!-- <uGarts js> --><script type='text/javascript' src='http://profolio.ucoz.com/js/viewmaterials.js'></script><!-- </uGarts js> -->
4) Вставляем кнопки
Ищем в коде место где вы хотите видеть кнопки и вставляем следующий код:
Код
<!-- <uGarts btn group> --><div class="content-padding"><div class="btn-group"><a href="javascript:" class="btn active" id="grid-view" title="сетка в две колонки"><i class="fa fa-th-large"></i></a><a href="javascript:" class="btn" title="материалы в виде листа" id="list-view"><i class="fa fa-list"></i></a><a href="javascript:" class="btn" id="grid3-view" title="сетка в три колонки" ugarts="сетка с материалами в три колонки"><i class="fa fa-th"></i></a></div><!-- </uGarts btn group> -->
5) Вставляем вид материалов
В зависимости от модуля будут меняться переменные $TITLE$, $NAME$ либо $ENTRY_NAME$
Код
<div class="item grid-item">
<?if($MODER_PANEL$)?><span class="view-news-moder">$MODER_PANEL$</span><?endif?>  
<article class="blog-post-wrapper">
<div class="figure">  
<div class="post-thumbnail">
<a href="$ENTRY_URL$"><img title="$TITLE$" src="$IMG_URL1$" alt="$TITLE$"></a>
</div>
</div>
<header class="entry-header">
<h2 class="entry-title"><a href="$ENTRY_URL$" title="$TITLE$"><?if(len($TITLE$)>30)?><?substr($TITLE$,0,30)?><?else?>$TITLE$<?endif?></a></h2>
<div class="message">$MESSAGE$</div>
<hr>
<div class="entry-meta">
<ul class="list-inline">
<li>
<span class="the-author">
<?if($USERNAME$)?><a href="$PROFILE_URL$" tite="Добавил материал $USERNAME$"><?if(len($USERNAME$)>12)?><?substr($USERNAME$,0,12)?><?else?>$USERNAME$<?endif?></a><?else?>Неизвестно<?endif?>
</span>
</li>
<li>
<span class="the-time" tite="Материал добавлен $DATE$ в $TIME$">
$DATE$, $TIME$
</span>
</li>
<li>
<span class="the-comments">
<a href="$COMMENTS_URL$" title="<?if($COMMENTS_NUM$="0")?>Комментариев нет<?else?>комментари<?if($COMMENTS_NUM$%10=0||$COMMENTS_NUM$%10>4||$COMMENTS_NUM$%100>10&&$COMMENTS_NUM$%100<15)?>ев<?else?><?if($COMMENTS_NUM$%10=1)?>й<?else?>я<?endif?><?endif?><?endif?>">$COMMENTS_NUM$</a>
</span>
</li>
</ul>
</div>
</header>
</article>
</div>
На этом установка закончена. Спасибо за внимание
Комментарии
avatar
0
10
Спасибо за скрипт.
А как поставить его с сохранением своего вида материалов?
avatar
0
11
Само легко, это подставить свои CSS стили; тяжелее будет переписать в скриптах классы к которым прописан путь, и добавить классы в CSS
avatar
0
9
Спасибо
avatar
0
8
новости не корректно показывает!!!!
avatar
0
7
Если я правильно понял, то вы через overflow желали сделать высоту, не знаю почему у Вас не вышло, но у меня получилось так:
Код
.blog-post-wrapper {
  padding: 4px;
  border: 1px solid #eee;
  border-bottom: 3px double #eee;
  background-color: #fff;
  width: 100%;
  overflow-y: auto;
  height: 250px;
}
Где вы должны будете указать свою высоту
avatar
0
5
А поточней? Просто я не мастер где что изменить
avatar
0
6
Код
$('#grid-view').addClass('active');  
  $('#list-view').click(function(event){
2 и 3 строчки, меняй грид, и лист на свои
avatar
0
4
Тоже так подумал, но пока прикольно смотрица). При первоначальном виде на кнопках переключения горит hover варианта вида на всю страницу, а включён тот в котором, фиксировал высоту.
Ответ: ну скрипт действительно простым сделал, в начале active поставь на любой вид другой
avatar
0
3
Код
.item.grid-item {
width: 47.7%;
height: 500px;
float: left;
position: relative;
min-height: 1px;
padding-right: 10px;
padding-left: 5px;
margin-bottom: 5px;
}
Вроде помогло
Ответ: Ну хорошо ), еще лучше будет и 3 фиксировать
avatar
0
2
В демонстрации, и у себя на сайте, есть прогалы в плитке, пробелы
avatar
0
1
Отличный скрипт))
avatar