基于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 相关文章推荐
[原创]图片分页查看
Aug 28 Javascript
Javascript代码混淆综合解决方案-Javascript在线混淆器
Dec 18 Javascript
浅析用prototype定义自己的方法
Nov 14 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
Dec 08 Javascript
javascript基于原型链的继承及call和apply函数用法分析
Dec 15 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
Jan 23 Javascript
Vue之Watcher源码解析(1)
Jul 19 Javascript
解读ES6中class关键字
Nov 20 Javascript
vue项目实战总结篇
Feb 11 Javascript
解决layui弹框失效的问题
Sep 09 Javascript
weui中的picker使用js进行动态绑定数据问题
Nov 06 Javascript
vue实现简单跑马灯效果
May 25 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
织梦sitemap地图实时推送给百度的教程
2015/08/03 PHP
zen_cart实现支付前生成订单的方法
2016/05/06 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
javascript题目,重写函数让其无限相加
2012/02/15 Javascript
JS Map 和 List 的简单实现代码
2013/07/08 Javascript
Angularjs中如何使用filterFilter函数过滤
2016/02/06 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
jQuery事件处理的特征(事件命名机制)
2016/08/23 Javascript
利用js+css+html实现固定table的列头不动
2016/12/08 Javascript
js 只比较时间大小的实例
2017/10/26 Javascript
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
React组件对子组件children进行加强的方法
2019/06/23 Javascript
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
利用QT写一个极简单的图形化Python闹钟程序
2015/04/07 Python
解决Python 遍历字典时删除元素报异常的问题
2016/09/11 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
python+OpenCV实现车牌号码识别
2019/11/08 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
python字典与json转换的方法总结
2020/12/28 Python
CSS3实现可翻转的hover效果
2018/05/23 HTML / CSS
思想政治自我鉴定
2013/10/06 职场文书
人事档案接收函
2014/01/12 职场文书
新员工入职感言
2014/02/01 职场文书
女子职高个人自荐书
2014/02/01 职场文书
测绘专业大学生职业生涯规划书
2014/02/10 职场文书
员工开除通知书
2015/04/25 职场文书
运动会宣传稿100字
2015/07/23 职场文书
2015年六年级班主任工作总结
2015/10/15 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
react国际化react-intl的使用
2021/05/06 Javascript
深入解析Apache Hudi内核文件标记机制
2022/03/31 Servers