Ответы пользователя по тегу JavaScript
  • Как сделать так, чтобы высота (длина) нужной линии рассчитывалась автоматически?

    @targrik
    Можно попробовать так:
    1. Для контента и левого блока задать display: table-cell, чтобы выровнять их по высоте.
    2. Левому блоку задать padding-top размером с диаметр окружности, background-clip: content-box, фоном указать картинку полоски с повторением по оси Y.
    3. Окружность с числом спозиционировать абсолютно поверх внутреннего отступа.
    Ответ написан
    Комментировать
  • Почему при подгрузке html через .load() отваливаются js скрипты?

    @targrik
    Инициализацию обработчиков надо вынести в отдельную функцию, и вызывать её при каждой догрузке контента. Чтобы не инициализировать обработчики по нескольку раз на тех же элементах, внутри функции следует работать с элементами только в текущем контейнере.

    $(function() {
    	prepare_container($('body'));
    });
    function prepare_container(c) {
    	// инициализация обработчиков для элементов внутри контейнера
    	// ...
    	c.find(".nav-load").on('click', function () {
    		var block = $('.load-block');
    		block.load('contact.html .load-block', function() {
    			prepare_container(block);
    		});
    		return false;
    	});
    }
    Ответ написан
    Комментировать
  • Как сделать спойлер jquery (для нескольких элементов на странице) так чтобы кнопка "раскрыть" исчезала если текста мало?

    @targrik
    Извините, увлёкся.

    <p class='spoiler_block'>qqqqqq<br>wwwwww<br>eeeeee<br>qqqqq<br>wwwww<br>eeeee<br>qqqqqq<br>wwwwww<br>eeeeee<br>qqqqq<br>wwwwww</p>


    .spoiler_title{
    	font-size: 12px;
    	border-bottom: #000000 dashed 1px;
    	cursor: pointer;
        color: #62a000;
        display:inline-block;
    }
    .spoiler_block{
        overflow:hidden;
    }


    $(function() {
        $('.spoiler_block').each(function() {
            var t = $(this);
            var h1 = t.height();
            var h2 = 40; // необходимая высота блока
            if (h1 > h2) {
                var n;
                var add_spoiler_expand_title = function() {
                    t.after('<p class="spoiler_title">развернуть</p>');
                    n = t.next();
                    n.on('click', spoiler_expand);
                };
                var add_spoiler_collapse_title = function() {
                    t.after('<p class="spoiler_title">свернуть</p>');
                    n = t.next();
                    n.on('click', spoiler_collapse);
                };
                var spoiler_collapse = function() {
                    n.fadeOut(100, function() {
                        n.remove();
                        t.css({height: h2 + 'px'});
                        add_spoiler_expand_title();
                    });
                };
                var spoiler_expand = function() {
                    n.remove();
                    t.stop(true, false).animate({height: h1 + 'px'}, 300, add_spoiler_collapse_title);
                };
                t.css({height: h2 + 'px'});
                add_spoiler_expand_title();
            }
        });
    });
    Ответ написан
    Комментировать