基于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 27 Javascript
javascript获取隐藏dom的宽高 具体实现
Jul 14 Javascript
在JS数组特定索引处指定位置插入元素
Jul 27 Javascript
15款jQuery分布引导插件分享
Feb 04 Javascript
js实现超酷的照片墙展示效果图附源码下载
Oct 08 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
Jun 20 Javascript
javascript获取网页各种高宽及位置的方法总结
Jul 27 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
Dec 31 Javascript
在一个页面重复使用一个js函数的方法详解
Dec 26 Javascript
Node.js查找当前目录下文件夹实例代码
Mar 07 Javascript
基于Vue实现timepicker
Apr 25 Javascript
vue组件父与子通信详解(一)
Nov 07 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
简单的页面缓冲技术
2006/10/09 PHP
通过PHP CLI实现简单的数据库实时监控调度
2009/07/01 PHP
Wordpress php 分页代码
2009/10/21 PHP
php 学习资料零碎东西
2010/12/04 PHP
关于JSON以及JSON在PHP中的应用技巧
2013/11/27 PHP
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
如何使用php等比例缩放图片
2016/10/12 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
PHP实现多级分类生成树的方法示例
2017/02/07 PHP
phpinfo无法显示的原因及解决办法
2019/02/15 PHP
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
从数据结构的角度分析 for each in 比 for in 快的多
2013/07/07 Javascript
实用jquery操作表单元素的简单代码
2016/07/04 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
JS中如何实现Laravel的route函数详解
2017/02/12 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
详解处理Vue单页面应用SEO的另一种思路
2018/11/09 Javascript
vue基础之事件v-onclick=&quot;函数&quot;用法示例
2019/03/11 Javascript
微信小程序开发注意指南和优化实践(小结)
2019/06/21 Javascript
vue实现简单的日历效果
2020/09/24 Javascript
微信小程序跨页面传递data数据方法解析
2019/12/13 Javascript
Pandas之drop_duplicates:去除重复项方法
2018/04/18 Python
python中的协程深入理解
2019/06/10 Python
python绘制规则网络图形实例
2019/12/09 Python
python getopt模块使用实例解析
2019/12/18 Python
捐赠仪式主持词
2014/03/19 职场文书
建筑施工安全责任书
2014/07/24 职场文书
先进学校事迹材料
2014/12/30 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
如何用JS实现简单的数据监听
2021/05/06 Javascript
解读Vue组件注册方式
2021/05/15 Vue.js