zoukankan      html  css  js  c++  java
  • 改变某个对象的CSS样式时,不要使用JS直接添加样式,

    重绘:
    使用js改变网页的背景颜色 浏览器会把整个网页的颜色重新在画一遍,导致性能降低

    回流:
    只要改变某个DOM对象的宽或者高,浏览器就会重新再计算网页结构,重新生成一次,导致性能严重降低。

    CSS样式的性能比JS性能更高,所以能使用CSS的就不要使用JS控制。

    修改样式有三种方式:

    1,直接在CSS中修改样式,比如hover:

    .dropdown-active 是父元素
    .dropdown-active,
    .dropdown-active:hover {
    	background: #fff;
    }
    .dropdown-active .dropdown-toggle,
    .dropdown-active:hover .dropdown-toggle {
    	border-left: 1px solid #cdd0d4;
    	border-right: 1px solid #cdd0d4;
    }
    .dropdown-active .dropdown-layer,
    .dropdown-active:hover .dropdown-layer {
    	display: block;
    }
    

    2,使用JS添加一个类名  .dropdown-active

        $('.dropdown').hover(function() {
            $(this).addClass('dropdown-active');
        }, function() {
            $(this).removeClass('dropdown-active');
        });
    

    3,性能最差,而且还复杂的一种,直接在JS中控制样式:

        $('.dropdown').hover(function() {
            var $this = $(this);
            $this.css({
                background: '#fff'
            });
    
            $this.find('.dropdown-toggle').css({
                background:'#fff',
                'border-left':'1px solid #cdd0d4',
                'border-right':'1px solid #cdd0d4'
            })
    
            $this.find('.dropdown-layer').css({
                display:'block'
            })
    
            $this.find('.dropdown-item').hover(function(){
                $(this).css({
                    'background':'#f3f5f7',
                    color:'#4d555d'
                });
            },function(){
                $(this).css('background','#fff');
            })
        }, function() {
            var $this = $(this);
            $this.css({
                background: '#f3f5f7'
            });
    
            $this.find('.dropdown-toggle').css({
                background:'#f3f5f7',
                'border-left':'1px solid #f3f5f7',
                'border-right':'1px solid #f3f5f7'
            })
    
            $this.find('.dropdown-layer').css({
                display:'none'
            })
    

      

  • 相关阅读:
    Linux 服务器连接远程数据库(Mysql、Pgsql)
    oracle主键自增
    全排列算法实现
    python动态导入包
    python发红包实现
    CentOS 6.8安装Oracle 11 g 解决xhost: unable to open display
    xargs的一个小坑
    利用ssh-copy-id复制公钥到多台服务器
    redhat 5 更换yum源
    【原创】Hadoop的IO模型(数据序列化,文件压缩)
  • 原文地址:https://www.cnblogs.com/Knowledge-is-infinite/p/11390763.html
Copyright © 2011-2022 走看看