js基础语法
变量和数据
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js基础</title>
<link href="Mycss.css" type="text/css" rel="stylesheet">
</head>
<body>
<script>
var i=10;
var j=10;
var m=i+j;
//document.write(m);
</script>
<script>
var string="hello";
var i1=10;
var flag=true;
var arr=new Array();
arr[0]=10;
arr[1]=20;
arr[2]=30;
document.write(arr[2]);
var n=null;
var r;
</script>
</body>
</html>
函数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js定义函数</title>
<link href="Mycss.css" type="text/css" rel="stylesheet">
</head>
<body>
<script>
function demo(){
var a=10;
var b=10;
var sum=a+b;
alert(sum);
}
function tell() {
var n=10;
var m=10;
var vl=n*m;
alert(vl);
}
tell();
</script>
</body>
</html>
调用函数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js定义函数</title>
<link href="Mycss.css" type="text/css" rel="stylesheet">
</head>
<body>
<script>
function demo(){
var a=10;
var b=10;
var sum=a+b;
alert(sum);
}
</script>
<form>
<input type="button" value="按钮" onclick="demo">
</form>
//<button onclick="demo()">按钮</button>
</body>
</html>
参数传递
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>传递参数</title>
<link href="Mycss.css" type="text/css" rel="stylesheet">
</head>
<body>
<script>
function demo(name,age){
alert("Hello:"+name,"我的年龄是:"+age)
}
</script>
<button onclick="demo('iwem',20)">按钮</button>
<button onclick="demo('ime',20)">按钮</button>
</body>
</html>
捕获异常
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>异常捕获</title>
<link href="Mycss.css" type="text/css" rel="stylesheet">
</head>
<body>
<script>
function demo(){
try{
alert(str);
}catch(err){
alert(err);
}
}
demo();
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>异常捕获</title>
<link href="Mycss.css" type="text/css" rel="stylesheet">
</head>
<body>
<form>
<input id="txt" type="text">
<input id="btn" type="button" onclick="demo()" value="按钮">
</form>
<script>
function demo(){
try{
var c=document.getElementById("txt").value;
if(c==""){
throw "请输入";
}
}catch (err){
alert(err);
}
}
</script>
</body>
</html>
DOM操作html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DOM</title>
<link href="Mycss.css" type="text/css" rel="stylesheet">
</head>
<body>
<p>Hello</p>
<button onclick="demo()">按钮</button>
<script>
function demo() {
document.write();
}
</script>
</body>
</html>
DOM操作CSS
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="Mystye.css">
</head>
<body>
<div id="div" class="div">
hello
</div>
<button onclick="demo()">按钮</button>
<script>
function demo(){
document.getElementById("div").style.background="blue";
}
</script>
</body>
</html>
.div{
width:100px;
height:100px;
background-color: red;
}
EventListener
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="Mystye.css">
</head>
<body>
<button onclick="btn">按钮</button>
<script>
document.getElementById("btn").addEventListener("click",function(){
alert("hello")
});
</script>
</body>
</html>
事件流
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="Mystye.css">
</head>
<body>
<div id="div">
<button id="btn1"></button>
</div>
</body>
</html>
事件处理
直接处理html5文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="Mystye.css">
</head>
<body>
<div id="div">
<button id="btn1" onclick="demo()">按钮</button>
</div>
<script>
function demo(){
alert("Hello")
}
</script>
</body>
</html>
DOM2级处理事件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="Mystye.css">
</head>
<body>
<script>
var btn1=document.getElementById("btn1");
btn1.addEventListener("click",demo1);
btn1.addEventListener("click",demo2);
btn1.addEventListener("click",demo3);
function demo1() {
alert("DOM2级事件处理程序")
}
function demo2() {
alert("DOM2级事件处理程序")
}
function demo3() {
alert("DOM2级事件处理程序")
}
btn1.removeEventListener("click",demo2);
</script>
</body>
</html>
创建对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="Mystye.css">
</head>
<body>
<!创建对象>
<script>
people=new Object();
people.name="iwen";
people.age="30";
document.write("name:"+people.name+",age"+people.age);
</script>
</body>
</html>
字符串对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="Mystye.css">
</head>
<body>
<!创建对象>
<script>
var str ="Hello World";
document.write(str.length);
document.write(str.indexOf("Hello"));
document.write(str.match("hello1"));
document.write(str.replace("world","jikexueyuan"));
document.write(str.toUpperCase())
</script>
</body>
</html>
数组对象
合并数组
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="Mystye.css">
</head>
<body>
<!创建对象>
<script>
var a=["hello","world"];
var b=["iwen","ime"];
var c=a.concat(b);
document.write(c);
</script>
</body>
</html>
排序
<script>
var a=["5","2","4","3","1"];
document.write(a.sort(function (a,b){
return b-a;
}));
</script>
添加与翻转
<!创建对象>
<script>
var a=["a","b"];
a.push("c");
document.write(a);
document.write(a.reverse());
</script>
DOM操作HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="Mystye.css">
</head>
<body>
<p name="pn">Hello</p>
<p name="pn">Hello</p>
<p name="pn">Hello</p>
<p name="pn">Hello</p>
<a id="aid" title=得到了a标签的属性">Hello</a>
<a id="aid2">aid2</a>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<div>
<p id="pid">div的p元素</p>
</div>
<script>
function getName(){
var count=document.getElementsByTagName("p");
alert(count.length);
var p=count[2];
p.innerHTML="world";
}
function getAttr(){
var anode=document.getElementById("aid");
var attr=anode.getAttribute("title");
alert(attr);
}
function setAttr(){
var anode=document.getElementById("aid2");
anode.setAttribute("title","动态设置a的title属性");
var attr=anode.getAttribute("title");
alert(attr);
}
function getChildNode(){
var childnode=document.getElementsByTagName("ul")[0].childNodes;
alert(childnode.length);
alert(childnode[0].nodeType);
}
function getParentNode(){
var div=document.getElementById("pid");
alert(div.parentNode.nodeName);
}
function getSize(){
var width=document.documentElement.offsetWidth;
var height=document.documentElement.offsetHeight;
alert(width+","+height);
}
getSize();
</script>
</body>
</html>
Window对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="Mystye.css">
</head>
<button id="btn" onclick="btnClicked()">按钮</button>
<script>
//document.write(window.innerWidth+window.innerHeight)
function btnClicked(){
window.open("bioindex.html","windowname","height=200,width=200,top=200","left=100");
window.close();
}
</script>
</body>
</html>
计时器对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="Mystye.css">
</head>
<button id="btn" onclick="mywin()">按钮</button>
<button id="btn" onclick="stopWin()">按钮</button>
<script>
var win;
function mywin(){
alert("Hello");
win=setTimeout(function(){alert("hello")},3000);
}
function stopWin(){
clearTimeout(win);
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="Mystye.css">
</head>
<button id="btn" onclick="btnClicked()">按钮</button>
<p id="ptime"></p>
<script>
var mytime=setInterval(function(){
getTime();
},1000);
function getTime(){
var d=new Date()
var t=d.toLocaleTimeString();
document.getElementById("ptime").innerHTML=t;
}
function stopTime(){
clearInterval(mytime);
}
</script>
</body>
</html>
History对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="Mystye.css">
</head>
<body>
<a href="bioindex.html">跳转到bioindex</a>
<button id="btn" onclick="goob">按钮</button>
<script>
function goob(){
history.forward();
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<button id="bin" onclick="goceshi()">按钮</button>
<script>
function goceshi(){
history.back();
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="Mystye.css">
</head>
<body>
<a href="bioindex.html">跳转到bioindex</a>
<button id="btn" onclick="goob">跳转</button>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form>
<input type="text" id="username">
<button id="btn" onclick="safe()">按钮</button>
</form>
<script>
function safe(){
var name=document.getElementById("username").value;
if(name=="hello"){
history.go(-1);
}else{
alert("输入错误");
}
}
</script>
</body>
</html>
JS瀑布流实现
*{
margin:0px;
padding:0px;
}
#container{
position:relative;
}
.box{
padding:5px;
float:left;
}
.box_img{
padding:5px;
border:1px solid #cccccc;
box-shadow:0 0 5px #cccccc;
border-radius: 5px;
}
.box_img img{
width:150px;
height:auto;
}
.box_img img{
width:150px;
height:auto;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="Mystye.css">
<script src="app.js"></script>
</head>
<body>
<div id="container">
<div class="box">
<div class="box_img">
<img src="img/1.jpg">
</div>
</div>
<div class="box">
<div class="box_img">
<img src="img/2.jpg">
</div>
</div>
<div class="box">
<div class="box_img">
<img src="img/3.jpg">
</div>
</div>
<div class="box">
<div class="box_img">
<img src="img/4.jpg">
</div>
</div>
<div class="box">
<div class="box_img">
<img src="img/5.jpg">
</div>
</div>
<div class="box">
<div class="box_img">
<img src="img/6.jpg">
</div>
</div>
<div class="box">
<div class="box_img">
<img src="img/7.jpg">
</div>
</div>
<div class="box">
<div class="box_img">
<img src="img/8.jpg">
</div>
</div>
<div class="box">
<div class="box_img">
<img src="img/9.jpg">
</div>
</div>
<div class="box">
<div class="box_img">
<img src="img/10.jpg">
</div>
</div>
</div>
</body>
</html>
window.onload=function(){
imgLocation("container","box");
imgLocation("container","box");
var imgData={"data":[{"src":"2.jpg"},{"src":"3.jpg"},{"src":"4.jpg"},{"src":"5.jpg"},{"src":"6.jpg"}]};
window.onscroll=function(){
if(checkFlag()){
var cparent =document.getElementById("container");
for(var i=0;i<imgData.data.length;i++){
var ccontent=document.createElement("div");
ccontent.className="box";
cparent.appendChild(ccontent);
var boximg=document.createElement("div");
boxing.className="box_img";
ccontent.appendChild(boximg);
var img=document.createElement("img");
img.src="img/"+imgData.data[i].src;
boximg.appendChild(img);
}
imgLocation("container","box");
}
}
}
function checkFlag(){
var cparent=document.getElementById("container");
var ccontent=getChildElement(cparent,"box");
var lastContentHeight=ccontent[ccontent.length-1].offsetTop;
var scrollTop=document.documentElement.scrollTop;
var pageHeight=document.documentElement.clientHeight;
if(lastContentHeight<scrollTop+pageHeight){
return true;
}
}
function imgLocation(parent,content){
//将parent下多有的content全部取出
var cparent=document.getElementById(parent);
var ccontent=getChildElement(cparent,content);
var imgWidth=ccontent[0].offsetWidth;
var num=Math.floor(document.documentElement.clientWidth/imgWidth);
cparent.style.cssText="wodth:"+ingWidth*cols+"px;margin:0 auto";
var BoxHeightArr=[];
for(var i=0;i<ccontent.length;i++){
if(i<num){
BoxHeightArr[i]=ccontent[i].offsetHeight;
console.log(BoxHeightArr[i]);
}
}else{
var minHeight=Math.min.apply(null,BoxHeightArr);
var minIndex=getminHeightLocation(BoxHeightArr,minHeight);
ccontent[i].style.position="absolute";
ccontent[i].style.top=minHeight+"px";
ccontent[i].style.left=ccontent[minIndex].offsetLeft+"px";
}
}
function getminHeightLocation(BoxHeightArr,minHeight){
for(var i in BoxHeightArr){
if(BoxHeightArr[i]==minHeight){
return i;
}
}
}
function getChildElement(parent,content){
var contentArr=[];
var allcontent=parent.getElementsByTagName("*");
for(var i=0;i<allcontent.length;i++){
if(allcontent[i].className==content){
contentArr.push(allcontent[i]);
}
}
return contentArr;
}
面向对象
//使用函数构造器构造对象
function People(name){
this._name=name;
}
People.prototype.say=function(name){
alert("peo-hello"+this._name);
}
function Student(name){
this._name=name;
}
Student.prototype=new People();
var superSsay=Student.prototype.say;
Student.prototype.say=function(){
alert("stu-hello"+this._name);
}
var s=new Student("iwen");
s.say();
面向对象的闭包操作,实现信息的隐藏
//使用函数构造器构造对象
(function(){
var n="ime";
function People(name){
this._name=name;
}
People.prototype.say=function(){
alert("peo-hello"+this._name+n);
}
window.People=People;
}());
(function(){
function Student(name){
this._name=name;
}
Student.prototype=new People();
var superSsay=Student.prototype.say;
Student.prototype.say=function(){
alert("stu-hello"+this._name);
}
window.Student=Student;
}()
)
var s=new Student("iwen");
s.say();