基于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移除事件 js绑定事件实例应用
Nov 28 Javascript
Javascript代码在页面加载时的执行顺序介绍
May 03 Javascript
JavaScript中的方法调用详细介绍
Dec 30 Javascript
基于jquery实现省市联动特效
Dec 17 Javascript
表单中单选框添加选项和移除选项
Jul 04 Javascript
bootstrap中使用google prettify让代码高亮的方法
Oct 21 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
Oct 24 Javascript
最后说说Vue2 SSR 的 Cookies 问题
May 25 Javascript
微信小程序中this.data与this.setData的区别详解
Sep 17 Javascript
从0到1构建vueSSR项目之路由的构建
Mar 07 Javascript
微信小程序实现的图片保存功能示例
Apr 24 Javascript
jQuery中使用validate插件校验表单功能
May 24 jQuery
纯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
如何使用Strace调试工具
2013/06/03 PHP
php实现的返回数据格式化类实例
2014/09/22 PHP
PHP将进程作为守护进程的方法
2015/03/19 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
2019/08/30 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
javascript 关闭IE6、IE7
2009/06/01 Javascript
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
javascript返回顶部的按钮实现方法
2016/01/09 Javascript
JS实现title标题栏文字不间断滚动显示效果
2016/09/07 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
解决Vue 通过下表修改数组,页面不渲染的问题
2018/03/08 Javascript
Vue.js中的computed工作原理
2018/03/22 Javascript
详解js访问对象的属性和方法
2018/10/25 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
[01:04:14]VP vs TNC 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python线程中对join方法的运用的教程
2015/04/09 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
python 批量添加的button 使用同一点击事件的方法
2019/07/17 Python
python判断正负数方式
2020/06/03 Python
美国钻石商店:Zales
2016/11/20 全球购物
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
澳大利亚家具和家居用品在线:BROSA
2017/11/02 全球购物
全球度假村:Club Med
2017/11/27 全球购物
美国婴童服装市场上的领先品牌:Carter’s
2018/02/08 全球购物
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
光电信息专业应届生求职信
2013/10/07 职场文书
安全生产目标责任书
2014/04/14 职场文书
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL