改变某个对象的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'
        })
改变某个对象的CSS样式时,不要使用JS直接添加样式,的更多相关文章
- css为第几个倍数元素添加样式
		//3n就是3的倍数都加这个样式*/.list li:nth-child(3n){ border-bottom:1px;} 
- JS:操作样式表2 :用JS实现添加和删除一个类名的功能(addClass()和removeClass())
		var box = document.getElementById("box"); box.id = "pox"; 将id = “box”,改为id = “po ... 
- [转]用CSS给SVG <use>的内容添加样式
		来源:http://www.w3cplus.com/svg/styling-svg-use-content-css.html?utm_source=tuicool&utm_medium=ref ... 
- JQuery为元素添加样式
		由于jquery支持css3,所有能很好的兼容很多浏览器,所以通过jquery来使用css样式比较好 为定义好的css样式可以调用元素的css方法添加样式 $("span").cs ... 
- JQuery为元素添加样式的实现方法
		由于jquery支持css3,所有能很好的兼容很多浏览器,所以通过jquery来使用css样式比较好 为定义好的css样式可以调用元素的css方法添加样式 $("span").cs ... 
- 使用 jQuery 选择器获取页面元素,然后利用 jQuery 对象的 css() 方法设置其 display 样式属性,从而实现显示和隐藏效果。
		查看本章节 查看作业目录 需求说明: 使用 jQuery 选择器获取页面元素,然后利用 jQuery 对象的 css() 方法设置其 display 样式属性,从而实现显示和隐藏效果. 具体要求如下: ... 
- 使用 jQuery 选择器获取页面元素后,利用 jQuery 对象的 css() 方法设置其样式。
		查看本章节 查看作业目录 需求说明: 使用 jQuery 选择器获取页面元素后,利用 jQuery 对象的 css() 方法设置其样式. 要求如下: 点击页面的"更改样式"按钮后, ... 
- 使用 jQuery 基本选择器获取页面元素,然后利用 jQuery 对象的 css() 方法动态设置 <span> 和 <a> 标签的样式
		查看本章节 查看作业目录 需求说明: 使用 jQuery 基本选择器获取页面元素,然后利用 jQuery 对象的 css() 方法动态设置 <span> 和 <a> 标签的样式 ... 
- jacascript CSS样式的脚本化(js)操作
		前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 引入CSS有3种方式:行间样式,内联样式和外部链接样式. 在实际工作中,我们使用 javascript 操 ... 
随机推荐
- 《Mysql - 为什么只查一行的数据,也这么慢?》
			概念 - 在某些情况下,“查一行”,也会执行得特别慢. - 下面分析在什么情况下,会出现这个现象. - 基础工作(构建数据库环境) - 建立 t 表,并写入 10W 的数据. CREATE TABLE ... 
- QT 创建一个线程播放监控视频
			1.创建一个线程类(PlayVideoThread): PlayVideoThread.h头文件 #pragma once #include <QObject> #include &quo ... 
- QT加载自带字体
			#include <QCoreApplication> #include <QStringList> #include <QFontDatabase> #inclu ... 
- CSS样式三种形式
			CSS基本表现形式只有三种:标签样式.Class类样式.ID样式 标签样式: 必须与HTML标签同名.仅仅影响同名标签 Class样式:可以在任何标签中使用: class="样式名" ... 
- Python 重点知识整理(基于Python学习手册第四版)
			字节型编译 如果Python在系统中有写的权限,当程序运行时Python会把源码编译成字节码(与系统环境无关)存在一个.pyc扩展名文件中,如果没有修改源码而重新运行程序时,不会进行编译的步骤而使用字 ... 
- HCIA SWITCHING&ROUTTING 笔记——第一章 TCP/IP基础知识(3)
			4 ICMP协议 4.1 概念 ICMP即 Internet Contorl Message Protocol,即Internet控制消息协议,是网络层的一个重要协议.ICMP协议用来在网络设备间传递 ... 
- Spring依赖配置详解
			<properties> <junit.version>4.12</junit.version> <spring.version>4.3.9.RELEA ... 
- Xshell 上传文件到Ubuntu
			打开Xshell,连上一台Linux服务器或者是虚拟机 如果要方便的上传文件,需要rz 先测试是否安装rz 命令行~$ rz 如果出现未安装(或者command not found)且建议sudo a ... 
- sysfs和kobject
			sysfs文件系统: sysfs是2.6内核的一个特性,它允许内核代码经由一个in-memory的文件系统把信息出报(export)到用户进程中. 在设备模型中,sysfs文件系统用来表示设备的结构. ... 
- java引用传递和值传递
			关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题,有论坛说Java中只有值传递,也有些地方说引用传递和值传递都存在,比较容易让人迷惑.关于值传递和引用传递其实需要分情况看待,今天学习 ... 
