基于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 相关文章推荐
jCallout 轻松实现气泡提示功能
Sep 22 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
Nov 18 Javascript
JS按回车键实现登录的方法
Aug 25 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
May 08 Javascript
javascript中使用new与不使用实例化对象的区别
Jun 22 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
Sep 23 Javascript
JavaScript中关键字 in 的使用方法详解
Oct 17 Javascript
JS 全屏和退出全屏详解及实例代码
Nov 07 Javascript
JS匿名函数类生成方式实例分析
Nov 26 Javascript
js+css3实现旋转效果
Jan 20 Javascript
Vue 全家桶实现移动端酷狗音乐功能
Nov 16 Javascript
JS实现音量控制拖动
Jan 15 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使用curl抓取qq空间的访客信息示例
2014/02/28 PHP
php+xml编程之xpath的应用实例
2015/01/24 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
editable.js 基于jquery的表格的编辑插件
2011/10/24 Javascript
Javascript通过overflow控制列表闭合与展开的方法
2015/05/15 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
微信小程序 获取相册照片实例详解
2016/11/16 Javascript
用file标签实现多图文件上传预览
2017/02/14 Javascript
深入理解React中何时使用箭头函数
2017/08/23 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
vue项目中播放rtmp视频文件流的方法
2020/09/17 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
Python中使用 Selenium 实现网页截图实例
2014/07/18 Python
django允许外部访问的实例讲解
2018/05/14 Python
美国钻石商店:Zales
2016/11/20 全球购物
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
美国林业供应商:Forestry Suppliers
2019/05/01 全球购物
食堂员工工作职责
2013/12/18 职场文书
一夜的工作教学反思
2014/02/08 职场文书
消防宣传口号
2014/06/16 职场文书
英文邀请函
2015/02/02 职场文书
幼师辞职信范文
2015/02/27 职场文书
幼师自荐信范文
2015/03/06 职场文书
同学聚会通知书
2015/04/20 职场文书
导游词之茶卡盐湖
2019/11/26 职场文书
go设置多个GOPATH的方式
2021/05/05 Golang
SpringBoot整合Minio文件存储
2022/04/03 Java/Android