首页 > Web开发 > 详细

改变某个对象的CSS样式时,不要使用JS直接添加样式,

时间:2019-08-21 21:04:50      阅读:104      评论:0      收藏:0      [点我收藏+]

重绘:
使用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‘
        })

  

 

改变某个对象的CSS样式时,不要使用JS直接添加样式,

原文:https://www.cnblogs.com/Knowledge-is-infinite/p/11390763.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!