以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Web挖掘技术 』   (http://bbs.xml.org.cn/list.asp?boardid=69)
----  使用CSS3 and jQuery 实现霓虹灯闪烁效果  (http://bbs.xml.org.cn/dispbbs.asp?boardid=69&rootid=&id=85880)


--  作者:nnfj2009
--  发布时间:7/26/2010 4:32:00 PM

--  使用CSS3 and jQuery 实现霓虹灯闪烁效果
使用CSS3 and jQuery 实现霓虹灯闪烁效果

在本教程中,我们将教你如何在不使用FLASH,而仅仅是使用CSS3 和jQuery技术,就让你的输入框具有虹灯闪烁的效果。

首先让我们来看看效果图:
按此在新窗口浏览图片

[color=#FF0000][color=#0000FF]源代码下载: http://www.nnfj.net/uploads/soft/100726/1-100H6160320.zip[/color][/color]





实现方法:

第1步:1、编码前的准备工作

确定您下载的jQuery是最新版本(在撰写本文时版本1.4.2),

<script type="text/javascript"

src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js">

</script>

以上是jQuery新版本,读者也可以自行下载最新的版本

第2步:创建窗体布局的XHTML

以下将创建名为index.html的XHTML布局。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" class="no-js">


<head>

<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />

<title>Form Tutorial</title>

<link rel="stylesheet" type="text/css" href="style.css">

<script type="text/javascript" src="jquery-1.4.2.min.js"></script>

<script type="text/javascript" src="highlight.js"></script>

</head>

<body>

<div id="page-wrap">

  <form id="myform" method="post" action="#">

   <div>

   <div class="field">

    <label for="personname" >Name</label>

    <input class="inputfield textfield" name="personname" type="text" />

   </div>

   <div class="field">

    <label for="email" >E-mail</label>

    <input class="inputfield textfield" name="email" type="text" />

   </div>

   <div class="field">

    <label for="website" >Website</label>

    <input class="inputfield textfield" name="website" type="text" />

   </div>

   <div class="field area">

    <label for="details" >Details</label>

    <textarea class="inputfield textarea1" name="details" ></textarea>

   </div>

   </div>

   <!--div class="clear"></div-->

   <input class="submitbutton" type="submit" value="Submit" />

  </form>

</div>

</body>

</html>

第3步:创建基本的CSS样式

下面将创建XHTML页面的CSS样式,样式的代码保存在style.css里,代码如下:

*{

margin:0;

padding:0;

}

textarea, input{

outline:none;

}

body{

background:#3D3D3D;

}

#page-wrap{

width:350px;

min-height:500px;

height:auto;

margin:0 auto;

position:relative;

padding-top:50px;

font:15px Arial;

}

#myform{

width:375px;

-moz-border-radius: 8px; /* FF1+ */

   -webkit-border-radius: 8px; /* Saf3+, Chrome */

border-radius: 8px; /* Opera 10.5, IE 9 */

margin:0 auto;

position:relative;

}

#myform label{

top:10px;

position:relative;

color:white;

}

.field{

background:gray;

padding:15px 15px 0 10px;

height:50px;

width:350px;

}

#myform div:first-child{

-moz-border-radius-topleft: 8px;

-moz-border-radius-topright: 8px;

-webkit-border-top-left-radius: 8px;

-webkit-border-top-right-radius: 8px;

border-top-left-radius: 8px;

border-top-right-radius: 8px;

}

#myform div:last-child{

-moz-border-radius-bottomleft: 8px;

-moz-border-radius-bottomright: 8px;

-webkit-border-bottom-left-radius: 8px;

-webkit-border-bottom-right-radius: 8px;

border-bottom-left-radius: 8px;

border-bottom-right-radius: 8px;

}

.area{

padding:15px 15px 0 10px;

min-height:195px;

}

.inputfield{

padding:0 10px 0 10px;

float:right;

width:200px;

font:15px Arial;

border:2px aqua inset;

-moz-border-radius: 8px; /* FF1+ */

-webkit-border-radius: 8px; /* Saf3+, Chrome */

border-radius: 8px; /* Opera 10.5, IE 9 */

}

.textfield{

height:25px;

padding-top:5px;

}

.textarea1{

padding-top:10px;

padding-bottom:10px;

height:150px;

max-height:200px;

max-width:250px;

}


在这里,因为受到输入框阴影属性的影响,所以如何设置CSS3边界属性变得非常重要。对于文本区域轮廓属性设置为0,并输入字段,用来删除浏览器默认的焦点属性,以上的代码


将让输入框实现下面的效果。



接下来设置提交按钮的样式属性,使按钮和表格的风格一致。把下面的代码加到CSS样式里。

.submitbutton{

border: 0px;

float:right;

width:75px;

height:40px;

font:20px Arial;

position:relative;

top:20px;

right:10px;


-moz-border-radius: 8px;

-webkit-border-radius: 8px;

border-radius: 8px;

-moz-box-shadow: 0px 0px 30px #3cdfdf;

-webkit-box-shadow: 0px 0px 30px #3cdfdf;

box-shadow: 0px 0px 30px #3cdfdf;

background-image: -moz-linear-gradient(top, white, #3cdfdf); /* FF3.6 */

background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, white),color-stop(1, #3cdfdf)); /* Saf4+, Chrome */

filter:  progid:DXImageTransform.Microsoft.gradient(startColorStr='white', EndColorStr='#3cdfdf'); /* IE6,IE7 */

-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='white', EndColorStr='#3cdfdf')"; /* IE8 */

}

.submitbutton:hover{

  background: #3cdfdf;

  color:white;

}


以上的CSS代码我们给提交按钮的背景图片设置了线性渐变效果,我们只是改变了整个背景色为#3cdfdf(旱厕蓝色)和文本颜色为白色。


提交按钮就有点霓虹灯的效果。




第4步:使用css3设置页面动画效果

添加下面的代码到CSS文件里,设置页面动画效果。

@-webkit-keyframes pulsate {

0%   {  -webkit-box-shadow: 0px 0px 0px #3cdfdf;  border:2px aqua inset  }

25%  {  -webkit-box-shadow: 0px 0px 35px #3cdfdf; border:2px aqua inset  }

50%  {  -webkit-box-shadow: 0px 0px 0px white;    border:2px white inset }

75%  {  -webkit-box-shadow: 0px 0px 35px white;   border:2px white inset }

100% {  -webkit-box-shadow: 0px 0px 0px #3cdfdf;  border:2px aqua inset  }

}

.inputfield:focus{

-webkit-animation-name: pulsate;

-webkit-animation-duration: 1.5s;

-webkit-animation-iteration-count: infinite;

-moz-box-shadow: 0px 0px 30px  #3cdfdf;

box-shadow: 0px 0px 30px #3cdfdf;

}

效果如下:



第5步:添加jQuery

添加以下的代码到highlight.js.里。

$(document).ready(function(){

var globalParent=null;

var mouse_is_inside=false;

/*The snippet below is activated when an inputfield is focused*/

$('.inputfield').focus(function(){

  globalParent=$(this).parent('div');

  globalParent.click();

});

/*This following part will be activated when the inputfield loses focus*/

$('.inputfield').blur(function(){

  globalParent.click();

});

/*Following part will be activated when the user clicks anywhere inside

the container div of the inputfield*/

$('.field').click(function(){

  if(!($(this).is('.dummy'))){

   $('.dummy').css('background-color','gray');

   $('.dummy label').css('color','white');

   $('.dummy').removeClass('dummy');

   $(this).css('background-color','black');

   $(this).children('label').css('color','#3cdfdf');

   $(this).addClass('dummy');

  }

});

/*The following code checks time and again whether the mouse is inside the form or not*/

$('form').hover(function(){

         mouse_is_inside=true;

     },

     function(){

         mouse_is_inside=false;

   }

  );

/*If user clicks anywhere outside the form, all highlighting is removed*/

  $('body').click(function(){

        if(!mouse_is_inside)

        {

         $('.field').css('background-color','gray');

         $('.field label').css('color','white');

         $('.dummy').removeClass('dummy');

        }

    });

});

这是一个简单的jQuery代码,其中,重点设置了输入文本框的DIV设置,并改变其背景为黑色。


上面就是整个霓虹灯效果的实现过程。


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
39.063ms