Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Эффектные вкладки табы - Tabulous.js (div и а хватает все) (https://javascript.ru/forum/dom-window/60979-ehffektnye-vkladki-taby-tabulous-js-div-i-khvataet-vse.html)

Ilya_Ru 29.10.2016 10:45

Цитата:

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

Расположение вкладок понял с самого начала знакомства с ними. Каждый элемент как бы располагается один под другим, при выборе вкладки меняется просто их видимость... но вот решить проблему пока не удается... :(

Цитата:

Сообщение от рони (Сообщение 433346)
это не понял.

Я вот о чем: http://hostingkartinok.com/show-imag...d0406155abd7ca
Расстояние появляется от вкладок до блока...

рони 29.10.2016 10:45

Ilya_Ru,
.showup,.showscale,.showleft,.showflip  {
  z-index: 10;
}

рони 29.10.2016 10:50

Цитата:

Сообщение от Ilya_Ru
Я вот о чем

лучше поискать дизайнера, нужен специалист по css, моих знаний недостаточно, чтобы вам правильно помочь по одинаковой высоте li.
и добавьте run в пост №19
[HTML run][/HTML]

Ilya_Ru 29.10.2016 11:20

Огромное человеческое спасибо! :) Вы как всегда очень сильно помогли :)
Вопрос с кликабельностью ссылки полностью решен :)

Высоту li блоков смог выравнить при помощи скрипта, найденного в интернете:

function setEqualHeight(columns)
{
var tallestcolumn = 0;
columns.each(
function()
{
currentHeight = $(this).height();
if(currentHeight > tallestcolumn)
{
tallestcolumn = currentHeight;
}
}
);
columns.height(tallestcolumn);
}
$(document).ready(function() {
setEqualHeight($(".height > li > a"));
});


Применил к:
<ul class="height">
...
</ul>

Решение достаточно топорное. Но если более лучшее не будет найдено - придется оставить так :)

Цитата:

Сообщение от рони (Сообщение 433351)
и добавьте run в пост №19
[HTML run][/HTML]

Добавил :)

рони 29.10.2016 12:07

Ilya_Ru,
встроил в плагин, использовать
Цитата:

Сообщение от Ilya_Ru
class="height"

нет необходимости, но лучшее решение это css, a не js.
(function($) {
    function setEqualHeight(columns) {
        var tallestcolumn = 0;
        columns.each(function() {
            currentHeight = $(this).css({
                height: ""
            }).height();
            if (currentHeight > tallestcolumn) tallestcolumn = currentHeight
        });
        columns.height(tallestcolumn)
    }
    $.fn.tabulous = function(options) {
        var settings = $.extend({
            effect: "scale"
        }, options);
        return this.each(function() {
            var parent = $(this),
                ul = $(">ul", parent),
                links = $(">li a", ul),
                block = $("> div", parent),
                divs = $("> div", block),
                hide = "hide" + settings.effect,
                show = "show" + settings.effect;
            ul.append('<span class="tabulousclear"></span>');
            divs.css({
                "position": "absolute",
                "top": "10px",
                "left": 0,
                "right": 0
            }).addClass("make_transist");
            block.addClass("transition");
            links.each(function(indx, a) {
                var a = $(a);
                a.on("click", function(event) {
                    event.preventDefault();
                    links.not(a.addClass("tabulous_active")).removeClass("tabulous_active");
                    var div = divs.eq(indx);
                    divs.removeClass(show).not(div.addClass(show)).addClass(hide);
                    block.height(div.height())
                })
            }).eq(0).click();
            setEqualHeight(links);
            $(window).resize(function() {
                block.height(divs.filter("." + show).height());
                setEqualHeight(links)
            })
        })
    }
})(jQuery);

Ilya_Ru 29.10.2016 17:16

рони,
Появился новый (старый) глюк: Если открыть html страницу в полноэкранном режиме, а затем перейти в полэкрана - текст съедается как во вкладках, так и в div к ним причастным :(
Если в ручную изменить размер окна - вкладки подстраиваются под текст

UPD: вроде решил проблему банальной задержкой выполнения скрипта setTimeout(function() { ...скрипт... }, 1000);

Ilya_Ru 29.10.2016 19:49

все равно иногда проскальзывает данный глюк... особенно заметно на мобильном при поворотах устройства

рони 29.10.2016 20:18

Ilya_Ru,
танцы с бубнами, поменять строки 45 и 44, или исключить строку 45.

Ilya_Ru 29.10.2016 20:39

так и есть проблема :(

Ilya_Ru 31.10.2016 15:12

Проблема так и остается актуальной. Пока не дернишь окошко - вкладки не подстроются. Может в моем случае происходит какой-то конфликт со style.responsive.js? Если да, то быть может подскажите, как его исправить? http://php-ilyaru.rhcloud.com/moysite/moy.html


Часовой пояс GMT +3, время: 18:29.