zoukankan      html  css  js  c++  java
  • css nth-child 的应用

    最近改视频监控页面,由于窗口比较多,以前是通过计算窗口大小位置来处理页面布局的,其实还是比较麻烦,而且偶尔会有页面位置错乱的现象,虽然只是及其偶尔的现象,但总归是不好。

    计算窗口位置的代码:

    /*监控窗口高度自动*/
        web.gridHeight = function (num) {
            var floorX = function(a, b){
                var x = a / b;
                x = Math.floor(x);
                return x;
            };
            
            var a = $('#camera-wrap');
            var b = num;
            var c = $('#camera-wrap').height();
            var wi = $('#camera-wrap').width();
            
            var index = a.find('.camera-item.active').data('index');
            if (index > b) {
                a.find('.camera-item:first').click();
            }
            
            $.each(a.find('.camera-item'), function (i) {
                var t = $(this);
                if (i < b) {
                    t.hasClass("hidden") && t.removeClass("hidden");
                } else {
                    t.hasClass("hidden") || t.addClass("hidden");
                }
            });
            
            var d = a.find('.camera-item:visible');
            
            var borderWi = 4;
            if (b == '4') {
                var bhe = floorX(c, 2);
                var bwi = floorX(wi, 2);
                
                d.height(bhe - 30 - borderWi);
                d.width(bwi - borderWi);
            }
            if (b == '6') {
                var bhe = floorX(c, 3);
                var bwi = floorX(wi, 3);
                
                a.find('.camera-item:first').height(bhe * 2 - 30 - borderWi - 1);
                a.find('.camera-item:first').width(bwi * 2 - borderWi);
                
                a.find('.camera-item:visible:not(:first)').height(bhe - 30 - borderWi);
                a.find('.camera-item:visible:not(:first)').width(bwi - borderWi);
            }
            if (b == '8') {
                var bhe = floorX(c, 4);
                var bwi = floorX(wi, 4);
                
                a.find('.camera-item:first').height(bhe * 3 - 30 - borderWi - 1);
                a.find('.camera-item:first').width(bwi * 3 - borderWi);
                
                a.find('.camera-item:visible:not(:first)').height(bhe - 30 - borderWi);
                a.find('.camera-item:visible:not(:first)').width(bwi - borderWi);
            }
            if (b == '16') {
                var bhe = floorX(c, 4);
                var bwi = floorX(wi, 4);
                
                d.height(bhe - 30 - borderWi);
                d.width(bwi - borderWi);
            }
            if (b == '32') {
                var bhe = floorX(c, 4);
                var bwi = floorX(wi, 8);
                
                d.height(bhe - 30 - borderWi);
                d.width(bwi - borderWi);
            }
        };
    /*监控窗口全屏或还原*/
        web.cameraFull = function (elem) {
            var t = elem;
            if (t.hasClass('fix')) {
                t.removeClass('fix').attr('style', '').height(web.position.cameraH).width(web.position.cameraW);
            } else {
                web.position.cameraX = t.position().left;
                web.position.cameraY = t.position().top;
                web.position.cameraW = t.width();
                web.position.cameraH = t.height();
                t.addClass('fix').css({
                    'top': '5px',
                    'left': '5px',
                    'right': '0',
                    'bottom': '0',
                    'height': $('.container-center').height() - 5,
                    'width':$('.container-center').width()
                });
            }
        };
        
        web.position = {
            cameraX: '0',
            cameraY: '0',
            cameraW: '0',
            cameraH: '0',
            gridsL: '0',
            gridsR: '0'
        };

    效果

    现在改页面样式,顺带改下实现布局的方案,改用css控制窗口的显示不显示,以及窗口显示的大小和位置

    .realtime-page .content .center .videos .wind {
        position: relative;
        display: inline-block;
         50%;
        height: 50%;
        padding: 0 0.13rem 0.25rem 0.13rem;
        box-sizing: border-box; 
    }
    .realtime-page .content .center .videos.six .wind {
        position: relative;
        display: inline-block;
         33%;
        height: 33%;
        padding: 0 0.13rem 0.13rem 0.13rem;
        box-sizing: border-box; 
    }
    .realtime-page .content .center .videos.six .wind:nth-child(1) {
         66%;
        height: 66%; 
    }
    .realtime-page .content .center .videos.six .wind:nth-child(2) {
        position: absolute;
        top: 0;
        left: 66%; 
    }
    .realtime-page .content .center .videos.eight .wind {
        position: relative;
        display: inline-block;
         25%;
        height: 25%;
        padding: 0 0.13rem 0.13rem 0.13rem;
        box-sizing: border-box; 
    }
    .realtime-page .content .center .videos.eight .wind:nth-child(1) {
         75%;
        height: 75%; 
    }
    .realtime-page .content .center .videos.eight .wind:nth-child(2) {
        position: absolute;
        top: 0;
        left: 75%; 
    }
    .realtime-page .content .center .videos.eight .wind:nth-child(3) {
        position: absolute;
        top: 25%;
        left: 75%; 
    }
    .realtime-page .content .center .videos.sixteen .wind {
        position: relative;
        display: inline-block;
         25%;
        height: 25%;
        box-sizing: border-box;
        padding: 0 0.13rem 0.13rem 0.13rem; 
    }
    .realtime-page .content .center .videos.thirty-two .wind {
        position: relative;
        display: inline-block;
         12.5%;
        height: 25%;
        box-sizing: border-box;
        padding: 0 0.13rem 0.13rem 0.13rem; 
    }
    .realtime-page .content .center .videos.four .wind:nth-child(1n+5) {
        display: none;
    }
    .realtime-page .content .center .videos.six .wind:nth-child(1n+7) {
        display: none;
    }
    .realtime-page .content .center .videos.eight .wind:nth-child(1n+9) {
        display: none;
    }
    .realtime-page .content .center .videos.sixteen .wind:nth-child(1n+17) {
        display: none;
    }

    这样一来逻辑上的控制就少了,让样式归样式,控制归控制,整体结构清晰了很多,而且css控制的样式没有出现过页面错乱的情况,完美。

     

  • 相关阅读:
    JSP_内置对象_out
    POJ_2186_Popular Cows_强连通分量
    POJ_2411_Mondriaan's Dream_状态压缩dp
    POJ_2115_扩展欧几里德
    HDU_5690_快速幂,同余的性质
    POJ_1061_扩展欧几里德
    HDU_5833_高斯消元
    Delphi 使用 Datasnap 的几种三层应用技术总结
    BIM 开发商 --广州
    Cola Cloud 基于 Spring Boot, Spring Cloud 构建微服务架构企业级开发平台
  • 原文地址:https://www.cnblogs.com/LcxSummer/p/10169410.html
Copyright © 2011-2022 走看看