Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:根据窗口宽度更改jQuery_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript jQuery:根据窗口宽度更改jQuery

Javascript jQuery:根据窗口宽度更改jQuery,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一些jQuery,我想根据屏幕宽度进行更改。加载页面时,我希望脚本确定窗口宽度,var=width,并根据该宽度选择一组函数。但是,如果用户要调整屏幕大小,我希望脚本重新定义宽度,并再次选择哪一组函数 jQuery 我发现解决这个问题的最简单方法是在点击事件后获得屏幕宽度。单击->获取宽度->如果屏幕>767执行{},否则执行{}。这可以在下面看到 $(document).ready(function () { $(".navbar-link").on("click", funct

我有一些jQuery,我想根据屏幕宽度进行更改。加载页面时,我希望脚本确定窗口宽度,
var=width
,并根据该宽度选择一组函数。但是,如果用户要调整屏幕大小,我希望脚本重新定义
宽度
,并再次选择哪一组函数

jQuery
我发现解决这个问题的最简单方法是在点击事件后获得屏幕宽度。单击->获取宽度->如果屏幕>767执行{},否则执行{}。这可以在下面看到

$(document).ready(function () {

    $(".navbar-link").on("click", function() {
        var el = $(this);
        var dd = el.siblings();

        var loc = el.offset();
        var left = loc.left;
        var width = el.width();
        var center = left + (0.5 * width);
        var corrected_center = center - 5;

        var isDown = dd.hasClass('down');
        var numDown = $(document).find(".down").length;

        var screenWidth = $( window ).width();

        // check width to determine how to proceed

        if ( screenWidth > 767 ) {
        // if there ARE dropdowns present, quickly hide / show
            if ( numDown > 0 ) {
                $(".dropdown-nav").removeClass('down');

                // if THIS dropdown is down, animate w/ slide
                if (dd.css("display") === "block") {
                    $(".dropdown-nav").slideUp();

                // if ANOTHER dropdown is down, switch quickly
                } else {
                    $(".dropdown-nav").hide();
                }

                // display the clicked link
                if (!isDown) {
                    dd.addClass('down');
                    dd.show();
                }

            // if there are NO dropdowns present, animate w/ slide
            } else {

                $(".dropdown-nav").removeClass('down');

                // if THIS dropdown is down, animate w/ slide
                if (dd.css("display") === "block") {
                    $(".dropdown-nav").slideUp();

                // if ANOTHER dropdown is down, switch quickly
                } else {
                    $(".dropdown-nav").hide();
                }

                if (!isDown) {
                    dd.addClass('down');
                    dd.slideDown();
                    console.log($(".rest").css("top"));
                    $(".rest").animate({"top": "105px"});
                }
            }   

            var isActive = el.hasClass('activate');
            $(".navbar-link").removeClass('activate');

            $(".arrow-up").css("left", corrected_center);

            if (isActive) {
                $('.arrow-up').hide(400);
            } else {
                $('.arrow-up').show();
                el.addClass('activate');
            }

        // for small screens
        } else {
            // if there ARE dropdowns present, quickly hide / show
            if ( numDown > 0 ) {
                $(".dropdown-nav").removeClass('down');

                // if THIS dropdown is down, animate w/ slide
                if (dd.css("display") === "block") {
                    $(".dropdown-nav").slideUp();

                // if ANOTHER dropdown is down, switch quickly
                } else {
                    $(".dropdown-nav").slideUp();
                }

                // display the clicked link
                if (!isDown) {
                    dd.addClass('down');
                    dd.slideDown();
                }

            // if there are NO dropdowns present, animate w/ slide
            } else {

                $(".dropdown-nav").removeClass('down');

                // if THIS dropdown is down, animate w/ slide
                if (dd.css("display") === "block") {
                    $(".dropdown-nav").slideUp();

                // if ANOTHER dropdown is down, switch quickly
                } else {
                    $(".dropdown-nav").hide();
                }

                if (!isDown) {
                    dd.addClass('down');
                    dd.slideDown();
                }
            }
        }
    });
});

在CSS中使用媒体查询,而不是将代码放入函数中,并在DOM就绪和调整大小事件上运行它
$(document).ready(function () {

    $(".navbar-link").on("click", function() {
        var el = $(this);
        var dd = el.siblings();

        var loc = el.offset();
        var left = loc.left;
        var width = el.width();
        var center = left + (0.5 * width);
        var corrected_center = center - 5;

        var isDown = dd.hasClass('down');
        var numDown = $(document).find(".down").length;

        var screenWidth = $( window ).width();

        // check width to determine how to proceed

        if ( screenWidth > 767 ) {
        // if there ARE dropdowns present, quickly hide / show
            if ( numDown > 0 ) {
                $(".dropdown-nav").removeClass('down');

                // if THIS dropdown is down, animate w/ slide
                if (dd.css("display") === "block") {
                    $(".dropdown-nav").slideUp();

                // if ANOTHER dropdown is down, switch quickly
                } else {
                    $(".dropdown-nav").hide();
                }

                // display the clicked link
                if (!isDown) {
                    dd.addClass('down');
                    dd.show();
                }

            // if there are NO dropdowns present, animate w/ slide
            } else {

                $(".dropdown-nav").removeClass('down');

                // if THIS dropdown is down, animate w/ slide
                if (dd.css("display") === "block") {
                    $(".dropdown-nav").slideUp();

                // if ANOTHER dropdown is down, switch quickly
                } else {
                    $(".dropdown-nav").hide();
                }

                if (!isDown) {
                    dd.addClass('down');
                    dd.slideDown();
                    console.log($(".rest").css("top"));
                    $(".rest").animate({"top": "105px"});
                }
            }   

            var isActive = el.hasClass('activate');
            $(".navbar-link").removeClass('activate');

            $(".arrow-up").css("left", corrected_center);

            if (isActive) {
                $('.arrow-up').hide(400);
            } else {
                $('.arrow-up').show();
                el.addClass('activate');
            }

        // for small screens
        } else {
            // if there ARE dropdowns present, quickly hide / show
            if ( numDown > 0 ) {
                $(".dropdown-nav").removeClass('down');

                // if THIS dropdown is down, animate w/ slide
                if (dd.css("display") === "block") {
                    $(".dropdown-nav").slideUp();

                // if ANOTHER dropdown is down, switch quickly
                } else {
                    $(".dropdown-nav").slideUp();
                }

                // display the clicked link
                if (!isDown) {
                    dd.addClass('down');
                    dd.slideDown();
                }

            // if there are NO dropdowns present, animate w/ slide
            } else {

                $(".dropdown-nav").removeClass('down');

                // if THIS dropdown is down, animate w/ slide
                if (dd.css("display") === "block") {
                    $(".dropdown-nav").slideUp();

                // if ANOTHER dropdown is down, switch quickly
                } else {
                    $(".dropdown-nav").hide();
                }

                if (!isDown) {
                    dd.addClass('down');
                    dd.slideDown();
                }
            }
        }
    });
});