蓝色信仰

博客园 首页 新随笔 联系 订阅 管理

一般命名插件的CSS和脚本命名都很规范,所以难得出现冲突。只要CSS和Js不冲突,就可以 放心用,随便用,乱着用。

AD:

    一.需求如下

    1:注册不新开页面,改成弹出层,

    2:新增用户买房欲望调查,

    3:用户名自动检索出推荐的用户名,

    4:出生日期用户输入改成控件选择。

    5:尽力提高用户体验,吸引用户注册。

    二.无图无真相

    1:简化后的页面:

    2:浮出文字提示和圆角边框:

    3:支持民意调查(异步提交)

    4:自动检索推荐用户名(测试数据)

    5:数据有效性验证

    6:日历

    7:支持拖拽

    8:滑入显示

    9:over

     

    三.代码分析

    1.弹出层的制作,

    a.先引用这三个:

    1. <script src="jquery-1.4.2.min.js" type="text/javascript" language="javascript"></script> 
    2.  
    3. <script src="jquery-impromptu.3.1.min.js" type="text/javascript" language="javascript"></script> 
    4.  
    5. <link rel="stylesheet" media="all" type="text/css" href="examples.css" /> 

    b.调用这个方法$.prompt,实现弹出。

    2.浮出文字

    a.先引用这两个:

    1. <link rel="stylesheet" media="all" type="text/css" href="jquery.tooltip.css" /> 
    2. <script src="jquery.tooltip.min.js" type="text/javascript" language="javascript"></script> 

    b.调用下面代码实现浮出:

    1. $("#suggest2").tooltip({bodyHandler: function() {return "用户名必须以字母开头";},showURL: false}); 
    2. $("#cemail").tooltip({bodyHandler: function() {return "建议使用新浪游戏";},showURL: false}); 
    3. $("#Text1").tooltip({bodyHandler: function() {return "未成年人请不要注册";},showURL: false}); 

    3.投票

    a.先引用下面两个:

    1. <script type="text/javascript" src="jquery.rater.js"></script> 
    2. <link rel="stylesheet" type="text/css" href="rater.css" media="screen" />

    b.调用$('#demo2').rater('Handler1.ashx')实现投票

    4.自动检索推荐用户名(自动完成)

    a.先引用下面两个

    1. <script src="jquery.autocomplete.min.js" type="text/javascript" language="javascript"></script> 
    2. <link rel="stylesheet" media="all" type="text/css" href="jquery.autocomplete.css" /> 
    3. <script src="localdata.js" type="text/javascript" language="javascript"></script> 

    b.调用  $("#suggest2").focus().autocomplete(cities);实现自动检索,(用的是localdata.js里面的本地测试数据)

    5.数据校验

    a.先引用这

    1. <script src="jquery.validate.js" type="text/javascript" language="javascript"></script> 

    再写如下CSS:

    1. <style type="text/css">  
    2. #commentForm { width: 500px; } 
    3. #commentForm label { width: 500px; } 
    4. #commentForm label.error, #commentForm input.submit { margin-left: 0px;color: red;   } 
    5. </style> 
    6.  

    (commentForm 为form的ID)

    b.调用这个$("#commentForm").validate()实现验证;form里面的class和一些属性配置好,一切验证全自动。

    如:邮箱<input  id="cemail" name="email" class="required email" />

    6.日历

    说到这个惭愧啊!开始用的JQuery的日历插件,后来由于其不能置于弹框的上面,所以改用另外一个。

    a.先引用这两个

    1. <script src="calendar2008.js" type="text/javascript" language="javascript"></script> 
    2. <link rel="stylesheet" media="all" type="text/css" href="rightbar.css" /> 

    b.再写如下代码

    1. var c = new Calendar("c"); 
    2. document.write(c); 
    3. //下面两个用为微调定位 
    4. c.offsetTop =22; 
    5. c.offsetLeft = 25;

    html代码:

    可以看得出,他class="required dateISO" 自动验证时间格式

    1. <input class="required dateISO"  name="begintime" type="text" id="Text1" size="21"  onfocus="c.showMoreDay = false;c.show(this);"  value=""/>

    7.拖拽

    a.先引用这个:

    1. <script src="jquery-ui.min.js" type="text/javascript" language="javascript"></script>

    b.再写这个$("xxx").draggable();实现拖拽

    8.滑入显示:

    插件提供了扩展:

    1. Code highlighting produced by Actipro CodeHighlighter (freeware) 
    2. http://www.CodeHighlighter.com/ 
    3.  
    4. --> $(document).ready(function() { 
    5.      $.fn.extend({ 
    6.     dropIn: function(speed, callback){ 
    7.         var $t = $(this); 
    8.  
    9.         if($t.css("display") == "none"){ 
    10.             eltop = $t.css('top'); 
    11.             elouterHeight = $t.outerHeight(true); 
    12.  
    13.             $t.css({ top: -elouterHeight, display: 'block' }) 
    14.                 .animate({ top: eltop },speed,'swing', callback); 
    15.         } 
    16.     } 
    17. }); 
    18. });

    调用$.prompt("mes",{show:'dropIn'}即可实现滑入。

    9.圆角边框。

    a.先引用这个

    1. <script src="jquery.corner.js" type="text/javascript" language="javascript"></script> 

    b.调用$.("xxx").corner("cc:#d1c7b7");

    c.注意事项:四个角所缺的地方的颜色也是可设置的,一般都和背景色一致。

     

    四.总结

    一般命名插件的CSS和脚本命名都很规范,所以难得出现冲突。只要CSS和Js不冲突,就可以   放心用,随便用,乱着用。

    五.问题(已解决)

    本来想清一色的JQuery插件的,结果JQuery日历插件浮不到弹出层的上面,所以换了另外一个日历控件。气得我把z-index设成10000000000000000,结果可想而知----依然浮不上。找不到哪里CSS冲突了,哪个发现了告诉我一下。

    1. Code highlighting produced by Actipro CodeHighlighter (freeware) 
    2. http://www.CodeHighlighter.com/ 
    3. -->table.jCalendar { 
    4.     border: 1px solid #000; 
    5.     background: #aaa; 
    6.     border-collapse: separate; 
    7.     border-spacing: 2px; 
    8.     z-index: 100000000000000000000000000000000; 
    9.     position:absolute; 
    10. }

    解决办法:

    方法一:在你的页面开始出定义下面的样式

    .ui-datepicker {z-index:1200;}

    当调用dialog时用下面的代码

    jQuery("#midialog").dialog({zIndex:900}); 

    方法二:

    1. .datepicker({  
    2. beforeShow: function (i, e) {  
    3. var z = jQuery(i).closest(".ui-dialog").css("z-index") + 4;  
    4. e.dpDiv.css('z-index', z);  
    5. }  
    6. })  

    六.下载

    原文链接:http://www.cnblogs.com/iamzhanglei/archive/2010/06/15/1758645.html

    posted on 2012-06-12 11:45  蓝色信仰  阅读(138)  评论(0)    收藏  举报