45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 设计学院 > 网页特效 >

jquery实现文本框弹出热门标签的提示效果

电脑软硬件应用网 45IT.COM 时间:2010-04-05 08:46 作者:网络收集

基于jQuery的表单提示特效,点击文本框后会出现一些热门的标签供选择,类似于下拉框提示,了解了如何实现的这一效果,你就可很好的改变提示的内容了。

效果图如下:

代码如下:

 <!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">
<head>
<title>jQuery提示示例:点击文本框弹出热门标签</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<style type="text/css">
body {
 font-size:12px;
}
#m_tagsItem {
 background:#fff;
 position:absolute;
 top:0px;
 left:0px;
 overflow:hidden;
 width:590px;
 *width:561px;
 width:561px\9;
 padding:10px;
 border:1px solid #ccc;
 z-index:1000;
 display:none;
}
#m_tagsItem p {
 text-align:left;
 line-height:22px;
 padding:2px 0;
 margin:0;
 border:0;
}
#m_tagsItem span {
 font-weight:bold;
}
#m_tagsItem a {
 margin:0 5px;
}
.m_tagsname {
 color:#999;
 vertical-align:middle;
 font-size:12px;
 text-indent:3px;
 line-height:20px;
}
#tagClose {
 font-size:12px;
 color:#888;
 cursor:pointer;
 position:absolute;
 top:2px;
 right:2px;
}
</style>
<script src="http://www.codefans.net/ajaxjs/jquery1.3.2.js"></script>
<script language="javascript">
//Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
(function($){
$.fn.bgIframe = $.fn.bgiframe = function(s) {
 // This is only for IE6
 if ( $.browser.msie && /6.0/.test(navigator.userAgent) ) {
  s = $.extend({
   top     : 'auto', // auto == .currentStyle.borderTopWidth
   left    : 'auto', // auto == .currentStyle.borderLeftWidth
   width   : 'auto', // auto == offsetWidth
   height  : 'auto', // auto == offsetHeight
   opacity : true,
   src     : 'javascript:false;'
  }, s || {});
  var prop = function(n){return n&&n.constructor==Number?n+'px':n;},
      html = '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+
                 'style="display:block;position:absolute;z-index:-1;'+
                  (s.opacity !== false?'filter:Alpha(Opacity=\'0\');':'')+
            'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+
            'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+
            'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+
            'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+
     '"/>';
  return this.each(function() {
   if ( $('> iframe.bgiframe', this).length == 0 )
    this.insertBefore( document.createElement(html), this.firstChild );
  });
 }
 return this;
};
})(jQuery);
jQuery.fn.selectCity = function(targetId) {
 var _seft = this;
 var targetId = $(targetId);
 this.click(function(){
  var A_top = $(this).offset().top + $(this).outerHeight(true);  //  1
  var A_left =  $(this).offset().left;
  targetId.bgiframe();
  targetId.show().css({"position":"absolute","top":A_top+"px" ,"left":A_left+"px"});
 });
 targetId.find("#tagClose").click(function(){
  targetId.hide();
 });
 $(document).click(function(event){
  if(event.target.id!=_seft.selector.substring(1)){
   targetId.hide(); 
  }
 });
 targetId.click(function(e){
  e.stopPropagation(); //  2
 });
    return this;
}
$(function(){
 $("#selecttags").selectCity("#m_tagsItem");
});
//为文本域连续赋值
function checktag(o){
  var tagid = function(id){return document.getElementById(id);}
  var tags = [];//存放标签,避免重复加入
  var tagidSPLITCHAR = ' ';//设定分隔符,根据程序需求可改
  var d = tagid('selecttags');
  if (d.value)
    tags = d.value.split(tagidSPLITCHAR);
  var v = o.innerHTML;//如果tag有别的值或者别的非innerHTML里体现的内容
    var s = tagidSPLITCHAR+tags.join(tagidSPLITCHAR)+tagidSPLITCHAR
    if (!new RegExp(tagidSPLITCHAR+v+tagidSPLITCHAR,'g').test(s)){
      s+=v;
    }
    s = s.replace(new RegExp("(^"+tagidSPLITCHAR+"*|"+tagidSPLITCHAR+"*tagid)","g"),'');
    d.value = s;
    tags = s.split(tagidSPLITCHAR);
}
 </script>
</head>
<body>
如果没有出现提示框请刷新一下页面再试~
<input type="text" id="selecttags" name="m_tagsname" class="m_tagsname" style="width:577px" value="点击查看热门标签和您曾经使用过的标签" onClick="if(this.value=='点击查看热门标签和您曾经使用过的标签'){this.value='';this.className='m_tagsname'}">
<div id="m_tagsItem" style="display:none">
  <div id="tagClose">关闭</div>
  <p><span>温馨提示:</span>标签间请用“空格”、“逗号”或“分号”隔开,用简练的词语概括您的博文内容。</p>
  <p><span>热门标签:</span><a href="javascript:void(0)" onClick="checktag(this)">彩妆</a><a href="javascript:void(0)" onClick="checktag(this)">美发</a><a href="javascript:void(0)" onClick="checktag(this)">美优博客</a><a href="javascript:void(0)" onClick="checktag(this)">aaa</a><a href="javascript:void(0)" onClick="checktag(this)">bbb</a><a href="javascript:void(0)" onClick="checktag(this)">学IT网</a><a href="javascript:void(0)" onClick="checktag(this)">xueit.com</a><a href="javascript:void(0)" onClick="checktag(this)">eee</a><a href="javascript:void(0)" onClick="checktag(this)">fff</a><a href="javascript:void(0)" onClick="checktag(this)">ggg</a></p>
  <p><span>您使用过的标签:</span><a href="javascript:void(0)" onClick="checktag(this)">软件</a><a href="javascript:void(0)" onClick="checktag(this)">Delphi</a><a href="javascript:void(0)" onClick="checktag(this)">博客</a><a href="javascript:void(0)" onClick="checktag(this)">源码</a><a href="javascript:void(0)" onClick="checktag(this)">彩妆</a><a href="javascript:void(0)" onClick="checktag(this)">google</a><a href="javascript:void(0)" onClick="checktag(this)">新浪</a></p>
</div>
</body>
</html>

顶一下
(0)
0%
踩一下
(1)
100%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
你可能感兴趣的文章
推荐知识