基于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 相关文章推荐
jquery div 居中技巧应用介绍
Nov 24 Javascript
JSON中双引号的轮回使用过程中一定要小心
Mar 05 Javascript
jQuery入门基础知识学习指南
Aug 14 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
Mar 07 Javascript
基于BootStrap实现局部刷新分页实例代码
Aug 08 Javascript
原生JS取代一些JQuery方法的简单实现
Sep 20 Javascript
jquery checkbox的相关操作总结
Oct 17 Javascript
js调用父框架函数与弹窗调用父页面函数的简单方法
Nov 01 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
Dec 02 Javascript
详解JavaScript中的属性和特性
Dec 08 Javascript
js学习总结_基于数据类型检测的四种方式(必看)
Jul 04 Javascript
基于JavaScript实现表格隔行换色
May 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
PHP4与PHP5的时间格式问题
2008/02/17 PHP
php smarty模版引擎中的缓存应用
2009/12/02 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
2014/04/21 PHP
PHP实现定时执行任务的方法
2014/10/05 PHP
准确获得页面、窗口高度及宽度的JS
2006/11/26 Javascript
FLASH 广告之外的链接
2008/12/16 Javascript
JavaScript的类型简单说明
2010/09/03 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
解决JavaScript数字精度丢失问题的方法
2015/12/03 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
2017/02/16 Javascript
js 数字、字符串、布尔值的转换方法(必看)
2017/04/07 Javascript
VUE长按事件需求详解
2017/10/18 Javascript
vue拖拽排序插件vuedraggable使用方法详解
2020/08/21 Javascript
关于vue3默认把所有onSomething当作v-on事件绑定的思考
2020/05/15 Javascript
JavaScript如何实现监听键盘输入和鼠标监点击
2020/07/20 Javascript
[05:08]第一届“网鱼杯”DOTA2比赛精彩集锦
2014/09/05 DOTA
举例讲解Python中的list列表数据结构用法
2016/03/12 Python
Python下的Softmax回归函数的实现方法(推荐)
2017/01/26 Python
详解python 字符串和日期之间转换 StringAndDate
2017/05/04 Python
Python利用公共键如何对字典列表进行排序详解
2018/05/19 Python
Python3 执行系统命令并获取实时回显功能
2019/07/09 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
scikit-learn线性回归,多元回归,多项式回归的实现
2019/08/29 Python
使用python脚本自动创建pip.ini配置文件代码实例
2019/09/20 Python
django框架auth模块用法实例详解
2019/12/10 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
python Gabor滤波器讲解
2020/10/26 Python
Python扫描端口的实现
2021/01/25 Python
html5 touch事件实现页面上下滑动效果【附代码】
2016/03/10 HTML / CSS
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
信息与计算科学专业推荐信
2014/02/23 职场文书
校庆标语集锦
2014/06/25 职场文书
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python