js基础第一天
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基础第一天的更多相关文章
- [妙味JS基础]第一课:属性操作、图片切换、短信发送模拟
知识点总结 HTML的属性操作:读.写 元素.属性名 => “读” 元素.属性名=新的值 => “写” 例如: oBtn.value => “读” oBtn.value='按钮' = ...
- js 基础篇(点击事件轮播图的实现)
轮播图在以后的应用中还是比较常见的,不需要多少行代码就能实现.但是在只掌握了js基础知识的情况下,怎么来用较少的而且逻辑又简单的方法来实现呢?下面来分析下几种不同的做法: 1.利用位移的方法来实现 首 ...
- js 基础
js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避 ...
- Node.js基础与实战
Node.js基础与实战 Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP& ...
- JS基础知识总结
js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划() ...
- js基础篇——call/apply、arguments、undefined/null
a.call和apply方法详解 call方法: 语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象 ...
- js基础知识总结(2016.11.1)
js基础知识点总结 如何在一个网站或者一个页面,去书写你的js代码:1.js的分层(功能):jquery(tool) 组件(ui) 应用(app),mvc(backboneJs)2.js的规划():避 ...
- Web3D编程入门总结——WebGL与Three.js基础介绍
/*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...
- 前端架构之路:使用Vue.js开始第一个项目
Vue.js做为目前前端最热门的库之一,为快速构建并开发前端项目多了一种思维模式.本文通过一个简单的实例开始上手Vue.js开发. 一.技术准备 笔者建议在开始项目前,对以下两个技术点进行了解. ...
随机推荐
- C#中Thread.sleep()
我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间.那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:1.假设现在是 2008-4-7 12:00:00.000,如果我调 ...
- JPA2 关于 PagingAndSortingRepository
And --- 等价于 SQL 中的 and 关键字,比如 findByUsernameAndPassword(String user, Striang pwd): Or --- 等价于 SQL 中的 ...
- 1027: [JSOI2007]合金 - BZOJ
Description 某公司加工一种由铁.铝.锡组成的合金.他们的工作很简单.首先进口一些铁铝锡合金原材料,不同种类的原材料中铁铝锡的比重不同.然后,将每种原材料取出一定量,经过融解.混合,得到新的 ...
- PAT-乙级-1019. 数字黑洞 (20)
1019. 数字黑洞 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定任一个各位数字不完全相同的4位 ...
- 服务器程序源代码分析之三:gunicorn
服务器程序源代码分析之三:gunicorn 时间:2014-05-09 11:33:54 类别:网站架构 访问: 641 次 gunicorn是一个python web 服务部署工具,类似flup,完 ...
- c++ 成员指针函数 实现委托----跨平台实现(复杂)
牛逼: c++ 牵涉到的技术细节太多了,为了实现一个委托,他妈都搞到汇编里面去了... 总结 为了解释一小段代码,我就得为这个语言中具有争议的一部分写这么一篇长长的指南.为了两行汇编代码,就要做如此麻 ...
- Trainning Guide, Data Structures, Example
最近在复习数据结构,发现这套题不错,题目质量好,覆盖广,Data Structures部分包括Example,以及简单,中等,难三个部分,这几天把Example的做完了, 摘要如下: 通过这几题让我复 ...
- Android性能优化之如何避免Overdraw
什么是Overdraw? Overdraw就是过度绘制,是指在一帧的时间内(16.67ms)像素被绘制了多次,理论上一个像素每次只绘制一次是最优的,但是由于重叠的布局导致一些像素会被多次绘制,而每次绘 ...
- C# 调用WebService的方法
很少用C#动态的去调用Web Service,一般都是通过添加引用的方式,这样的话是自动成了代理,那么动态代理调用就是我们通过代码去调用这个WSDL,然后自己去生成客户端代理.更多的内容可以看下面的两 ...
- ArcGIS Engine 几何对象和WKB的转换
using System; using System.Collections.Generic; using System.Text; using GisSharpBlog.NetTopologySui ...