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'
            })
    

      

  • 相关阅读:
    hdu 1540 Tunnel Warfare 线段树 单点更新,查询区间长度,区间合并
    bzoj 1798: [Ahoi2009]Seq 维护序列seq 线段树 区间乘法区间加法 区间求和
    codevs 1191 树轴染色 线段树区间定值,求和
    vijos 1659 河蟹王国 线段树区间加、区间查询最大值
    tyvj:1038 忠诚 线段树 区间查询
    KL散度
    NumPy 从已有的数组创建数组
    NumPy 创建数组
    NumPy 数组属性
    NumPy 数据类型
  • 原文地址:https://www.cnblogs.com/Knowledge-is-infinite/p/11390763.html
Copyright © 2011-2022 走看看