博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python自动华 (十五)
阅读量:5056 次
发布时间:2019-06-12

本文共 10873 字,大约阅读时间需要 36 分钟。

本节内容

  • CSS
  • javascript
  • dom 

 

CSS

position标签

  • fixed: 固定在页面的某个位置
  • relative + absolute: 相对定位

opacity:0.5 设置透明度

z-index:数值大的在上边

overflow: hidden 超过div的宽度后隐藏 auto 出现滚动条

hover: 当鼠标移动到当前标签上时才生效

background-image:url(‘1.jpg’)  #默认 div大,图片水平放置

background-repeat:no-repeat  #不重复堆叠 repeat-x:水平堆叠  repeat-y:垂直放

background-position-x:默认是0

background-position-y:默认是0

或者background-position:10px 10px

或者background里直接把所有参数值都写上,如下图:

 

 

  

JavaScript

JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理。

一、如何编写

1、JavaScript代码存在形式

1 
2 3 4
5
View Code

2、JavaScript代码存放位置

    • HTML的head中
    • HTML的body代码块底部(推荐)

由于Html代码是从上到下执行,如果Head中的js代码耗时严重,就会导致用户长时间无法看到页面,如果放置在body代码块底部,那么即使js代码耗时严重,也不会影响用户看到页面效果,只是js实现特效慢而已。

View Code

二、变量

JavaScript中变量的声明是一个非常容易出错的点,局部变量必须一个 var 开头,如果未使用var,则默认表示声明的是全局变量。

1 
View Code

JavaScript中代码注释:

    • 单行 //
    • 多行 /*  */

注意:此注释仅在Script块中生效。

三、数据类型

JavaScript 中的数据类型分为原始类型和对象类型:

    • 原始类型
      • 数字
      • 字符串
      • 布尔值
    • 对象类型
      • 数组
      • “字典”
      • ...

特别的,数字、布尔值、null、undefined、字符串是不可变。

// null、undefinednull是JavaScript语言的关键字,它表示一个特殊值,常用来描述“空值”。undefined是一个特殊值,表示变量未定义。
View Code

 

1、数字(Number)

JavaScript中不区分整数值和浮点数值,JavaScript中所有数字均用浮点数值表示。

转换:

    • parseInt(..)    将某值转换成数字,不成功则NaN
    • parseFloat(..) 将某值转换成浮点数,不成功则NaN

特殊值:

    •  NaN,非数字。可使用 isNaN(num) 来判断。
    • Infinity,无穷大。可使用 isFinite(num) 来判断。

更多数值计算:

常量Math.E常量e,自然对数的底数。Math.LN1010的自然对数。Math.LN22的自然对数。Math.LOG10E以10为底的e的对数。Math.LOG2E以2为底的e的对数。Math.PI常量figs/U03C0.gif。Math.SQRT1_22的平方根除以1。Math.SQRT22的平方根。静态函数Math.abs( )计算绝对值。Math.acos( )计算反余弦值。Math.asin( )计算反正弦值。Math.atan( )计算反正切值。Math.atan2( )计算从X轴到一个点的角度。Math.ceil( )对一个数上舍入。Math.cos( )计算余弦值。Math.exp( )计算e的指数。Math.floor( )对一个数下舍人。Math.log( )计算自然对数。Math.max( )返回两个数中较大的一个。Math.min( )返回两个数中较小的一个。Math.pow( )计算xy。Math.random( )计算一个随机数。Math.round( )舍入为最接近的整数。Math.sin( )计算正弦值。Math.sqrt( )计算平方根。Math.tan( )计算正切值。Math
View Code

 

2、字符串(String)

字符串是由字符组成的数组,但在JavaScript中字符串是不可变的:可以访问字符串任意位置的文本,但是JavaScript并未提供修改已知字符串内容的方法。

常见功能:

1 obj.length                           长度 2   3 obj.trim()                           移除空白 4 obj.trimLeft() 5 obj.trimRight) 6 obj.charAt(n)                        返回字符串中的第n个字符 7 obj.concat(value, ...)               拼接 8 obj.indexOf(substring,start)         子序列位置 9 obj.lastIndexOf(substring,start)     子序列位置10 obj.substring(from, to)              根据索引获取子序列11 obj.slice(start, end)                切片12 obj.toLowerCase()                    大写13 obj.toUpperCase()                    小写14 obj.split(delimiter, limit)          分割15 obj.search(regexp)                   从头开始匹配,返回匹配成功的第一个位置(g无效)16 obj.match(regexp)                    全局搜索,如果正则中有g表示找到全部,否则只找到第一个。17 obj.replace(regexp, replacement)     替换,正则中有g则替换所有,否则只替换第一个匹配项,18                                      $数字:匹配的第n个组内容;19                                      $&:当前匹配的内容;20                                      $`:位于匹配子串左侧的文本;21                                      $':位于匹配子串右侧的文本22                                      $$:直接量$符号
View Code

3、布尔类型(Boolean)

布尔类型仅包含真假,与Python不同的是其首字母小写。

    • ==      比较值相等
    • !=       不等于
    • ===   比较值和类型相等
    • !===  不等于
    • ||        或
    • &&      且

4、数组

JavaScript中的数组类似于Python中的列表

常见功能:

1 obj.length          数组的大小 2   3 obj.push(ele)       尾部追加元素 4 obj.pop()           尾部获取一个元素 5 obj.unshift(ele)    头部插入元素 6 obj.shift()         头部移除元素 7 obj.splice(start, deleteCount, value, ...)  插入、删除或替换数组的元素 8                     obj.splice(n,0,val) 指定位置插入元素 9                     obj.splice(n,1,val) 指定位置替换元素10                     obj.splice(n,1)     指定位置删除元素11 obj.slice( )        切片12 obj.reverse( )      反转13 obj.join(sep)       将数组元素连接起来以构建一个字符串14 obj.concat(val,..)  连接数组15 obj.sort( )         对数组元素进行排序
View Code

四、其他

1、序列化

    • JSON.stringify(obj)   序列化
    • JSON.parse(str)        反序列化

2、转义

    • decodeURI( )                   URl中未转义的字符
    • decodeURIComponent( )   URI组件中的未转义字符
    • encodeURI( )                   URI中的转义字符
    • encodeURIComponent( )   转义URI组件中的字符
    • escape( )                         对字符串转义
    • unescape( )                     给转义字符串解码
    • URIError                         由URl的编码和解码方法抛出

3、eval

JavaScript中的eval是Python中eval和exec的合集,既可以编译代码也可以获取返回值。

    • eval() 
    • EvalError   执行字符串中的JavaScript代码

4、正则表达式

1、定义正则表达式

    • /.../  用于定义正则表达式
    • /.../g 表示全局匹配
    • /.../i 表示不区分大小写
    • /.../m 表示多行匹配
      JS正则匹配时本身就是支持多行,此处多行匹配只是影响正则表达式^和$,m模式也会使用^$来匹配换行的内容)
1 var pattern = /^Java\w*/gm;2 var text = "JavaScript is more fun than \nJavaEE or JavaBeans!";3 result = pattern.exec(text)4 result = pattern.exec(text)5 result = pattern.exec(text)
View Code

注:定义正则表达式也可以  reg= new RegExp()

2、匹配

JavaScript中支持正则表达式,其主要提供了两个功能:

    • test(string)     检查字符串中是否和正则匹配
  
n = 'uui99sdf'reg = /\d+/reg.test(n)  ---> true # 只要正则在字符串中存在就匹配,如果想要开头和结尾匹配的话,就需要在正则前后加 ^和$
View Code
    • exec(string)    获取正则表达式匹配的内容,如果未匹配,值为null,否则,获取匹配成功的数组。 
  
获取正则表达式匹配的内容,如果未匹配,值为null,否则,获取匹配成功的数组。 非全局模式    获取匹配结果数组,注意:第一个元素是第一个匹配的结果,后面元素是正则子匹配(正则内容分组匹配)    var pattern = /\bJava\w*\b/;    var text = "JavaScript is more fun than Java or JavaBeans!";    result = pattern.exec(text)     var pattern = /\b(Java)\w*\b/;    var text = "JavaScript is more fun than Java or JavaBeans!";    result = pattern.exec(text) 全局模式    需要反复调用exec方法,来一个一个获取结果,直到匹配获取结果为null表示获取完毕    var pattern = /\bJava\w*\b/g;    var text = "JavaScript is more fun than Java or JavaBeans!";    result = pattern.exec(text)     var pattern = /\b(Java)\w*\b/g;    var text = "JavaScript is more fun than Java or JavaBeans!";    result = pattern.exec(text)
View Code

3、字符串中相关方法

  
obj.search(regexp)                   获取索引位置,搜索整个字符串,返回匹配成功的第一个位置(g模式无效)obj.match(regexp)                    获取匹配内容,搜索整个字符串,获取找到第一个匹配内容,如果正则是g模式找到全部obj.replace(regexp, replacement)     替换匹配替换,正则中有g则替换所有,否则只替换第一个匹配项,                                        $数字:匹配的第n个组内容;                                          $&:当前匹配的内容;                                          $`:位于匹配子串左侧的文本;                                          $':位于匹配子串右侧的文本                                          $$:直接量$符号
View Code

  

5、时间处理

JavaScript中提供了时间相关的操作,时间操作中分为两种时间:

    • 时间统一时间
    • 本地时间(东8区)

更多操作参见:http://www.shouce.ren/api/javascript/main.html

五、语句和异常

1、条件语句

JavaScript中支持两个中条件语句,分别是:if 和 switch

if(条件){     }else if(条件){             }else{     }
if
switch(name){        case '1':            age = 123;            break;        case '2':            age = 456;            break;        default :            age = 777;    }
switch

 

2、循环语句

JavaScript中支持三种循环语句,分别是:

var names = ["alex", "tony", "rain"]; for(var i=0;i
方式一
var names = ["alex", "tony", "rain"];for(var index in names){    console.log(index);    console.log(names[index]);}
方式二
方式三

3、异常处理

1 try { 2     //这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行 3 } 4 catch (e) { 5     // 如果try代码块中抛出了异常,catch代码块中的代码就会被执行。 6     //e是一个局部变量,用来指向Error对象或者其他抛出的对象 7 } 8 finally { 9      //无论try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。10 }
View Code

注:主动跑出异常 throw Error('xxxx')

六、函数

1、基本函数

JavaScript中函数基本上可以分为一下三类:

1 // 普通函数 2     function func(arg){ 3         return true; 4     } 5            6 // 匿名函数 7     var func = function(arg){ 8         return "tony"; 9     }10   11 // 自执行函数12     (function(arg){13         console.log(arg);14     })('123')
View Code

注意:对于JavaScript中函数参数,实际参数的个数可能小于形式参数的个数,函数内的特殊值arguments中封装了所有实际参数。

2、作用域

JavaScript中每个函数都有自己的作用域,当出现函数嵌套时,就出现了作用域链。当内层函数使用变量时,会根据作用域链从内到外一层层的循环,如果不存在,则异常。

切记:所有的作用域在创建函数且未执行时候就已经存在。

 
1 function f2(){ 2     var arg= 111; 3     function f3(){ 4         console.log(arg); 5     } 6       7     return f3; 8 } 9  10 ret = f2();11 ret();
View Code
 
View Code

注:声明提前,在JavaScript引擎“预编译”时进行。

更多:http://www.cnblogs.com/wupeiqi/p/5649402.html

 

3、闭包

闭包是指可以包含自由(未绑定到特定对象)变量的代码块。

「闭包」,是指拥有多个变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

闭包是个函数,而它「记住了周围发生了什么」。表现为由「一个函数」体中定义了「另个函数」

由于作用域链只能从内向外找,默认外部无法获取函数内部变量。闭包,在外部获取函数内部的变量。

1 function f2(){ 2     var arg= [11,22]; 3     function f3(){ 4         return arg; 5     } 6     return f3; 7 } 8   9 ret = f2();10 ret();
View Code

4、面向对象

1 function Foo (name,age) { 2     this.Name = name; 3     this.Age = age; 4     this.Func = function(arg){ 5         return this.Name + arg; 6     } 7 } 8    9 var obj = new Foo('alex', 18);10 var ret = obj.Func("sb");11 console.log(ret);
View Code

对于上述代码需要注意:

    • Foo充当的构造函数
    • this代指对象
    • 创建对象时需要使用 new

上述代码中每个对象中均保存了一个相同的Func函数,从而浪费内存。使用原型和可以解决该问题:

1 function Foo (name,age) { 2     this.Name = name; 3     this.Age = age; 4 } 5 Foo.prototype = { 6     GetInfo: function(){ 7         return this.Name + this.Age 8     }, 9     Func : function(arg){10         return this.Name + arg;11     }
View Code

 

DOM

文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。我们最为关心的是,DOM把网页和脚本以及其他的编程语言联系了起来。DOM属于浏览器,而不是JavaScript语言规范里的规定的核心内容。

一、查找元素

1、直接查找

document.getElementById             根据ID获取一个标签document.getElementsByName          根据name属性获取标签集合document.getElementsByClassName     根据class属性获取标签集合document.getElementsByTagName       根据标签名获取标签集合
View Code

2、间接查找

parentNode          // 父节点childNodes          // 所有子节点firstChild          // 第一个子节点lastChild           // 最后一个子节点nextSibling         // 下一个兄弟节点previousSibling     // 上一个兄弟节点 parentElement           // 父节点标签元素children                // 所有子标签firstElementChild       // 第一个子标签元素lastElementChild        // 最后一个子标签元素nextElementtSibling     // 下一个兄弟标签元素previousElementSibling  // 上一个兄弟标签元素
View Code

二、操作

1、内容

innerText   文本outerTextinnerHTML   HTML内容innerHTML  value       值
View Code

2、属性

attributes                // 获取所有标签属性setAttribute(key,value)   // 设置标签属性getAttribute(key)         // 获取指定标签属性 /*var atr = document.createAttribute("class");atr.nodeValue="democlass";document.getElementById('n1').setAttributeNode(atr);*/
View Code
1  2  3  4     
5 6 7 8 9 10 11 12
13
14 15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
111 222
111 222
111 222
111 222
39 83 84
View Code

3、class操作

className                // 获取所有类名classList.remove(cls)    // 删除指定类classList.add(cls)       // 添加类
View Code

4、标签操作

a.创建标签

// 方式一var tag = document.createElement('a')tag.innerText = "wupeiqi"tag.className = "c1"tag.href = "http://www.cnblogs.com/wupeiqi" // 方式二var tag = "wupeiqi"
View Code

b.操作标签

// 方式一var obj = "";xxx.insertAdjacentHTML("beforeEnd",obj);xxx.insertAdjacentElement('afterBegin',document.createElement('p')) //注意:第一个参数只能是'beforeBegin'、 'afterBegin'、 'beforeEnd'、 'afterEnd' // 方式二var tag = document.createElement('a')xxx.appendChild(tag)xxx.insertBefore(tag,xxx[1])
View Code

 

实例:

            
搜索框
跑马灯

转载于:https://www.cnblogs.com/honey01/p/7201636.html

你可能感兴趣的文章
JS 浏览器对象
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
虚拟中没有eth0
查看>>
Unity 3D游戏开发学习路线(方法篇)
查看>>
BZOJ2049[Sdoi2008]Cave 洞穴勘测(LCT模板)
查看>>
vuex插件
查看>>
2011年12月09日
查看>>
[ZJOI2007]棋盘制作 【最大同色矩形】
查看>>
合并单元格
查看>>
swift-初探webView与JS交互
查看>>
IOS-图片操作集合
查看>>
Android bitmap图片处理
查看>>
Android应用程序进程启动过程的源代码分析
查看>>
adb logcat 命令行用法
查看>>
Redis学习手册(Key操作命令)
查看>>
模板统计LA 4670 Dominating Patterns
查看>>
泛型第23条:请不要在新代码中使用原生态类型
查看>>
非对称加密
查看>>
bzoj 3413: 匹配
查看>>