决战JS
经过这几日的学习,测试和摸索,算是了解了一些关于javascript 的相关知识吧。学习过程中做出了一些小DEMO,现总结一下实现这些DEMO的基本思路,如有不妥或更为简便的方法,还希望大神拍砖,共同进步。代码可直接复制引用。
demo1.选项卡:
在网站中应用选项卡是很多网站必不可少的效果,因为方便,简单,使用。可分块展示不同的内容链接,当鼠标点击不同按钮时,下面的DIV根据不同的点击显示不同的内容。要实现这样的一个选项卡,首先在body--->div中建立几个button按钮,并在下面建立相同个数的div,初始化第一个div(即:使它的display为block);style初始化div和相应的button;然后写js脚本,根据一般步骤:取元素--->写事件---->测试。在这个案例中,首先得为每个按钮建立索引;将所有的button和div中的样式去除,再用this这个关键字,实现新的样式更换。
<!Doctype html>
<html xmlns=http://www.w3.org/1999/xhtml>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
<title>choice card</title>
<style>
#div1 .active {background:yellow;}
#div1 div {width:200px;height:200px;background:#CCC;border:1px solid #999;display:none;}
</style> <script language="javascript">
window.onload=function()
{
var oDiv=document.getElementById('div1');
var aBtn=oDiv.getElementsByTagName('input');
var aDiv=oDiv.getElementsByTagName('div'); for(var i=0;i<aBtn.length;i++){
aBtn[i].index=i;
aBtn[i].onclick=function()
{
for(var i=0;i<aBtn.length;i++){
aBtn[i].className='';
aDiv[i].style.display='none';
}
this.className='active';
aDiv[this.index].style.display='block';
};
}
};
</script>
</head> <body>
<div id="div1">
<input class="active" type="button" value="aaaa">
<input type="button" value="bbbb">
<input type="button" value="cccc">
<input type="button" value="dddd">
<div style="display:block;">1111</div>
<div>2222</div>
<div>3333</div>
<div>4444</div>
</div>
</body>
</html>
demo2.隔行变色:
通过基本的js中模运算,即:i%2==0来实现偶数行变色。本DEMO实现起来比较容易,首先在body中输入一些<ul><li></li><li></li><li></li><li></li></ul>,<li>越多越能看到明显的效果。接着,应用document.getElementsByTagName('li'),来获取标签li元素,判断之后,设置背景颜色,直接通过js实现不同的效果。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content=""> <script>
window.onload=function(){
var aLi=document.getElementsByTagName('li');
for(var i=0;i<aLi.length;i++)
{
if(i%2==0)
{
aLi[i].style.background='#CCC';
}
else
{
aLi[i].style.background='';
}
}
};
</script>
</head> <body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</body>
</html>
demo3.InnerHTML的使用:
通过点击button将文本框中的内容直接显示到DIV中。首先获取页面中的元素,然后直接用onclick事件(oDiv.innerHTML=oTxt.value;)将文本框中的文字或者HTML标签显示到div中。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> setFont </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<style>
#div1 {width:200px;height:150px;border:1px solid black;}
</style>
<script>
window.onload=function(){
var oTxt=document.getElementById('txt1');
var oBtn=document.getElementById('btn1');
var oDiv=document.getElementById('div1'); oBtn.onclick=function(){
oDiv.innerHTML=oTxt.value;
};
}
</script>
</head> <body>
<input type="text" id="txt1"/>
<input id="btn1" type="button" value="SetFont">
<div id="div1">
</div>
</body>
</html>
demo4.延时提示框:
对于延时提示框的实现,需要知道计时器的作用和用法。本例实现的是利用当鼠标在某个div上时,另外的一个div显示,当鼠标移开的时候,div过一会儿才消失。代码实现过程,首先需要两个div,设置初始化的样式,选择将其中一个div的display设置为none。再用js实现鼠标的移入移除时,计时器控制div的变化。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<style>
#div {float:left; margin:10px;}
#div1 {width:50px;height:50px;background:red;}
#div2 {width:250px;height:180px;background:#CCC;display:none;}
</style> <script>
window.onload=function(){
var oDiv1=document.getElementById('div1');
var oDiv2=document.getElementById('div2');
var timer=null; oDiv2.onmouseover=oDiv1.onmouseover=function(){
clearTimeout(timer);
oDiv2.style.display='block';
}; oDiv2.onmouseout=oDiv2.onmouseout=function() {
timer=setTimeout(function(){
oDiv2.style.display='none';
},200);
};
};
</script>
</head> <body>
<div id="div1"></div>
<div id="div2"></div>
</body>
</html>
还有部分DEMO的分析和总结在《决战JS(二)》。
决战JS的更多相关文章
- 决战JS(二)
紧接着上次的<决战JS>,分析总结一些比较实用的DEMO与新手分享,望大神拍砖. demo5.点击隐藏: 要实现这个功能只需要知道在onclick事件中加入对父节点的样式dislay设置为 ...
- Vue.js 和 MVVM 小细节
MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...
- js学习笔记:操作iframe
iframe可以说是比较老得话题了,而且网上也基本上在说少用iframe,其原因大致为:堵塞页面加载.安全问题.兼容性问题.搜索引擎抓取不到等等,不过相对于这些缺点,iframe的优点更牛,跨域请求. ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- JS调用Android、Ios原生控件
在上一篇博客中已经和大家聊了,关于JS与Android.Ios原生控件之间相互通信的详细代码实现,今天我们一起聊一下JS调用Android.Ios通信的相同点和不同点,以便帮助我们在进行混合式开发时, ...
- jquery和Js的区别和基础操作
jqery的语法和js的语法一样,算是把js升级了一下,这两种语法可以一起使用,只不过是用jqery更加方便 一个页面想要使用jqery的话,先要引入一下jqery包,jqery包从网上下一个就可以, ...
- 利用snowfall.jquery.js实现爱心满屏飞
小颖在上一篇一步一步教你用CSS画爱心中已经分享一种画爱心的方法,这次再分享一种方法用css画爱心,并利用snowfall.jquery.js实现爱心满屏飞的效果. 第一步: 利用伪元素before和 ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- JS正则表达式常用总结
正则表达式的创建 JS正则表达式的创建有两种方式: new RegExp() 和 直接字面量. //使用RegExp对象创建 var regObj = new RegExp("(^\\s+) ...
随机推荐
- hdu 4193 - Non-negative Partial Sums(滚动数列)
题意: 给定一个由n个整数组成的整数序列,可以滚动,滚动的意思就是前面k个数放到序列末尾去.问有几种滚动方法使得前面任意个数的和>=0. 思路: 先根据原来的数列求sum数组,找到最低点,然后再 ...
- android adb install
环境:centos6.8 需要安装 root@localhost ~]# yum install libstdc++.so.6 1.下载安装包; http://pan.baidu.com/s/1skg ...
- poj 1099
http://poj.org/problem?id=1099 #include<stdio.h> #include<string.h> #include <iostrea ...
- 通过cookie实现搜索框内容保存关闭浏览器之前的操作、jq js实现方法
jq实现的方法: jq需要在页面中引入JQ.cookie插件 这是一个超轻量级插件 要实现的效果: 下面是jq代码: $(function(){ var til=$("#orderInfoC ...
- JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (1):NetBeans 寫 Servlet (转帖)
JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (1):NetBeans 寫 Servlet 功能:這支程式的主要功能是將 javafx 與 swi ...
- Ubuntu Server 15.04的安装
U盘启动工具的制作就跟Windows系统以及Linux各版本的desktop版不同,用的工具也是我第一次见到的“Win32_Disk_Imager”(点击下载) 安装过程请参考:http://www. ...
- Java对象表示方式2:XStream实现对对象的XML化
上一篇文章讲到了使用Java原生的序列化的方式来表示一个对象.总结一下这种对象表示方式的优缺点: 1.纯粹的Java环境下这种方式可以很好地工作,因为它是Java自带的,也不需要第三方的Jar包的支持 ...
- 认识SQLServer索引以及单列索引和多列索引的不同
一.索引的概念 索引的用途:我们对数据查询及处理速度已成为衡量应用系统成败的标准,而采用索引来加快数据处理速度通常是最普遍采用的优化方法. 索引是什么:数据库中的索引类似于一本书的目录,在一本书中使 ...
- Web前端技术研究:Css hack技术---令人沮丧的技术
我最近想好好整理下csshack技术,但是结果很沮丧,下面我将我最初写的笔记和大家分享下. 我在单位整理的研究笔记: 不同的浏览器对某些CSS代码解析会存在一定的差异,因此就会导致不同浏览器下给用户展 ...
- shell脚本常规技巧
邮件相关 发送邮件: #!/usr/bin/python import sys; import smtplib; from email.MIMEText import MIMEText mail_ho ...