基于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 相关文章推荐
5个javascript的数字格式化函数分享
Dec 07 Javascript
深入理解JavaScript系列(6) 强大的原型和原型链
Jan 15 Javascript
获取数组中最大最小值方法js代码(自写)
Aug 12 Javascript
JavaScript中的ubound函数使用实例
Nov 04 Javascript
JavaScript与HTML的结合方法详解
Nov 23 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
Apr 08 Javascript
JavaScript动态添加css样式和script标签
Jul 19 Javascript
深入理解javascript函数参数与闭包
Dec 12 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
May 15 Javascript
使用Vue.js中的过滤器实现幂方求值的方法
Aug 27 Javascript
jQuery实现开关灯效果
Aug 02 jQuery
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
Sep 28 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 include的妙用,实现路径加密
2008/07/29 PHP
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
PHP类中的魔术方法(Magic Method)简明总结
2014/07/08 PHP
Yii rules常用规则示例
2016/03/15 PHP
thinkphp3.2实现上传图片的控制器方法
2016/04/28 PHP
浅谈php中fopen不能创建中文文件名文件的问题
2017/02/06 PHP
破解Session cookie的方法
2006/07/28 Javascript
Javascript 面向对象之重载
2010/05/04 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
jQuery学习笔记之jQuery动画效果
2013/09/09 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
解决ele ui 表格表头太长问题的实现
2019/11/13 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
Vue触发input选取文件点击事件操作
2020/08/07 Javascript
优化Python代码使其加快作用域内的查找
2015/03/30 Python
Python实现身份证号码解析
2015/09/01 Python
Python中shutil模块的常用文件操作函数用法示例
2016/07/05 Python
机器学习之KNN算法原理及Python实现方法详解
2018/07/09 Python
Python中利用aiohttp制作异步爬虫及简单应用
2018/11/29 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
基于python 微信小程序之获取已存在模板消息列表
2019/08/05 Python
python构造IP报文实例
2020/05/05 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
python基本算法之实现归并排序(Merge sort)
2020/09/01 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
c语言常见笔试题总结
2016/09/05 面试题
公司采购主管岗位职责
2014/06/17 职场文书
党员十八大心得体会
2014/09/12 职场文书
2014年小学班主任工作总结
2014/11/08 职场文书
2014年机关后勤工作总结
2014/12/16 职场文书
酒店辞职书范文
2015/02/26 职场文书
详解vue身份认证管理和租户管理
2021/05/25 Vue.js
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记
IDEA中sout快捷键无效问题的解决方法
2022/07/23 Java/Android