Стиль для посещенного дива.

Romaldo
На сайте с 10.02.2008
Offline
185
779

Здравствуйте коллеги!

Делаю сайт.

Для вывода объектов списком написал такую конструкцию:





<div class="itemlistframe" <?php if($this->item->params->get('catItemFeaturedNotice') && $this->item->featured):?> style="background-color: #FFEBEB;"> <?php else:?> > <?php endif; ?>

<div class="itemlistinframe1">
<div class="iverticalcell">
<?php echo $this->item->id;?>
</div>
</div>

<div class="itemlistinframe2">

<div class="iverticalcell">
<?php echo $extrafields[19];?>
</div>
</div>


<div class="itemlistinframe3">
<div class="iverticalcell">
<a href="<?php echo $this->item->link; ?>">
<?php echo $this->item->title; ?>

</a>
</div>
</div>


<div class="itemlistinframe4">
<div class="iverticalcelltext">
<a href="<?php echo $this->item->link; ?>">
<?php echo $this->item->introtext; ?>

</a>

</div>
</div>

<!-- Цена -->
<div class="itemlistinframe5">
<div class="iverticalcell">
<strong>
<?php if($extrafields[24]):
echo $extrafields[24];
echo " ";
echo $extrafields[85];
else:?> <font style="color: gray; font-size: 10px;">уточняйте</font>
<?php
endif;?>


</strong>
</div>
</div>

<div class="itemlistinframe6">
<div class="iverticalcell">

<span class="catItemImage">
<a href="<?php echo $this->item->link; ?>" title="<?php if(!empty($this->item->image_caption)) echo K2HelperUtilities::cleanHtml($this->item->image_caption); else echo K2HelperUtilities::cleanHtml($this->item->title); ?>">
<img src="<?php if(!empty($this->item->image)) echo $this->item->image; else echo "images/nophotoo.png"; ?>" alt="<?php if(!empty($this->item->image_caption)) echo K2HelperUtilities::cleanHtml($this->item->image_caption); else echo K2HelperUtilities::cleanHtml($this->item->title); ?>" style="width:<?php echo $this->item->imageWidth; ?>px; height:auto;" />
</a>
</span>

</div>

</div>



<div class="itemlistinframe7">
<div class="iverticalcell">


<?php if($this->item->params->get('catItemVideo') && !empty($this->item->video)): ?>

<img src="images/abudabyvideo.png">

<?php endif; ?>


</div>
</div>

Для этой конструкции, прописал такой css:

.itemlistframe  {border: #dedede dashed 1px; width:100%; overflow:hidden;}

.itemlistframefav {border: #dedede dashed 1px; width:100%; background-image: url(images/favoriteabu.png); background-repeat: no-repeat; background-position: left top; }
.itemlistframe:hover {background-color: #f0f0f0;}
.itemlistframefav:hover {background-color: #f0f0f0;}

.itemlistinframe1 {width: 5%; height: 94px; display: table; float: left; text-align: center; color:gray; color: black;}
.itemlistinframe2 {border-left: #dedede solid 1px; width:10%; height: 94px; display: table; float: left; text-align: center; color: black}
.itemlistinframe3 {border-left: #dedede solid 1px; width:20%; height: 94px; display: table; float: left; text-align: center; color: black}
.itemlistinframe4 {border-left: #dedede solid 1px; width:35%; height: 94px; display: table; float: left; text-align: justify; color: black}
.itemlistinframe5 {border-left: #dedede solid 1px; width:10%; height: 94px; display: table; float: left; text-align: center; color: #D90036;}
.itemlistinframe6 {border-left: #dedede solid 1px; width:14%; height: 94px; display: table; float: left; text-align: center; color: black }
.itemlistinframe7 {width:5%; height: 94px; border-left: #dedede solid 1px; width:5%; display: table; float: left; text-align: center; color: black}

.iverticalcell {vertical-align:middle; display: table-cell; position: relative;}
.iverticalcelltext {vertical-align:middle; display: table-cell; padding-left: 7px;padding-right: 7px;}

.itemlistinframename1 {width: 5%; display: table; float: left; text-align: center; color:gray; font-size: 10px; }
.itemlistinframename2 {border-left: #dedede solid 1px; width:10%; display: table; float: left; text-align: center; font-size: 10px;}
.itemlistinframename3 {border-left: #dedede solid 1px; width:20%; display: table; float: left; text-align: center; font-size: 10px;}
.itemlistinframename4 {border-left: #dedede solid 1px; width:35%; display: table; float: left; text-align: center; font-size: 10px;}
.itemlistinframename5 {border-left: #dedede solid 1px; width:10%; display: table; float: left; text-align: center; font-size: 10px;}
.itemlistinframename6 {border-left: #dedede solid 1px; width:14%; display: table; float: left; text-align: center; font-size: 10px;}
.itemlistinframename7 {width:5%; border-left: #dedede solid 1px; width:5%; display: table; float: left; text-align: center; font-size: 10px;}

Вот так выглядит вывод объектов:

Как сделать так, чтобы div посещенного объекта, при возвращении к спискам объектов менял свой цвет? Это как свойство ссылки visited.

И второй вопрос: возможно ли сделать ссылкой не только текст в диве, а весь див (может прозрачной картинкой)?

S5
На сайте с 04.01.2010
Offline
77
#1

Задавать цвет явой

можно явой же навесить событие он клик на весь див

Romaldo
На сайте с 10.02.2008
Offline
185
#2

Без явы не обойтись?

Я с ней как бы вообще мало знаком...

И если это не так уж страшно, не могли бы накидать пример использования?

A4
На сайте с 05.01.2012
Offline
55
#3

Оно у тебя на аяксе работает? если нет - то фиг его знает как....

О! Юзай кукиз! точно. В кукиз прописывай данные по элементам которые просмотрены.

А потом через javascriptом считывай куки и конструкцией типа $(имя дива из куков).css("background-color","#121212"); это jquery.

к стати у jquery даже плагин для работы с кукиз есть cookie и называется.

пользователь переходит по ссылке из дива, заносим это в куки через php, там есть функции.

если каждому куку присваивать название от 0 до число просмотров, то данные можно считать так:

var cc = 0;

while($.cookie(cc.toString())){

$($.cookie(cc.toString()).css("background-color","#121212");

сс++

}

то есть читаются куки от 1 до сколько там просмотрел пользователь и ко всем стиль применяется.

У меня работает, не барахлит и не пыхтит, но на денвере. На серваке проблемы с кодировкой в русскоязычных ссылках.

---------- Добавлено 12.06.2012 в 14:55 ----------

Даже подробнее напишу.

В файле который отображает список квартир в секции

$(document).ready(function(....

делаете так:

var cc = 0;

while($.cookie(cc.toString())){

$($.cookie(cc.toString()).css("background-color","#121212");

сс++

}

- то есть если пользователь просмотрев инфу о квартире вернулся на страницу со списком квартир, то изменить стили.

В пхп файле, отвечающем за отображение квартир в секции $(document).ready(function(....

делаете так:

n = 0;

while($.cookie(n)){//зато сердито и работает

n++;

}

$.cookie(n,'тут твой div.itemlistframe+n, наверное...',30);

30- время хранения, в днях. вообще 1 поставьте)

Romaldo
На сайте с 10.02.2008
Offline
185
#4

Спасибо за содействие, но мне честно говоря никак не доходит, как это реализовать на моем примере.

Сам алгоритм понятен, а что куда пихать не очень.

Вот есть файл шаблона

http://cl.ly/3B1A0n1t2V0T1S3l0T1r

Есть еще css, указанный выше.

Все.

Что куда прописывать?

A4
На сайте с 05.01.2012
Offline
55
#5

Так у тебя что только 2 файла что-ли о_0) аа ээ ну типа подробная информация о квартире где показывается?)

Я думал типа например тыкаешь по ссылке "Копия квартира в центре недорого" - окно обновляется, загружается php файл в котором вся подробная инфа о квартире. Или у тебя не так?) А тогда как о_0 ну просто я бы так сделал хД

О НЕТ ЭТО же К2!!!! ААА, щас вкурю))

Бэлин я думал ты руками писал.... К2 осложняет задачку раз в 100) вот я даже сам не знаю куда теперь все это пихать) нее, не знаю.

Под джумлой я сам много чего ковал на к2, но просто такой задачи себе не ставил))

По моему лучше тебе не заморачиваться ато попортишь еще) там ведь у каждого материала уникальный id его в яваскрипте не узнать. короче забей, мой здравый(наверное) совет.

А что a:visited уже не пашет?

К стати:

И второй вопрос: возможно ли сделать ссылкой не только текст в диве, а весь див (может прозрачной картинкой)?

Можно, я даже делал вот смотри внизу в футере http://www.zfbsau.ru/

только надо тегу a дать стиль display:block ибо по умолчанию внутрь строчных элементов(ссылка строчный элемент) нельзя засовывать блочные(див то есть)

такая конструкция канает:

<a style="display:block;"><div></div></a>

_____________________________________________

Я в этом самом универе учусь, я сделал им сайт(отличный имхо), и они не хотят мне ставить зачеты! Адалт выложу!)

Romaldo
На сайте с 10.02.2008
Offline
185
#6

Да как по мне, то этот посещенный див сильно портит внешний вид страницы...

Но заказчик хочет, хоть ты тресни и все....

A4
На сайте с 05.01.2012
Offline
55
#7

Ну тоогда попробуй так:

<div class="itemlistframe">

<div class="itemlistinframe1">

<a class='test'>

<div class="iverticalcell">

<?php echo $this->item->id;?>

</div>

</a>

</div>

и в стили напиши например так:

a.test:visited{

opacity:0.8;

}

попробуй, я фиг его знает как там, но может прокатит))

Romaldo
На сайте с 10.02.2008
Offline
185
#8

Спасибо, но не работает )))

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий