基于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 相关文章推荐
一个可以显示阴历的JS代码
Mar 05 Javascript
ASP.NET jQuery 实例12 通过使用jQuery validation插件简单实现用户注册页面验证功能
Feb 03 Javascript
jQuery提示插件alertify使用指南
Apr 21 Javascript
PHP结合jQuery实现红蓝投票功能特效
Jul 22 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
Aug 07 Javascript
js获取url传值的方法
Dec 18 Javascript
关于JS中的apply,call,bind的深入解析
Apr 05 Javascript
AngularJs的UI组件ui-Bootstrap之Tooltip和Popover
Jul 13 Javascript
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 jQuery
如何换个角度使用VUE过滤器详解
Sep 11 Javascript
JS函数进阶之继承用法实例分析
Jan 15 Javascript
js实现踩五彩块游戏
Feb 08 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数据库连接
2006/10/09 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
php实现爬取和分析知乎用户数据
2016/01/26 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
雄兵连第三季海报曝光,艾妮熙德成主角,蔷薇新造型
2021/03/09 国漫
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
JavaScript获取数组最小值和最大值的方法
2015/06/09 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
2015/09/26 Javascript
jQuery处理XML文件的几种方法
2016/06/14 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
2017/11/15 Javascript
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
2020/05/18 Javascript
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
python检测远程udp端口是否打开的方法
2015/03/14 Python
python的多重继承的理解
2017/08/06 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
Python实现确认字符串是否包含指定字符串的实例
2018/05/02 Python
python障碍式期权定价公式
2019/07/19 Python
使用Python制作一个打字训练小工具
2019/10/01 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
html5 音乐播放器 audio 标签使用概述
2013/07/15 HTML / CSS
eBay奥地利站:eBay.at
2019/07/24 全球购物
幼儿园中秋节活动反思
2014/02/16 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
公司副总经理任命书
2014/06/05 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
村道德模范事迹材料
2014/08/28 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书