原生的几个javascript常用特效

1 仿网上表格特效:鼠标经过的行高亮显示源码:

<html >

<head>

    <title>鼠标经过的行高亮显示</title>

    <!--实现原理:鼠标经过当前行改变其背景颜色,除此之外 还可以有很多扩展-->

    <script type="text/javascript">

        function trinitEvent() {

            var trs = document.getElementsByTagName("tr");

            for (var i = 0; i < trs.length; i++) {

                var tr = trs[i];

                tr.onmouseover =  function() {      

                  this.style.background = "red";

              }

              tr.onmouseout = function () {

                  this.style.background = "white";

              }

                tr.style.cursor = "pointer";

            }

        }

       

    </script>

</head>

<body onload="trinitEvent()">

<table id="tbColor">

<tr><td>好地方很多很多很多很多</td></tr>

<tr><td>好地方很多很多很多很多</td></tr>

<tr><td>好地方很多很多很多很多</td></tr>

<tr><td>好地方很多很多很多很多</td></tr>

<tr><td>好地方很多很多很多很多</td></tr>

<tr><td>好地方很多很多很多很多</td></tr>

</table>

</body>

</html>

 

2 表格的隔行换色

<html >

<head>

    <title>表格的隔行换色</title>

    <script type="text/javascript">

        function setLineColor() {

            var tbColor = document.getElementById("tbColor");

            var trs = tbColor.getElementsByTagName("tr");

            for (var i = 0; i <trs.length; i++) {

               

                if (i % 2 == 0) {

                    var tr = trs[i];

                    tr.style.background = "red";

                }

              

            }

        }

    </script>

</head>

<body onload="setLineColor()">

<table id="tbColor">

<tr><td>哈哈啊哈</td></tr>

<tr><td>哈哟</td></tr>

<tr><td>哈你</td></tr><tr><td>哈我为</td></tr>

</table>

</body>

</html>

 

3 超链接提示(鼠标移入超链接时动态加载层给予一些详细的提示,当然原生的html+css也能达到效果)

<html >

<head>

    <title>超链接提示</title>

    <style type="text/css">

        .toolTip

        {

            width:80px;

            height:80px;

            background:blue;

            border:1px solid green;

            }

    </style>

    <script type="text/javascript">

        function decrarionA() {

            var as = document.getElementsByTagName("a");

            for (var i = 0; i < as.length; i++) {

                var a = as[i];

                a.onmouseover = function () {

                    var div = document.createElement("div");

                    div.className = "toolTip";

                    div.innerText = "超炫的提示信息哟!!";

                    div.style.position = "absolute";

                    div.style.left = window.event.clientX + "px";

                    div.style.top = window.event.clientY + "px";

                    document.body.appendChild(div);

                }

                a.onmouseout = function () {

                    var divs = document.getElementsByTagName("div");

                    for (var i = 0; i < divs.length; i++) {

                        var div = divs[i];

                        if (div.className == "toolTip") {

                            document.body.removeChild(div);

                        }

                    }

                }

            }

        }

    </script>

</head>

<body onload="decrarionA() ">

<a href="#">百度</a>

<a href="#">百度</a>

<a href="#">百度</a>

<a href="#">百度</a>

</body>

</html>

 

4. 超链接效果:被点击的链接高亮显示

<html >

<head>

    <title>超链接效果:被点击的链接高亮显示</title>

   <script type="text/javascript">

       function searchA() {

           var linkAs = document.getElementsByTagName("a");

           for (var i = 0; i < linkAs.length; i++) {

               var linkA = linkAs[i];

               linkA.onclick = aClick;

           }

       }

       function aClick() {

        var linkAs = document.getElementsByTagName("a");

        for (var i = 0; i < linkAs.length; i++) {

            var linkA = linkAs[i];

            if (linkA == this) {

                this.style.background = "red";

            }

            else {

                linkA.style.background = "white";

            }

        }

       }

   </script>

</head>

<body onload="searchA()">

<a href="#">百度</a>

<a href="#">百度</a>

<a href="#">百度</a>

<a href="#">百度</a>

<a href="#">百度</a>

<a href="#">百度</a>

</body>

</html>

 

5 用户登录提示框

<html >

<head>

    <title>用户登录提示框</title>

    <!--点击登录的时候提示登录div,取消的时候消失-->

    <style type="text/css">

        #login

        {

            width:400px;

            height:300px;

            background:gray;

            border:10px solid yellow;

          

            position:absolute;

            top:200px;

            left:450px;

            text-align:center;

            line-height:100px;

            }

    </style>

    <script type="text/javascript">

        function showLogin() {

            var login = document.getElementById("login");

            login.style.display = "";

        }

        function hideLogin() {

            var login = document.getElementById("login");

            login.style.display = "none";

        }

    </script>

</head>

<body>

<input type="button" value="登录" onclick="showLogin()"/>

<div id="login" style="display:none">

用户名:<input type="text" /><br />

&nbsp;&nbsp;&nbsp;&nbsp;密码:<input type="text" /><br />

<input type="button" value="登录" />

<input type="button" value="取消" onclick="hideLogin()" />

</div>

</body>

</html>

 

6、点击按钮层的高度自动增加

<html >

<head>

    <title>点击按钮层的高度自动增加</title>

    <script type="text/javascript">

        function addHeigth() {

            var dv = document.getElementById("dHeight");

            var oldHeight = dv.style.height;

            oldHeight = parseInt(oldHeight, 10);

            oldHeight += 10;

            oldHeight = oldHeight + "px";

            dv.style.height = oldHeight;

        }

    </script>

</head>

<body>

<div id="dHeight" style="border:1px solid blue;width:200px;height:200px">哈哈哈O(∩_∩)O哈~</div>

<input type="button" value="高度加十" onclick=" addHeigth()"/>

</body>

</html>

 

7、依据数据动态加载表格

<html >

<head>

    <title>依据数据动态加载表格</title>

    <script type="text/javascript">

        function createTable() {

            var tbData = document.getElementById("tbData");

            var data = { "百度": "http://www.baidu.com", "搜狐": "http://www.baidu.com", "Q": "http://www.baidu.com" };

            for (var key in data) {

                var value = data[key];

                var tr = document.createElement("tr");

                td1 = document.createElement("td");

                td2 = document.createElement("td");

                td1.innerText = key;

                tr.appendChild(td1);

                

                td2.innerHTML = "<a href='" + value + "'>" + value + "</a>"; ;

                tr.appendChild(td2);

                tbData.appendChild(tr);

            }

           

        }

 

 

    </script>

</head>

<body>

<table id="tbData"></table>

<input type="button" value="创建一个表格" onclick="createTable()" />

</body>

</html>

 

8、歌曲选择器

<html >

<head>

    <title>歌曲选择器</title>

    <style type="text/css">

        #musicSel

        {

            width:200px;

            height:auto;

            border:2px solid blue;

            text-align:left;

            }

    </style>

    <script type="text/javascript">

        var data = ["那一夜", "月亮之上", "天使的翅膀", "月光洲"];

        function loadMusic() {//加载歌曲信息

            var musicSel = document.getElementById("musicSel");

            for (var i = 0; i < data.length; i++) {

                var input = document.createElement("input");

                var label = document.createElement("label");//给input增加label属性这样当点击input外侧的文本就可以选中该checkbox

                var br = document.createElement("br");//每次加载完一首歌曲就换行

                input.type = "checkbox";

                input.value = data[i];

 

                var mcId = input.id = "mc" + i;//设定checkbox的ID

                label.innerText = data[i];

                label.setAttribute("for", mcId); //无法定义label的for属性,采用setAttribute预定义for属性

                musicSel.appendChild(input);

                musicSel.appendChild(label);

                musicSel.appendChild(br);

            }

        }

 

 

 

        //因为火狐浏览器不支持inerText属性所以需要解决一下,firefox改成了contentText属性,需要用Javascript重新定义innerText属性 ,使得在Firefox中也可以使用innerText属性

        function isIE() { //判断是否是ie

            if (window.navigator.userAgent.toLowerCase().indexOf("msie") >= 1)

                return true;

            else

                return false;

        }

 

        if (!isIE()) { //firefox下Javascript重新定义innerText属性

            HTMLElement.prototype.__defineGetter__("innerText",

        function () {

            var anyString = "";

            var childS = this.childNodes;

            for (var i = 0; i < childS.length; i++) {

                if (childS[i].nodeType == 1)

                    anyString += childS[i].tagName == "BR" ? '\n' : childS[i].innerText;

                else if (childS[i].nodeType == 3)

                    anyString += childS[i].nodeValue;

            }

            return anyString;

        }

       );

            HTMLElement.prototype.__defineSetter__("innerText",

        function (sText) {

            this.textContent = sText;

        }

       );

    }

 

    //业务逻辑的实现

    function selectionAll() {//全选

        var musicSel = document.getElementById("musicSel");

        var inputs = musicSel.getElementsByTagName("input");    

            for (var i = 0; i < inputs.length; i++) {

                var input = inputs[i];

                if (input.type == "checkbox") {

                    input.checked = "checked";

                }

            }

        }

        function CancelSelectioned() {//取消选定

            var musicSel = document.getElementById("musicSel");

            var inputs = musicSel.getElementsByTagName("input");

            for (var i = 0; i < inputs.length; i++) {

                var input = inputs[i];

                if (input.type == "checkbox") {

                    input.checked = "";

                }

            }

        }

 

        function ReverseSelectioned() {//反选

            var musicSel = document.getElementById("musicSel");

            var inputs = musicSel.getElementsByTagName("input");

            for (var i = 0; i < inputs.length; i++) {

                var input = inputs[i];

                if (input.type == "checkbox") {

                    input.checked =!input.checked;

                }

            }

        }

 

    </script>

 

</head>

<body onload="loadMusic()">

<div id="musicSel">

 

</div>

<input type="button" value="全选" onclick="selectionAll()" />

<input type="button"   onclick="CancelSelectioned()" value="取消选定" />

<input type="button"   value="反选" onclick="ReverseSelectioned()" />

</body>

</html>

   

                   

9、规定时间后方可注册

<html >

<head>

    <title>规定时间后方可注册</title>

    <script type="text/javascript">

        var secounds = 10;

        var intervalId;

        function Count() {

            var btn = document.getElementById("btn");

            if (btn) {

                if (secounds <= 0) {

                    btn.value = "注册";

                    btn.disabled = false;

                    clearInterval(intervalId);

                }

                else {

                    btn.value = "请仔细阅读协议还剩" + secounds + "秒";

                    secounds--;

                }

            }

        }

        setInterval("Count()",1000);

    </script>

</head>

<body>

<input type="button" id="btn" disabled="disabled" />

</body>

</html>

 

10、获得焦点的文本框背景为红色(可根据需求扩展)

<html >

<head>

    <title>获得焦点的文本框背景为红色</title>

   <script type="text/javascript">

       function initEvent() {

           var inputs = document.getElementsByTagName("input");

           for (var i = 0; i < inputs.length; i++) {

               var input = inputs[i];

               if (input.type == "text") {

                   input.onfocus = function () {

                       this.style.background = "red";

                   }

                   input.onblur = function () {

                       this.style.background = "white";

                   }

               }

           }

       }

   </script>

</head>

<body onload="initEvent() ">

<input type="text" />

<input type="text" />

<input type="text" />

<input type="text" />

</body>

</html>

 

11、隐藏高级选项

<html >

<head>

    <title>隐藏高级选项</title>

    <style type="text/css">

        #showDiv

        {

            width:200px;

            height:200px;

            font-size:18px;

            background:blue;

            border:2px solid red;

           

        }

      

    </style>

    <script type="text/javascript">

        function showMes(ck) {

            var ckd = document.getElementById("ckd");

            var showDiv = document.getElementById("showDiv");

            if (ck.checked) {

                showDiv.style.display = '';

            }

            else {

                showDiv.style.display = 'none';

            }

        }

    </script>

</head>

<body>

<input type="checkbox" id="ckd" onclick="showMes(this)"/><label for="ckd">显示高级选项</label>

<div id="showDiv" style="display:none">这里有很多特殊的文字哟</div>

</body>

</html>

 

12、每分钟换一张美女时钟

<html >

<head>

    <title>每一分钟换一张美女时钟</title>

    <script type="text/javascript">

        function getTenNumber(number) {

            if (number < 10) {

                return "0" + number;

            }

            else {

                return number;

            }

        }

 

        function setTimeMM() {

            var imgMM = document.getElementById("imgMM");

            if (imgMM) {

                var now = new Date();

 

                var filePath = getTenNumber(now.getHours()) + "_" + getTenNumber(now.getMinutes()) + ".jpg";

               

         

                imgMM.src = "mm/"+filePath;

            }

 

        }

        setInterval("setTimeMM()", 60000);

    </script>

</head>

<body onload="setTimeMM()">

<img src="" id="imgMM"/>

</body>

</html>

 

13、评分控件的开发

<html>

<head>

    <title>评分控件的开发</title>

    <script type="text/javascript">

        var secore;

        function indexOf(arr, element) {//获取当前元素在数组中的下标

            for (var i = 0; i < arr.length; i++) {

                if (arr[i] == element) {

                    return i;

                }

            }

            return -1;

        }

 

        function setScore() {//设置评分规则

            var tbScore = document.getElementById("tbScore");

            var secore = document.getElementById("secore");

            var tds = tbScore.getElementsByTagName("td");

            var index = indexOf(tds, this);

            secore = index;

            for (var i = 0; i <= index; i++) {

                var td = tds[i];

                td.style.background = "red";

            }

           

            for (var i = index+1; i <tds.length; i++) {

                var td = tds[i];

                td.style.background = "white";

            }

           

        }

       

        function initEvent() {//评分加载

            var tbScore = document.getElementById("tbScore");

            var tr = tbScore.getElementsByTagName("tr");

            var tds = tbScore.getElementsByTagName("td");

            for (var i = 0; i < tds.length; i++) {

                var td = tds[i];

                td.onmouseover = setScore;

                td.style.cursor = "pointer";

            }

        }

    </script>

</head>

<body onload="initEvent()">

<table id="tbScore">

<tr>

<td>☆</td><td>☆</td><td>☆</td><td>☆</td><td>☆</td>

</tr>

 

</table>

</body>

</html>

 

14、省市选择器

<html >

<head>

    <title>省市选择器:如果市的value为none则隐藏该select</title>

    <script type="text/javascript">

        var data = { "江西": ["南昌", "宜春"], "山东": ["济南", "青岛"], "河南": ["郑州", "洛阳"] };

        //加载省的信息

        function loadProv() {

            var prov = document.getElementById("prov");

            for (var key in data) {

                var option = document.createElement("option");

                var city = document.getElementById("city");

                option.value = key;

                option.innerText = key;

                prov.appendChild(option);

            }

        }

        //当选择的省发生变化时候加载对应的市

        function selectChange_Prov() {

            var prov = document.getElementById("prov");

            var city = document.getElementById("city");

            for (var i = city.childNodes.length - 1; i >= 0; i--) {

                city.removeChild(city.childNodes[i]);

            }

            if (prov.value == "none") {

                city.style.display = "none";

                return;

            }

            city.style.display = "";

            var citys = data[prov.value];

            for (var i = 0; i < citys.length; i++) {

                var option = document.createElement("option");

                option.value = citys[i];

                option.innerText = citys[i];

                city.appendChild(option);

            }

        }

    </script>

</head>

<body onload="loadProv() ">

<select id="prov" onchange="selectChange_Prov() ">

<option value="none">--请选择省--</option>

</select>

<select id="city" style="display:none"></select>

</body>

</html>

15、鼠标经过时控件其value值发生变化

<html>

<head>

    <title>鼠标经过时控件其value值发生变化</title>

   <!-- 实现思路:设定二个函数:inputMouseover()用于设置按钮的事件所指向的函数(当然也可设置成一个匿名函数实现)、inputOver()用于按钮事件具体的行为-->

 

    <!--此列可以扩展成鼠标进过时按钮的相关的html元素改变比如;背景图片、背景颜色等以及Tag导航中当前访问的Tag高亮显示-->

    <script type="text/javascript">

        function inputMouseover() {

            var inputs = document.getElementsByTagName("input");

            for (var i = 0; i < inputs.length; i++) {

                var input = inputs[i];

                input.onmouseover = inputOver;

               // input.onmouseout = inoutOut;

            }

         }

 

        

         function inputOver() {

             var inputs = document.getElementsByTagName("input");

             for (var i = 0; i < inputs.length; i++) {

                 var input = inputs[i];

                 if (input == window.event.srcElement) {

//                     window.event.srcElement:获取引发事件的控件

                     input.value = "重置";

                 }

                 else {

                     input.value = "哟哟";

                 }

             }

         }

         /*用于扩展

         function inoutOut() {

          var inputs = document.getElementsByTagName("input");

 

          for (var i = 0; i < inputs.length; i++) {

              var input = inputs[i];

              input.value = "哟哟";

          }

         }

         */

    </script>

</head>

<body onload="inputMouseover()">

 

<input type="button" value="哟哟"  />

<input type="button" value="哟哟"  />

<input type="button" value="哟哟"  />

<input type="button" value="哟哟"  />

</body>

</html>

 

 

16、追随鼠标飞的图片

<html >

<head>

    <title>追随鼠标飞的图片</title>

    <script type="text/javascript">

        document.onmousemove = function () {

            var x = window.event.clientX;

            var y = window.event.clientY;

            var flyImg = document.getElementById("flyImg");

            if (flyImg) {

                flyImg.style.left = x + "px";

                flyImg.style.top = y + "px";

            }

        }

    </script>

</head>

<body>

<div id="flyImg" style="position:absolute"><img src="mm/05_49.jpg"></div>

</body>

</html>

 

posted on 2012-07-03 21:47  aolinwxfx  阅读(536)  评论(0编辑  收藏  举报

导航