zoukankan      html  css  js  c++  java
  • 决战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>
    View Code

    demo2.隔行变色:

            通过基本的js中模运算,即:i%2==0来实现偶数行变色。本DEMO实现起来比较容易,首先在body中输入一些<ul><li></li><li></li><li></li><li></li></ul>,<li>越多越能看到明显的效果。接着,应用document.getElementsByTagName('li'),来获取标签li元素,判断之后,设置背景颜色,直接通过js实现不同的效果。

     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     2 <html>
     3  <head>
     4   <title> New Document </title>
     5   <meta name="Generator" content="EditPlus">
     6   <meta name="Author" content="">
     7   <meta name="Keywords" content="">
     8   <meta name="Description" content="">
     9  
    10  <script>
    11   window.onload=function(){
    12     var aLi=document.getElementsByTagName('li');
    13     for(var i=0;i<aLi.length;i++)
    14       {
    15         if(i%2==0)
    16           {
    17             aLi[i].style.background='#CCC';
    18           }
    19           else
    20           {
    21             aLi[i].style.background='';
    22           }
    23       }
    24   };
    25  </script>
    26  </head>
    27 
    28  <body>
    29   <ul>
    30     <li></li>
    31     <li></li>
    32     <li></li>
    33     <li></li>
    34     <li></li>
    35     <li></li>
    36     <li></li>
    37     <li></li>
    38     <li></li>
    39     <li></li>
    40     <li></li>
    41   </ul>
    42  </body>
    43 </html>
    View Code

    demo3.InnerHTML的使用:

            通过点击button将文本框中的内容直接显示到DIV中。首先获取页面中的元素,然后直接用onclick事件(oDiv.innerHTML=oTxt.value;)将文本框中的文字或者HTML标签显示到div中。

     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     2 <html>
     3  <head>
     4   <title> setFont </title>
     5   <meta name="Generator" content="EditPlus">
     6   <meta name="Author" content="">
     7   <meta name="Keywords" content="">
     8   <meta name="Description" content="">
     9   <style>
    10   #div1 {width:200px;height:150px;border:1px solid black;}
    11   </style>
    12   <script>
    13    window.onload=function(){
    14      var oTxt=document.getElementById('txt1');
    15      var oBtn=document.getElementById('btn1');
    16      var oDiv=document.getElementById('div1');
    17 
    18      oBtn.onclick=function(){
    19         oDiv.innerHTML=oTxt.value;
    20      };
    21    }
    22   </script>
    23  </head>
    24 
    25  <body>
    26 <input type="text" id="txt1"/>
    27 <input id="btn1" type="button" value="SetFont">
    28 <div id="div1">
    29 </div>
    30  </body>
    31 </html>
    View Code

    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>
    View Code

    还有部分DEMO的分析和总结在《决战JS(二)》

  • 相关阅读:
    .net core读取appsettings.config中文乱码问题
    vs2017错误:当前页面的脚本发生错误
    VS Code中无法识别npm命令
    Visual Studio报错/plugin.vs.js,行:1074,错误:缺少标识符、字符串或数字
    记录一次在生成数据库服务器上出现The timeout period elapsed prior to completion of the operation or the server is not responding.和Exception has been thrown by the target of an invocation的解决办法
    Java集合框架
    java hash表
    Java Dictionary 类存储键值
    java数据结构 栈stack
    java封装
  • 原文地址:https://www.cnblogs.com/itred/p/3660613.html
Copyright © 2011-2022 走看看