js作用:网页特效(电梯导航)、交互、表单特效。就是可以用来控制结构和样式。

常用的三个输出语句都属于js的内置对象,提供我们直接使用的功能就是内置对象功能。

web三标准:结构、样式、行为。而js主要控制结构和样式。

<script></script>

alert()弹出警示框(用的少,用户体验差)

window.alert(“执行语句”);也可以直接alert(“执行语句”);

console控制台输出(用户看不见)

正常输出console.log(“你好”);

警告输出console.warn(“注意”);

错误提示console.error(“这里错了”);

document.write()文档打印输出(直接在文档中显示,常用)

document.write(“今天下雪了”);

如何用js控制结构和样式?

首先要获取id,给一个id然后获取元素,获取方式:

var demo_huoqu=getElementById(“demo”);

意思是获取id为demo的元素放在demo_huoqu这个变量里。

然后更改样式:

document.getElementById(“demo”).style.backgroundColor=”red”;

意思是更改原样式中的颜色为红色。

js中样式的写法与CSS不一样

CSS:backgrount-color

js:backgroundColor(没有-,同时第二个单词首字母大写)

变量命名

变量名必须以字母或是下标符号_或者$开头;长度不能超过255字符;不允许使用空格;不使用脚本语言中保留的关键字及保留符号作为变量名;变量名严格区分大小写。

全局变量和局部变量

全局变量:外部设置变量、隐式的全局变量(在函数体内部但是没有声明var的也是全局变量)

result为全局变量,num也为全局变量。

局部变量:内部设置var变量

题:

输出为10,因为函数没有调用,没有fun()调用,所以为10

输出为global。a=”global”为全局变量,但是是局部调用的,所以局部执行,执行输出为global。

事件三要素(事件源+事件=事件处理程序)

事件源.事件= function(){ 事件处理函数 }

事件源 事件 事件处理函数

被触发者 怎么触发这个事情 发生了什么事

先获取盒子和按钮的id,然后当按钮被按时发生了盒子的样式宽度改变。

鼠标事件

事件名

说明

onclick

鼠标单击

ondblclick

鼠标双击

onkeyup

按下并释放键盘上的一个键时触发

onchange

文本内容或下拉菜单中的选项发生改变

onfocus

获得焦点,表示文本框等获得鼠标光标。

onblur

失去焦点,表示文本框等失去鼠标光标。

onmouseover

鼠标悬停,即鼠标停留在图片等的上方

onmouseout

鼠标移出,即离开图片等所在的区域

onload

网页文档加载事件

onunload

关闭网页时

onsubmit

表单提交事件

onreset

重置表单时

隐藏样式

display:none;隐藏(隐藏不占位置,使用后下面的会上浮)

display:block;显示,因为变为块级元素所以肯定会显示。

visibility:hidden;隐藏(隐藏但占位置,上面的位置存在,下面不会顶上来)

visibility:visible;显示

overflow:hidden;隐藏超出的部分

入口函数

window.onload=function() {

内部放js

}

这个函数的意思就是说,当我们页面结构样式加载完毕之后,才去执行函数体里面的js部分。所以这句话可以放到页面的顶端。同时一个页面只能写一次。

js的书写位置

行内式

<button onclick="alert('你好吗')">点击我</button>

<a href=”javascript:;”></a>

<a href=”javascript:void(0);”></a>

当点击的时候,js执行一个空的函数,如果换成#,那么就会跳转。

内嵌式

写在页面中任何地方都可以<script type=”text/javascript”></script>

外连式

在head中写<script type=”text/javascript” src=”xx.js” ></script>

这对标签之中不可以写任何东西

用js更换背景图片的方法

body {
     background: url(images/2.jpg) top center;
}

window.onload=function() {

var _li1=document.getElementById("li1");

var _li2=document.getElementById("li2");

var _li3=document.getElementById("li3");

var _bd=document.getElementById("bd");

_li1.onclick=function() {

_bd.style.backgroundImage="url(images/3.jpg)";

}

_li2.onclick=function() {

_bd.style.backgroundImage="url(images/4.jpg)";

}

_li3.onclick=function() {

_bd.style.backgroundImage="url(images/5.jpg)";

}

}

首先为什么要用backgroundImage 而不用background呢?其实也可以,但是前面的只换图片不换样式,如果想用后面的,还得再加上样式to center。其次还需要加url以及后面的内容才行,不能够直接images/5.jpg直接放上去,这种方法是直接引入图片,而现在则是在样式中的图片,所以要写全。

模态框

CSS样式部分

<div di="mask">
</div>
<div di="box">
     <span>×</span>
</div>
#mask {/*模态框*/
     height: 100%;
     width: 100%;
     position: fixed;/*需要用固定定位,将模态框固定在屏幕永远不动*/
     background: rgba(0,0,0,.5);/*设置透明度*/
     z-index: 999; /*设置时要比前面的框低一级一般设为999*/
     display: none;
}
#box {/*弹出的表单框*/
     width: 400px;
     height: 250px;
     background-color: #fff;
     position: fixed;/*框固定到屏幕永远不动*/
     top: 50%;/*框上面的线到屏幕竖直居中的位置*/
     left: 50%;/*框左边的线到屏幕水平居中的位置,也就是正中央*/
     margin: -125px 0 0 -200px;/*由于以上面和左边的线为准,所以框会偏下右各一半,所以需要设置框margin的上为负高一半,左为负宽一半,最后正好居中央。*/
     z-index: 1000;/*设置层级比模态框高一级*/
     display: none;
}
#box span {
     position: absolute;
     top: 10px;
     right: 10px;
     width: 15px;
     height: 15px;
     font-size: 15px;
     cursor: pointer;
}

js特效部分

login是您好请登录的a标签,mask是模态框,box是中间的白色表单,close_box是关闭框

<script type="text/javascript">
     window.onload=function() {
         var login=document.getElementById("login");
         var mask=document.getElementById("mask");
         var box=document.getElementById("box");
         var close_box=document.getElementById("close_box")
         login.onclick=function() {
             mask.style.display="block";
             box.style.display="block";
         }
         close_box.onclick=function() {
             mask.style.display="none";
             box.style.display="none";
         }
     }
</script>

padding问题

给一个盒子长宽高颜色,如果给padding肯定会撑开盒子。而在这个盒子中包含一个小盒子,小盒子只设高,宽会继承父亲的宽。就算是加了padding-left值也不会撑开自己,因为自己没有设宽度值。当给小盒子设了宽度值例如width为50px或者为100%,那么再给padding-left时就会撑开自己比父盒子宽。同理因为给了高的值,所以如果加padding-top值是也会撑开自己比父盒子高。

数据类型

字符型string、数值型number、布尔型boolean、null、undefind(未定义)

输出类型方法,例如

var txt=”欢迎光临”;

console.log(typeof txt);

结果为string

转换为字符型:加双引号、String(); 转换字符S一定要用大写。字符型的可以减可以乘可以除。

布尔型:true和false。转换布尔型:!!、Boolean();

false、undefined、null、0、””等为false

“somestring”/[bobject]为true

转换数值型:减- 乘* 除/ 都可以转换,除了加+。利用Number();转换。

八进制:数值的前面带0代表八进制。

var num=020;

结果是16,八进制转为十进制。

算法0*80+2*81=16

十六进制:数值的前面带0x代表十六进制。

var num=0xb;

结果11

取整

parseInt

parseInt(值,进制);

parseInt(19.99); 是19

parselnt(“25px”); 是25

parselnt(“px25px”); 是NaN

parseInt(“10”,2); 10的2进制。意思是把10这个2进制转换为10进制。0*20+1*21=2

parseInt(“110”,2) 0*20+1*21+1*22=6

转为整数:var num=parseInt(“str”)

读取字符串中的整数部分

从第一个字符向后读。

如果碰到第一个数字字符,开始获取数字,再次碰到不是数字的字符(包括小数点),停止读取。

如果开头碰到空格,忽略。

如果碰到的第一个非空格字符,不是数字说明不能转→NaN,NaN的意思是Not a Number。什么是NaN:不是数字(内容)的数字(类型)

转为浮点数:var num=parseFloat(“str”)

读取字符串中浮点数部分。

用法和parseInt完全相同

唯一差别:parseFloat认识小数点,仅认第一个。而且parseFloat如果能转成整数,就不会转为浮点数,例如25.0,那么就会转为25,.25转为0.25

js基础第一天的更多相关文章

  1. [妙味JS基础]第一课:属性操作、图片切换、短信发送模拟

    知识点总结 HTML的属性操作:读.写 元素.属性名 => “读” 元素.属性名=新的值 => “写” 例如: oBtn.value => “读” oBtn.value='按钮' = ...

  2. js 基础篇(点击事件轮播图的实现)

    轮播图在以后的应用中还是比较常见的,不需要多少行代码就能实现.但是在只掌握了js基础知识的情况下,怎么来用较少的而且逻辑又简单的方法来实现呢?下面来分析下几种不同的做法: 1.利用位移的方法来实现 首 ...

  3. js 基础

    js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避 ...

  4. Node.js基础与实战

    Node.js基础与实战 Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP& ...

  5. JS基础知识总结

      js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划() ...

  6. js基础篇——call/apply、arguments、undefined/null

    a.call和apply方法详解 call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象 ...

  7. js基础知识总结(2016.11.1)

    js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避 ...

  8. Web3D编程入门总结——WebGL与Three.js基础介绍

    /*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...

  9. 前端架构之路:使用Vue.js开始第一个项目

    Vue.js做为目前前端最热门的库之一,为快速构建并开发前端项目多了一种思维模式.本文通过一个简单的实例开始上手Vue.js开发.   一.技术准备 笔者建议在开始项目前,对以下两个技术点进行了解. ...

随机推荐

  1. linux下nginx的安装

    一.安装nginx     1.在nginx官方网站下载一个包,下载地址是:http://nginx.org/en/download.html     2.WinSCP(ftp上传工具).exe FT ...

  2. Aimp3的播放列表 按评分排序 落雨

    如图,添加评分选项,并保存,就可以在下图的选项里找到此选项,并按评分排序 效果图如下:还可以倒置,迅速使评分高的音乐排在播放列表的前面位置!! 转自百度知道: http://zhidao.baidu. ...

  3. SQLite数据库简介(转)

    大家好,今天来介绍一下SQLite的相关知识,并结合Java实现对SQLite数据库的操作. SQLite是D.Richard Hipp用C语言编写的开源嵌入式数据库引擎.它支持大多数的SQL92标准 ...

  4. 其实,前面倒腾那么多,只是为了想玩SPRING BOOT

    嘿嘿,,曲线达到.. 看来看来很多国内的速成,都不爽. 官方教程最体贴~~~:) http://docs.spring.io/spring-boot/docs/current/reference/ht ...

  5. PYTHON设计模式,创建型之工厂方法模式

    我感觉和上一个差不多,可能不要动最要的地方吧... #!/usr/bin/evn python #coding:utf8 class Pizza(object): def prepare(self, ...

  6. Google Play市场考察报告-2

    接上文,本次继续考察App. (6)CNBETA win8平板客户端 cnBeta是国内少有的科技类资讯网站,在程序员群体中具有很大影响力.面向程序员的软件应用在APP中一向属于少数,然而程序员群体已 ...

  7. UIALertView的基本用法与UIAlertViewDelegate对对话框的事件处理方法

    首先,视图控制器必须得实现协议UIAlertViewDelegate中的方法,并指定delegate为self,才能使弹出的Alert窗口响应点击事件. 具体代码如下: ViewController. ...

  8. 吐槽C++

    个人感觉,在c++ 道路的学习路上,遇到很多的坎坷,现在回想起来,最关键一点就是 c++知识点繁杂很多,教科书很多知识点都没有提到. 但是在实际工作中,这些没有提到的知识点,却又经常会用到(或者看开源 ...

  9. python脚本实例002- 利用requests库实现应用登录

    #! /usr/bin/python # coding:utf-8 #导入requests库 import requests #获取会话 s = requests.session() #创建登录数据 ...

  10. WinAPI——SetWindowsHookEx设置钩子说明

    提示: 如果要设置系统级钩子, 钩子函数必须在 DLL 中. SetWindowsHookEx(   idHook: Integer;  {钩子类型}   lpfn: TFNHookProc; {函数 ...