jquery - Codrops - 选择灵感和 Bootstrap

标签 jquery html css twitter-bootstrap drop-down-menu

我正在使用 Bootstrap 和 Codrops -单击此链接进行演示,每当我将鼠标悬停在 column-1 或 column-2 上时,我有九个包含选择选项的 div,依此类推,它会像演示中那样打开选择选项,

我的问题是,当选项打开时,它不应该覆盖在第二行上,所以我在悬停时为所有列提供了填充底部,这样我就可以获得空间来显示选择元素的选项,它有效很好,但是每当它打开时,它就会折叠整个结构并获得第二行中的最后一个 div,我尝试给出 display: table;对于行和显示:表格单元格;对于专栏,没有任何结果

这些是整个标记

<section>
    <div class="row">
        <div class="col-lg-4">
            <select class="column-1 cs-select cs-skin-border">
                <option disabled selected value="">
                    Glat Request
                </option>
                <option value="email">
                    New ID
                </option>
                <option value="twitter">
                    Registration
                </option>
                <option value="linkedin">
                    Manage
                </option>
            </select>
        </div>
        <div class="col-lg-4">
            <select class="column-2 cs-select cs-skin-border">
                <option disabled selected value="">
                    URL Redirect
                </option>
                <option value="email">
                    New ID
                </option>
                <option value="twitter">
                    Registration
                </option>
                <option value="linkedin">
                    Manage
                </option>
            </select>
        </div>
        <div class="col-lg-4">
            <select class="column-3 cs-select cs-skin-border">
                <option disabled selected value="">
                    Campaign Registration
                </option>
                <option value="email">
                    New ID
                </option>
                <option value="twitter">
                    Registration
                </option>
                <option value="linkedin">
                    Manage
                </option>
            </select>
        </div>
        <div class="col-lg-4">
            <select class="column-4 cs-select cs-skin-border">
                <option disabled selected value="">
                    Users
                </option>
                <option value="email">
                    New ID
                </option>
                <option value="twitter">
                    Registration
                </option>
                <option value="linkedin">
                    Manage
                </option>
            </select>
        </div>
        <div class="col-lg-4">
            <select class="column-5 cs-select cs-skin-border">
                <option disabled selected value="">
                    Pixel Request
                </option>
                <option value="email">
                    New ID
                </option>
                <option value="twitter">
                    Registration
                </option>
                <option value="linkedin">
                    Manage
                </option>
            </select>
        </div>
        <div class="col-lg-4">
            <select class="column-6 cs-select cs-skin-border">
                <option disabled selected value="">
                    CRO Request
                </option>
                <option value="email">
                    New ID
                </option>
                <option value="twitter">
                    Registration
                </option>
                <option value="linkedin">
                    Manage
                </option>
            </select>
        </div>
        <div class="col-lg-4">
            <select class="column-7 cs-select cs-skin-border">
                <option disabled selected value="">
                    Your Request
                </option>
                <option value="email">
                    New ID
                </option>
                <option value="twitter">
                    Registration
                </option>
                <option value="linkedin">
                    Manage
                </option>
            </select>
        </div>
        <div class="col-lg-4">
            <select class="column-8 cs-select cs-skin-border">
                <option disabled selected value="">
                    Some Request
                </option>
                <option value="email">
                    New ID
                </option>
                <option value="twitter">
                    Registration
                </option>
                <option value="linkedin">
                    Manage
                </option>
            </select>
        </div>
        <div class="col-lg-4">
            <select class="column-9 cs-select cs-skin-border">
                <option disabled selected value="">
                    Campaign
                </option>
                <option value="email">
                    New ID
                </option>
                <option value="twitter">
                    Registration
                </option>
                <option value="linkedin">
                    Manage
                </option>
            </select>
        </div>
    </div>
</section>

JS

 (function() {
    [].slice.call(document.querySelectorAll('select.cs-select')).forEach(
        function(el) {
            new SelectFx(el);
        });
})();

$(document).ready(function() {
$(".column-1").hover(function() {

   //For opening the select element

 $('div.column-1').addClass('cs-active');

        if ($(this).hasClass('cs-active')) {

           //Padding bottom for adding space for the opened element

            $('div.column-1').css('padding-bottom', '80px');
        }


}, function() {

    //On hover out actions

    $('div.column-1').removeClass('cs-active');
    $('div.column-1').css('padding-bottom', '0px');
});
$(".column-2").hover(function() {
    $('div.column-2').addClass('cs-active');
    if ($(this).hasClass('cs-active')) {
        $('div.column-2').css('padding-bottom', '80px');
    };

}, function() {
    $('div.column-2').removeClass('cs-active');
    $('div.column-2').css('padding-bottom', '0px');
});
$(".column-3").hover(function() {
    $('div.column-3').addClass('cs-active');
    if ($(this).hasClass('cs-active')) {
        $('div.column-3').css('padding-bottom', '80px');
    }

}, function() {
    $('div.column-3').removeClass('cs-active');
    $(this).css('padding-bottom', '0px');
});
$(".column-4").hover(function() {
    $('div.column-4').addClass('cs-active');
    if ($(this).hasClass('cs-active')) {
        $('div.column-4').css('padding-bottom', '80px');
    }

}, function() {
    $('div.column-4').removeClass('cs-active');
    $('div.column-4').css('padding-bottom', '0px');
});
$(".column-5").hover(function() {
    $('div.column-5').addClass('cs-active');
    if ($(this).hasClass('cs-active')) {
        $('div.column-5').css('padding-bottom', '80px');
    }

}, function() {
    $('div.column-5').removeClass('cs-active');
    $('div.column-5').css('padding-bottom', '0px');
});
$(".column-6").hover(function() {
    $('div.column-6').addClass('cs-active');
    if ($(this).hasClass('cs-active')) {
        $('div.column-6').css('padding-bottom', '80px');
    }

}, function() {
    $('div.column-6').removeClass('cs-active');
    $('div.column-6').css('padding-bottom', '0px');
});
$(".column-7").hover(function() {
    $('div.column-7').addClass('cs-active');
    if ($(this).hasClass('cs-active')) {
        $('div.column-7').css('padding-bottom', '80px');
    }

}, function() {
    $('div.column-7').removeClass('cs-active');
    $('div.column-7').css('padding-bottom', '0px');
});
$(".column-8").hover(function() {
    $('div.column-8').addClass('cs-active');
    if ($(this).hasClass('cs-active')) {
        $('div.column-8').css('padding-bottom', '80px');
    }

}, function() {
    $('div.column-8').removeClass('cs-active');
    $('div.column-8').css('padding-bottom', '0px');
});
$(".column-9").hover(function() {
    $('div.column-9').addClass('cs-active');
    if ($(this).hasClass('cs-active')) {
        $('div.column-9').css('padding-bottom', '80px');
    }

}, function() {
    $('div.column-9').removeClass('cs-active');
    $('div.column-9').css('padding-bottom', '0px');
});

});

CSS

.col-lg-4 {
display: inline-block;
margin-bottom: 3%;
}

.row {
    margin-left: 15px;
    margin-right: 15px;
}

div.cs-skin-border {
    font-size: 16px;
    font-weight: 300;
}

最佳答案

我自己解决了这个问题,方法是计算“鼠标悬停”上的所有 div,当屏幕大时将其切成三片,当屏幕较小时将其切成两片,依此类推,然后用另一个完美运行的“div”包裹起来对于我和“mouseout”,我打开并保持 div 原样。

这是代码

$(document).ready(function() {
loadMenus();
w = $(window).width();
});
$(window).resize(function() {
    if (w != $(window).width()) {
        console.log('window resized..');
        this.location.reload(false);
        w = $(window).width();
        delete w;
    }
});

function loadMenus() {
    var divs = $("div > div.col-lg-4:visible");
    $(".toolWrapper .col-lg-4").on('mouseover', function() {
        var screen = parseInt(parseInt($(".col-lg-4").css('width')) /
            $(window).innerWidth() * 100);
        var csOptions = $('div.cs-options').height();
        var countContent;
        if (screen >= 90) {
            countContent = 1;
        } else if (screen >= 40) {
            countContent = 2;
        } else if (screen >= 30) {
            countContent = 3;
        }
        for (var i = 0; i < divs.length; i += countContent) {
            divs.slice(i, i + countContent).wrapAll(
                "<div class='divWraper' style='width:100%;float:left;'></div>"
            );
        }
        $(this).find('div.cs-select').addClass('cs-active');

    });
    $(".toolWrapper .col-lg-4").on('mouseout', function() {
        $(".col-lg-4").unwrap();
        $(this).find('div.cs-select').removeClass('cs-active');

}

关于jquery - Codrops - 选择灵感和 Bootstrap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36884533/

相关文章:

html - z-index 不起作用

jquery - 在加载后续内容时隐藏 iframe

javascript - 使段落的第一行与 css 或 javascript(jquery) 链接

javascript - 有两个条件的禁用按钮

html - 使用 Qt 5.5.1 从 QWebView 获取网站内容

javascript - 访问不需要登录的网站时CSRF检查失败是什么意思?

javascript - Tinymce允许制表符空格缩进

javascript - 如何使用 Jquery 删除 xml 中的外部元素

javascript - YouTube 滚动显示

jquery ajax调用一个接一个循环而不停止页面渲染