Как сделать такой значек в блоке меню ?

P
На сайте с 06.01.2009
Offline
592
628

Здравствуйте.

Подскажите, пожалуйста, как сделать

1. такой значек около необходимых пунктов меню?

2. нужно чтобы при нажатии по этому значку (плюсику) раскрывался список.

С п.2. примерно понимаю как справиться, если подскажете п.1. и как ему придать нужный id для того чтобы потом в скриптах прописать действие при нажатии на значек с этим id

СПасибо

jpg 145604.jpg
jpg 145605.jpg
D
На сайте с 14.01.2007
Offline
153
#1

это простые картинки. какие поставите, такие и будут

P
На сайте с 06.01.2009
Offline
592
#2
Dinozavr:
это простые картинки. какие поставите, такие и будут

Я в коде у них картинки не нашел, с css не дружу честно говоря.

Вот это для минуса прописано в коде

<a rel="nofollow" id="s-img-2126" class="section-image disable"></a>

это для плюса

<a rel="nofollow" id="s-img-2126" class="section-image ajax plus"></a>
C
На сайте с 26.10.2013
Offline
54
#3

Ну если коротко, то

HTML

<ul class"menu">

<li><span data-list="list1">+</span><a href="#">Пункт меню 1</a>
<ul id="list1">
<li><a href="#">Пункт меню 1.1</a></li>
<li><a href="#">Пункт меню 1.2</a></li>
<li><a href="#">Пункт меню 1.3</a></li>
<li><a href="#">Пункт меню 1.4</a></li>
</ul>
</li>
<li><span data-list="list2">+</span><a href="#">Пункт меню 2</a>
<ul id="list2">
<li><a href="#">Пункт меню 2.1</a></li>
<li><a href="#">Пункт меню 2.2</a></li>
<li><a href="#">Пункт меню 2.3</a></li>
<li><a href="#">Пункт меню 2.4</a></li>
</ul>
</li>
</ul>

CSS

ul.menu ul{

display:none;
}

JS

$('ul.menu li span').on('click', function(e){

$('ul#' + $(this).data('list')).toggle();
e.preventDefault();
});

Необходимa либа jQuery

В верстке разберетесь?

Услуги по парсингу данных (/ru/forum/939826), единоразовый и регулярный сбор данных. Любые объемы. Скрипты на PHP, создание и доработка, решение проблем с сайтами Пишите в личные сообщения или скайп
P
На сайте с 06.01.2009
Offline
592
#4

colorito, я нашел нужные куски кода у них. Плюс то что вы написали, завтра попробую скомбинировать.

Можно обратиться если не будет получаться?

Спасибо

зы вижу у вас не исконка + и -, а у них значки в png. При нажатии класс меняется на противоположный...соответственно подгружается другой значек.

luckyJack
На сайте с 11.10.2010
Offline
79
#5

Реализация и пример того,что вам нужно есть здесь. Используется jQuery, HTML, CSS.

Комплексный интернет-маркетинг (https://serblog.ru/nastrojka-i-vedenie-kontekstnoj-reklamy-yandeks-direkt-i-google-adwords/)
P
На сайте с 06.01.2009
Offline
592
#6

Нашел полный код. Конечно не все понятно, особенно в js

css


.catalog-menu a.section-image.plus{
background: url('/img/znakplus.jpg') no-repeat left top;
}
.catalog-menu a.section-image.minus{
background: url('/img/znakminus.jpg') no-repeat left top;
}

js


$(document).ready(function(){
//var menu = $('.');

$('a.section-image').live('click', function(event) {
var _this = $(this);

var id = _this.attr('id').replace('s-img-','');
var href = "/catalog/getSection.php?SECTION_ID="+id+'&math='+Math.random();
var blockIn = _this.closest('.p-menu')
var oldAjax = blockIn.parent().find('#_ttt'+id);
var isAjax = oldAjax.hasClass('ajax');

if (_this.hasClass('plus')){
_this
.removeClass('plus')
.addClass('minus');
//ajax
if (!isAjax){
blockIn.after('<span id="load" style="color:#999;padding-left:13px;">Загрузка...</span>')
$.get(href).success(function(results){
var ajaxBlock = ($(results).find('.ajax'));
ajaxBlock.css('padding-left','11px');
ajaxBlock.css('display','none');
blockIn.after(ajaxBlock);
$('#load').remove();
ajaxBlock.slideDown(500);
});
}else{
oldAjax.slideDown(500);
}
}else
if (_this.hasClass('minus')){
if (_this.attr('href')==='/catalog/'){
return true;
}
_this
.removeClass('minus')
.addClass('plus')
.addClass('ajax');
//Если текущая секция открыта
oldAjax.slideUp(500);
}
event.preventDefault();
});
});


---------- Post added 02-10-2015 at 00:12 ----------

luckyJack:
Реализация и пример того,что вам нужно есть здесь. Используется jQuery, HTML, CSS.

Спасибо. Ваш пример намного короче по количеству кода, чем тот который я нашел на интересующем меня сайте. Странно. Завтра буду плотно разбираться.

Да и один ньюанс. В вашем примере нет перехода в страницу вопроса, а только раскрывается ответ. Т.е. я то буду ещё делать сам вопрос ссылкой на отдельный документ. Раскрываться список должен только при нажатии по значку.

luckyJack
На сайте с 11.10.2010
Offline
79
#7
Раскрываться список должен только при нажатии по значку

А, вон оно чего, михалыч. )) Честно говоря не знаю, как с этим разобраться.

P
На сайте с 06.01.2009
Offline
592
#8

Почти сделал, одна проблема осталась

Если РАЗДЕЛ 1 обернуть в <a href>Раздел1</a> то не работает

а так работает

1. список раскрывается

2. класс меняется на минус и цвет плюсика становится красным, ну а уж подгрузку минусика вместо плюсика сделаю

 

<div class="bolchetexta"><span class="chitatdalee plus">+</span>
РАЗДЕЛ 1
<div class="razvorot">
<li><a href="">категория 1</a></li>
<li><a href="">категория 2</a></li>
<li><a href="">категория 3</a></li>
</div></div>

js


$(".bolchetexta .razvorot").hide();
$(".bolchetexta .chitatdalee").click(function(){
var _this = $(this);
$(this).next(".razvorot").slideToggle("slow")

if (_this.hasClass('plus')){
_this
.removeClass('plus')
.addClass('minus');
};

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