基于javascript制作微博发布栏效果


Posted in Javascript onApril 04, 2016

本文为大家分享了做微博发布栏效果的过程,涉及到的知识点包括以下:

1.判断IE的方法:直接用  var ie=!-[1,];即可

2.连续发生事件的用法:

 IE下:触发对象.onpropertychange

 标准下:触发对象.oninput

3.焦点聚集和移开事件。onfocus和onblur

4.判断单字节(0-255之间)与双子节:正则表达式:/[^\x00-\xff]/g

代码如上:

<!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>
<style>
#div1{width: 400px;margin: 20px auto;border: 1px solid #ccc}
#div1 p{float: right;margin: 0;font-size: 13px;}
#div1 textarea{width: 400px;height: 280px;}
#div1 a{background: #ccc;float: right;color: #FFFFFF;text-align: center;background: #00FF00;width: 50px;height: 30px}
#div1 a.dis{background: #ccc;color: black;}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
window.onload=function ()
{
    var oDiv=document.getElementById('div1');
    var oP=oDiv.getElementsByTagName('p')[0];
    var oT=oDiv.getElementsByTagName('textarea')[0];
    var oA=oDiv.getElementsByTagName('a')[0];
    var bool=true;
    var ie=!-[1,];
    var timer=null;
    var num=0;
    //给文本框加聚焦事件
    oT.onfocus=function()
    {
     if(bool)
     {
      oP.innerHTML='你还可以输入<span>90</span>字';
      bool=false;
     } 

    }
     oT.onblur=function()
    {
     if(oT.value=='')
     {
      oP.innerHTML='请输入你的留言';
      bool=true;
     } 

    }
    //输入内容,计算字数
    if(ie)
    {
     oT.onpropertychange=toChange;//连续触发
    }
    else
    {
    oT.oninput=toChange;
    }
    function toChange()
    {
       var num=Math.ceil(getLength(oT.value)/2);//向上取整
       var oSpan=oDiv.getElementsByTagName('span')[0];
       if(num<=90)
       {
        oSpan.innerHTML=90-num;
        oSpan.style.color='';
       }
      else
      {
        oSpan.innerHTML=num-90;
        oSpan.style.color='red';
      }
      if(oT.value==''||num>90)
      {
      oA.className='dis';
      }
      else
      {
       oA.className='';
      }

    }
    function getLength(str)
    {
    return String(str).replace(/[^\x00-\xff]/,'aa').length;//不是单双节的将其变为两个单双节的
    }
    //点击按钮,变色
    oA.onclick=function()
    {
      if(this.className=='dis')
      {
        clearInterval(timer);
        timer=setInterval(function(){
          if(num>5){clearInterval(timer);num=0;}
          else{
            num++;
          }
          if(num%2)
          {
            oT.style.background='red';
          }
          else
          {
             oT.style.background='';
          }

        },100)
      }
      else
      {
        alert('发布成功');
      }
    }
    
}
</script>
</head>
<body >
<div id='div1'>
 <p>请输入你的留言</p>
 <textarea></textarea>
 <a href="#" class="dis">发布</a>
</div>
 
 
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
JavaScript入门学习书籍推荐
Jun 12 Javascript
jsTree树控件(基于jQuery, 超强悍)[推荐]
Sep 01 Javascript
Jquery+JSon 无刷新分页实现代码
Apr 01 Javascript
不同Jquery版本引发的问题解决
Oct 14 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
Nov 04 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
Apr 29 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
Nov 04 Javascript
vue中eventbus被多次触发以及踩过的坑
Dec 02 Javascript
利用vscode调试编译后的js代码详解
May 14 Javascript
使用ng-packagr打包Angular的方法示例
Sep 21 Javascript
教你完全理解ReentrantLock重入锁
Jun 03 Javascript
小程序双头slider选择器的实现示例
Mar 31 Javascript
纯js实现手风琴效果
Apr 17 #Javascript
AngularJS中的$watch(),$digest()和$apply()区分
Apr 04 #Javascript
Angular 根据 service 的状态更新 directive
Apr 03 #Javascript
jQuery中的Deferred和promise 的区别
Apr 03 #Javascript
再次谈论React.js实现原生js拖拽效果引起的一系列问题
Apr 03 #Javascript
jQuery qrcode生成二维码的方法
Apr 03 #Javascript
Node.js 应用跑得更快 10 个技巧
Apr 03 #Javascript
You might like
用PHP和ACCESS写聊天室(九)
2006/10/09 PHP
Zend Studio 无法启动的问题解决方法
2008/12/04 PHP
一个PHP分页类的代码
2011/05/18 PHP
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
PHP使用PHPMailer发送邮件的简单使用方法
2013/11/12 PHP
ThinkPHP中自定义错误页面和提示页面实例
2014/11/22 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
利用PHP扩展Xhprof分析项目性能实践教程
2018/09/05 PHP
jquery实现excel导出的方法
2013/04/04 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
JavaScript中“过于”犀利地for/in循环使用示例
2013/10/22 Javascript
JavaScript转换二进制编码为ASCII码的方法
2015/04/16 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
JS实现简单的二元方程计算器功能示例
2017/01/03 Javascript
AngularJS实现根据不同条件显示不同控件
2017/04/20 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
浅谈vue-props的default写不写有什么区别
2020/08/09 Javascript
Python的Bottle框架中获取制定cookie的教程
2015/04/24 Python
python实现井字棋游戏
2020/03/30 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
浅谈利用numpy对矩阵进行归一化处理的方法
2018/07/11 Python
django连接mysql配置方法总结(推荐)
2018/08/18 Python
Python使用python-docx读写word文档
2019/08/26 Python
python Canny边缘检测算法的实现
2020/04/24 Python
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
进步之星获奖感言
2014/02/22 职场文书
书香家庭事迹材料
2014/05/09 职场文书
社会实践活动总结范文
2014/07/03 职场文书
党员自我剖析材料(群众路线)
2014/10/06 职场文书
2014年财务科工作总结
2014/11/11 职场文书
毕业生评语大全
2015/01/04 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
母婴行业实体、电商模式全面解析
2019/08/01 职场文书
python周期任务调度工具Schedule使用详解
2021/11/23 Python