标签:
微博发布原理操作:
首先创建节点再操作节点,
回顾:
//创建所需的元素
var txt = document.getElementsByTagName(“textarea”)[0];
var btn = document.getElementsByTagName(“button”)[0];
var ul = document.createElement(“ul”); //创建后面需要添加子节点li 到 ul中,由于不需要点击一次创建一次则声明到最外边就好.
btn.parentNode.appendChild(ul); //由于父类不是采用id选择器,所以使用<子类的父节点>来作为父类对象添加子节”ul”. 若是有id则直接使用id就可以!
//点击事件
btn.onclick = function(){
//判断文本域是否为空, 满足为空的情况下弹出提示并终止运行下行代码.做到纠错的效果!
if(txt.value == ‘’){
alert(“输入内容不能为空!);
return false; //满足条件并终止代码继续执行!
}
//创建新的li
var newli = document.createElement(“li”);
ul.appendChild(newli); // 在ul中添加子节点li
newli.innerHTML = txt.value + <a href=”#”>删除</a>; //给新的li赋值新的文本
txt.value = ‘‘; //成功执行上述代码后清空文本域中的值
//获取所有ul中的子节点li
var lis = ul.children;
//遍历并判断是否有子节点,如有则参照第一个子节点添加新的子节点”li”,若没有则创建新的子节点’li’.
for(var i = 0;i<lis.length;i++)
{
if(lis.length == 0){
ul.appendChild(newli);
}else{
ul.insertBefore(newli,lis[0]);
}
}
//获取所有的a标签,然后每次点击则删除ul下的当前父节点, 也就是a标签当前的子节点li ;
var as = document.getElementsByTagName(“a”);
for(var i = 0;i<as.length;i++)
{
as[i].onclick = function(){
ul.removeChild(this.parentNode);//删除a标签当前的父节点li
}
}
}
总结:
整个内容使用了节点的操作, 包括添加\插入\删除,需要注意的是其中一些灵活的用法,比如 btn.parentNode.appendChild(ul); (button的父节点(div盒子)添加新节点(ul)),之后学的东西越多,逻辑性越强,自然实现某个效果的方式大不相同,区别在于优化性能和代码量细节.
轮播图基础样式:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> *{margin:0;padding:0;} ul,ol{list-style:none} .box { width: 730px; height: 454px; margin: 100px auto; overflow: hidden; position: relative; } .circle { position: absolute; left: 50%; margin-left:-50px; bottom:10px; } .circle span { float: left; width: 18px; height: 18px; border-radius: 50%; text-align: center; line-height: 18px; margin-right: 10px; cursor: pointer; } .circle span.current { background-color: purple; } </style> <script> window.onload = function(){ var scr = document.getElementById("scroll"); var oDiv = document.createElement("div"); var ul = document.getElementById("ul"); scr.appendChild(oDiv); var lis = ul.children; for(var i = 0;i<lis.length;i++) { var spans = document.createElement("span"); oDiv.appendChild(spans); spans.innerHTML = i+1; oDiv.setAttribute("class","circle"); oDiv.children[0].setAttribute("class","current"); } } </script> </head> <body> <div class="box" id="scroll"> <div class="slider"> <ul id="ul"> <li><img src="images/11.jpg" /></li> <li><img src="images/22.jpg" /></li> <li><img src="images/33.jpg" /></li> <li><img src="images/44.jpg" /></li> <li><img src="images/55.jpg" /></li> <li><img src="images/66.jpg" /></li> </ul> </div>
</div> </body> </html> //==================================================================== <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> *{margin:0;padding:0;} ul,ol{list-style:none} .box { width: 730px; height: 454px; margin: 100px auto; overflow: hidden; position: relative; } .circle { position: absolute; left: 50%; margin-left:-50px; bottom:10px; } .circle span { float: left; width: 18px; height: 18px; border-radius: 50%; text-align: center; line-height: 18px; margin-right: 10px; cursor: pointer; } .circle span.current { background-color: purple; } </style> <script> window.onload = function(){ var scroll = document.getElementById("scroll"); var circle = document.createElement("div"); // 新的 //circle.className = "circle"; // 更改的类名 circle.setAttribute("class","circle"); // 更为常用 scroll.appendChild(circle); var ul = document.getElementById("ul"); var lis = ul.children; // ul 的所有孩子 //alert(lis.length); // 生成了新的大盒子 // 大盒子里面要放入 n个小的span for(var i=0; i<lis.length; i++) { var newspan = document.createElement("span"); // 创建 6次 span newspan.innerHTML = i+1; circle.appendChild(newspan); } var child = circle.children; child[0].setAttribute("class","current"); // 第一个孩子 添加 current } </script> </head> <body> <div class="box" id="scroll"> <div class="slider"> <ul id="ul"> <li><img src="images/11.jpg" /></li> <li><img src="images/22.jpg" /></li> <li><img src="images/33.jpg" /></li> <li><img src="images/44.jpg" /></li> <li><img src="images/55.jpg" /></li> <li><img src="images/55.jpg" /></li> <li><img src="images/66.jpg" /></li> </ul> </div>
</div> </body> </html>
设置节点属性操作:
设置节点属性:
setAttribute(“属性”,”值”);
obj.setAttribute(“class”,”circle”);
获取节点属性:
getAttribute(“属性”);
obj.getAttribute(“title”);
删除节点属性:
removeAttribute(“属性”);
obj.removeAttribute(“src”);
内置对象:
内置对象就是指语言自带的一些对象,供开发者使用,这些对象主要提供了一些常用或者基本而必要的功能.
如:手机, 打电话 发短信 上网.
这个日期函数(对象)可以设置本地日期,年月日 时分秒!
声明日期:
var date = new Date();
创建声明了一个新日期函数赋值给date变量.
使用该变量函数对象:
date.getTime(): //推荐使用区别:两者有微秒误差.
date.getvalueOf(); 两个都是获取1970年到当前时间的毫秒数方法.
同等:
Date.now( );
+new Date( ); 直接使用的.
常用日期方法:
getDate() 获取日期1-31日;
getDay() 获取星期 0-6; //实际开发中需要+1
getMonth() 获取月份 0 - 11; //实际开发中需要+1
getFullYear() 获取完整年份, 浏览器都支持.
getHours() 获取小时, 0 - 23;
getSeconds() 获取秒 0 - 59;
getMilliseconds() 获取当前毫秒;
getTime() 返回累计毫秒数(从1970.1.1午夜);
定时器:
setInterval(“执行的函数名”,间隔时间)
例:
setInterval(“fn()”,1000);
解读就是1000毫秒(1秒)执行一次函数名为 fn的函数.
2种写法:
1 setInterval(“fn()”,1000);
2 setInterval( function(){ ... },1000);
错误写法:
setInterval(fn(),1000);
倒计时:
1 <script> 2 3 window.onload = function(){ 4 5 //将来的时间 6 7 var endTime = new Date("2017/03/15 00:00:00"); 8 9 10 11 setInterval(fn,1000); 12 13 function fn(){ 14 15 //当前时间的毫秒数 16 17 var nowTime = new Date(); 18 19 20 21 //将来的毫秒数 - 当前时间的毫秒数 = 剩下的毫秒数 22 23 var seconds = parseInt((endTime.getTime() - nowTime.getTime()) / 1000); 24 25 26 27 //然后再用它们之间剩下的时间用来进行整除取余以获得最终的 天\时\分\秒. 28 29 30 31 //天 剩下毫秒数除以3600(每小时[60分钟]乘以60秒) 再除以 24(1天24小时) 即得到天数 32 33 var d = parseInt(seconds / 3600 / 24); 34 35 36 37 //时 剩下的毫秒数除以3600(小时 分钟的积) 然后取余24 即得到最终小时数. 38 39 var h = parseInt(seconds / 3600 % 24); 40 41 42 43 //分 剩下的毫秒数除以60(每小时60分钟) 再对60(分钟数)取余 则得到最终的分钟数 44 45 var m = parseInt(seconds / 60 % 60 ); 46 47 48 49 //秒 剩下的毫秒数对60取余即得到秒数 50 51 var s = parseInt(seconds % 60 ); 52 53 54 55 d < 10? d = "0" + d : d ; 56 57 h < 10? h = "0" + h : h ; 58 59 m < 10? m = "0" + m : m ; 60 61 s < 10? s = "0" + s : s ; 62 63 64 65 var box = document.getElementById("d"); 66 67 68 69 box.innerHTML = "距离时间剩余:" + d + " 天 " + h + " 时 " + m + " 分 " + s + " 秒" ; 70 71 } 72 73 } 74 75 </script>
ps:主要搞清楚换算问题,把((将来的时间-当前的时间) / 1000)剩余的毫秒数在进行换算成天\时\分\秒.
再者+0问题, 和实际开发需求挂钩.
标签:
原文地址:http://www.cnblogs.com/Rimashuai/p/5768751.html