基于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 相关文章推荐
JQuery与Ajax常用代码实现对比
Oct 03 Javascript
jQuery 页面 Mask实现代码
Jan 09 Javascript
基于jquery的兼容各种浏览器的iframe自适应高度的脚本
Aug 13 Javascript
Javascript面象对象成员、共享成员变量实验
Nov 19 Javascript
ajax请求get与post的区别总结
Nov 04 Javascript
AngularJS基础 ng-show 指令简单示例
Aug 03 Javascript
Bootstrap多级菜单的实现代码
May 23 Javascript
vue输入节流,避免实时请求接口的实例代码
Oct 30 Javascript
Vue+Java+Base64实现条码解析的示例
Sep 23 Javascript
JS实现页面侧边栏效果探究
Jan 08 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
Feb 05 Javascript
Vue单页面应用中实现Markdown渲染
Feb 14 Vue.js
纯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
15个小时----从修改程序到自己些程序
2006/10/09 PHP
使用cookie实现统计访问者登陆次数
2013/06/08 PHP
php中sprintf与printf函数用法区别解析
2014/02/17 PHP
php递归函数怎么用才有效
2018/02/24 PHP
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
2007/04/01 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
2016/05/12 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
webpack external模块的具体使用
2018/03/10 Javascript
layer.js之回调销毁对话框的例子
2019/09/11 Javascript
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
详解React中共享组件逻辑的三种方式
2021/02/02 Javascript
[02:07]2018DOTA2亚洲邀请赛主赛事第三日五佳镜头 fy极限反杀
2018/04/06 DOTA
python实现的系统实用log类实例
2015/06/30 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
Python处理文本换行符实例代码
2018/02/03 Python
详解基于django实现的webssh简单例子
2018/07/17 Python
对python调用RPC接口的实例详解
2019/01/03 Python
python连接、操作mongodb数据库的方法实例详解
2019/09/11 Python
pandas 缺失值与空值处理的实现方法
2019/10/12 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
模具专业毕业推荐信
2014/03/08 职场文书
师德演讲稿范文
2014/05/06 职场文书
开发房地产协议书
2014/09/14 职场文书
教师个人查摆剖析材料
2014/10/14 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang
spring boot实现文件上传
2022/08/14 Java/Android