基于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 相关文章推荐
超强的IE背景图片闪烁(抖动)的解决办法
Sep 09 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
May 24 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
Dec 09 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
Apr 16 Javascript
Jquery元素追加和删除的实现方法
May 24 Javascript
jquery动态创建div与input的实例代码
Oct 12 Javascript
浅谈javascript中的 “ &amp;&amp; ” 和 “ || ”
Feb 02 Javascript
react实现pure render时bind(this)隐患需注意!
Mar 09 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
Jul 20 Javascript
微信小程序之swiper轮播图中的图片自适应高度的方法
Apr 23 Javascript
Vue源码分析之Vue实例初始化详解
Aug 25 Javascript
vue中使用vue-print.js实现多页打印
Mar 05 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 默默经典版本
2009/08/04 PHP
php实现的click captcha点击验证码类实例
2014/09/23 PHP
农历与西历对照
2006/09/06 Javascript
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
用JQuery实现表格隔行变色和突出显示当前行的代码
2012/02/10 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
JSON与XML优缺点对比分析
2015/07/17 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
React快速入门教程
2017/01/17 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
React/Redux应用使用Async/Await的方法
2017/11/16 Javascript
JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
2018/07/23 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
怎么使用javascript深度拷贝一个数组
2019/06/06 Javascript
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
python多重继承实例
2014/10/11 Python
深入理解python try异常处理机制
2016/06/01 Python
python验证码识别的实例详解
2016/09/09 Python
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
2017/12/12 Python
django反向解析和正向解析的方式
2018/06/05 Python
python列表使用实现名字管理系统
2019/01/30 Python
python模块hashlib(加密服务)知识点讲解
2019/11/25 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
python字典按照value排序方法
2020/12/28 Python
浅谈Python xlwings 读取Excel文件的正确姿势
2021/02/26 Python
Shopty西班牙:缝纫机在线销售
2018/01/26 全球购物
Python面试题:Python里面如何生成随机数
2015/03/12 面试题
幼儿园评语大全
2014/04/17 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android