今天跟着张鑫旭的代码练习了新浪的几个小小地方

了解了键盘事件onkeydown,onkeyup.getElementsByTagname("em")返回的是集合,集合,使用的时候记得加a[0]下标。

setTimeout(step2,400);是400毫秒后在调用step2函数。
parseInt(sedNum,x)转换成 x 进制的数值,parseString()等

要有封装的思想。

---------------别人代码---------------------
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="description" content="JavaScript实现新浪微博文字放大显示动画效果" /><meta name="description" content="张鑫旭web前端学习之css,jQuery,JavaScript" /><meta name="keywords" content="张鑫旭,鑫空间-鑫生活,博客,web前端,css,jQuery,,JavaScript,demo页面,学习" /><meta name="author" content="张鑫旭,zhangxixnu" /><title>JavaScript实现新浪微博文字放大显示动画效果</title><link rel="shortcut icon" href="http://www.zhangxinxu.com/zxx_ico.png" /><link rel="stylesheet" href="http://simg.sinajs.cn/miniblog/css/common/common.css?version=1.1.2.72" /><link rel="stylesheet" href="http://simg.sinajs.cn/miniblog/css/index/index.css?version=1.1.2.72" /><link rel="stylesheet" href="http://simg.sinajs.cn/miniblog/skin/skin_001/skin.css?version=1.1.2.72" /></head>

<div class="bigBg">    <div class="mblog">        <div class="toptray">            <div class="toptrayBg"></div>            <div class="toptrayMain">                <div class="tTray_R">                        <div class="MnbTit">                        <ul>                            <li><a href="javascript:void(0);">新浪微博</a></li>                            <li class="banLine">                                <img height="11" width="2" src="http://simg.sinajs.cn/miniblog/images/common/toptray/bannerLine.gif"/>                            </li>                            <li><a href="javascript:void(0);">我的首页</a></li>                            <li class="banLine">                                <img height="11" width="2" src="http://simg.sinajs.cn/miniblog/images/common/toptray/bannerLine.gif"/>                            </li>                            <li><a href="javascript:void(0);">我的微博</a></li>                            <li class="banLine">                                <img height="11" width="2" src="http://simg.sinajs.cn/miniblog/images/common/toptray/bannerLine.gif"/>                            </li>                                                <li><a href="javascript:void(0);">随便看看</a></li>                        </ul>                     </div>                </div>                        <div class="BanCont">                    <ul>                                <li><a href="javascript:void(0);">设置</a></li>                        <li class="banLine"><img height="11" width="2" src="http://simg.sinajs.cn/miniblog/images/common/toptray/bannerLine.gif"/></li>                        <li><a href="javascript:void(0);">手机</a></li>                        <li class="banLine"><img height="11" width="2" src="http://simg.sinajs.cn/miniblog/images/common/toptray/bannerLine.gif"/></li>                        <li><a href="javascript:void(0);">找朋友</a></li>                        <li class="banLine"><img height="11" width="2" src="http://simg.sinajs.cn/miniblog/images/common/toptray/bannerLine.gif"/></li>                            <li><a target="_blank" href="javascript:void(0);">帮助</a></li>                        <li class="banLine"><img height="11" width="2" src="http://simg.sinajs.cn/miniblog/images/common/toptray/bannerLine.gif"/></li>                        <li><a href="javascript:void(0);">退出</a></li>                    </ul>                </div>                <div class="tTray_L">                    <div id="m_search" class="search">                       <input type="text" value="搜索话题、朋友..." id="m_keyword" class="fm_txt"/>                        <div class="searchBtn"><a id="m_submit" href="javascript:void(0);">搜索</a></div>                    </div>                </div>            </div>        </div>         <!-- logo部分 -->        <div class="bigName">           <div id="fbq" class="logo"><a href="http://t.sina.com.cn/1263362863"></a></div>            <div class="searchFri"><a href="/invite/invite.php">邀请朋友关注我</a></div>        </div>    </div>    <!--  主体部分 -->   <div class="main">       <div class="mainBottomBg">              <!-- 左半部分 -->           <div class="mainL">               <div class="fbq">                   <div class="box_1"><!--php需要输出的提示文本--></div>                    <div id="publisher_info" class="fbqCount">你还可以输入<em class="bold">140</em>字</div>                    <div class="box_2">                        <textarea id="publish_editor"></textarea>                    </div>                    <div class="box_3">                       <span id="publisher_image" class="span_1" style="margin-left:20px;">                         <a unselectable="on" href="javascript:void(0);">插入图片</a>                      </span>                        <span id="publisher_topic" class="span_2">                         <a href="javascript:void(0);">插入话题</a>                      </span>                        <a id="publisher_submit" class="btn2" href="javascript:void(0);" style="float:right; margin-right:58px;"></a>                        <!-- <a id="publisher_submit" class="btn" href="javascript:void(0);"/> -->                    </div>                </div>                <div class="feedBox" id="feedBox">                   <div id="feedTitle" class="feedBoxNav">                  <span style="" id="feed_msg_new" class="spanFloat">                     <a href="javascript:void(0);">有新微博,刷新看看</a>                  </span>                         <span class="bold" style="color:#444444;">我的首页</span>                  <span>                   </span>                        <div class="mBlog_linedot"></div>                    </div>                    <div class="feedList">                        <div class="feedCell">                            <div class="avatar">                                <a href="http://t.sina.com.cn/zhangxinxu"><img title="张鑫旭" src="http://tt8.sinaimg.cn/1263362863/50/1253773643"/></a>                            </div>                             <div class="Contant">                                <div class="oriTxt">                                    <p>                                        <a title="我" href="http://t.sina.com.cn/zhangxinxu">我</a>:<span>刚翻译了一篇技术文章:让网络更快一些——最小化浏览器中的回流(reflow)                                         <a title="http://www.zhangxinxu.com/wordpress/?p=311" target="_blank" href="http://www.zhangxinxu.com/wordpress/?p=311">http://sinaurl.cn/hfGnM</a>                                        <a href="http://t.sina.com.cn/k/web">#web#</a>                                        <a href="http://t.sina.com.cn/k/%25E4%25BC%2598%25E5%258C%2596">#优化#</a>                                        <a href="http://t.sina.com.cn/k/reflow">#reflow#</a></span>                                    </p>                                </div>                                 <div class="from">                                    <span class="option">                                        <cite class="delete"><a href="javascript:void(0);">删除</a></cite>                                        |                                        <cite class="forward">转发</cite>                                        |                                        <cite class="collect"><a href="javascript:void(0);">收藏</a></cite>                                        |                                        <cite class="reply">                                            <a href="javascript:void(0);">评论</a>                                        </cite>                                    </span>                                    <span class="mycome"><cite><a href="#zhangxinxu">1分钟前</a></cite>来自新浪微博 </span>                                </div>                            </div>                           </div>                        <div class="mBlog_linedot"></div>                    </div>                </div>            </div>            <!-- 右半部分 -->            <div class="mainR">                  <div class="person2">                    <div class="person_content">                        <div class="person_head">                            <p class="userPt person_pt">                               <a href="javascript:void(0);"><img title="张鑫旭" src="http://tt8.sinaimg.cn/1263362863/50/1253773643"/></a>                            </p>                            <div class="person_info">                                <p class="person_nm"><strong>张鑫旭</strong></p>                                <p title="浙江 杭州" class="person_level">浙江 杭州</p>                            </div>                            <div class="clear"></div>                        </div>                                   <div class="person_atten">                            <div class="person_atten_l">                                <p class="num"><strong><a href="javascript:void(0);">792</a></strong></p>                                <p class="person_atten_link"><a href="javascript:void(0);">关注</a></p>                            </div>                            <div class="person_atten_l boxW">                                <p class="num"><strong><a href="javascript:void(0);">301</a></strong></p>                                <p class="person_atten_link"><a href="javascript:void(0);">粉丝</a></p>                            </div>                              <div class="person_atten_r" style="position: relative;">                                <p class="num">                                   <strong style="position:absolute; width:46px; height:28px; line-height:28px; left:-4px; top:-3px; text-align:center;">                                       <a href="javascript:void(0);" id="sendNum">166</a>                                        <a href="#no" id="absNum" style="position:absolute; width:46px; height:28px; left:0; top:0; display:none;"></a>                                   </strong>                                </p>                                <p></p>                                <p class="person_atten_link"><a href="javascript:void(0);">微博</a></p>                            </div>                            <div class="clear"></div>                        </div>                        <div class="boxRNav">                            <ul>                                <li class="navStyle"><span class="span_home">我的首页</span></li>                                <li class="navStyle2"><span class="span_mblog"><a href="/favs">我的收藏</a></span></li>                                <li class="navStyle2"><span class="span_mblog"><a href="/atme">@我的</a></span></li>                                <li class="navStyle2"><span id="toptray_ring" class="span_com"><a href="/comments">我的评论</a></span></li>                                <li class="navStyle2"><span id="toptray_ring_message" class="span_com"><a href="/messages">我的私信</a></span></li>                            </ul>                        </div>                    </div>                </div>                <!--话题列表-->                               <div class="f_pro">                    <div class="title bold">关于我</div>                    <div class="con">86出生,小小本科,本想做个生物学者,谁知大学误入歧途,进入了互联网行业,已无回头路,正朝着理想奋斗。</div>                    <div class="more"><a href="javascript:void(0);">修改</a>>></div>                </div>         </div>        </div>    </div></div><script type="text/javascript">   var weibo = {      insertBtn: document.getElementById("publisher_submit"),      insertArea : document.getElementById("publish_editor"),      insertRemind: document.getElementById("publisher_info"),      insertBody: document.getElementById("feedBox"),      insertTitle: document.getElementById("feedTitle"),      sendNum: document.getElementById("sendNum"),      absNum: document.getElementById("absNum")   };   //当文本域获取焦点后,当键盘松开时,判断里面的字符是否为空,从而改变按钮的显示状态和文字的个数   var wordLimit = function(obj,num,chg){      obj.onkeyup = function(){         weibo.insertText = weibo.insertArea.value;         if(obj.value.length >= 1){            if(obj.value.length > num){               chg.innerHTML = "已超出<em class=‘bold‘>" + (obj.value.length - num) + "</em>字";               chg.style.color = "#f00";               weibo.insertBtn.className = "btn2";            }else{               chg.innerHTML = "还可以输入<em class=‘bold‘>" + (num - obj.value.length) + "</em>字";               chg.style.color = "#fff";               weibo.insertBtn.className = "btn";            }         }else{            weibo.insertBtn.className = "btn2";             }      };      if(obj.value.length >= 1 && obj.value.length <=num){         chg.innerHTML = "还可以输入<em class=‘bold‘>" + (num - obj.value.length) + "</em>字";         chg.style.color = "#fff";         weibo.insertBtn.className = "btn";      }   };    //由于火狐,chrome浏览器在页面刷新时文本域中保留内容,故在加载时即验证一次   wordLimit(weibo.insertArea,140,weibo.insertRemind);   weibo.insertArea.onfocus = function(){      wordLimit(this,140,weibo.insertRemind);   };   weibo.insertBtn.onclick = function(){      if(this.className === "btn"){         insert();         number(weibo.absNum,weibo.sendNum,18,26);      }      return false;   };   var insert = function(){      weibo.insertText = weibo.insertArea.value;      weibo.insertHTML = ‘<div class="feedList"><div class="feedCell"><div class="avatar"><a href="http://t.sina.com.cn/zhangxinxu"><img title="张鑫旭" src="http://tt8.sinaimg.cn/1263362863/50/1253773643"/></a></div> <div class="Contant"><div class="oriTxt"><p>‘+weibo.insertText+‘</p></div><div class="from"><span class="option"><cite class="delete"><a href="javascript:void(0);">删除</a></cite> | <cite class="forward">转发</cite> | <cite class="collect"><a href="javascript:void(0);">收藏</a></cite> | <cite class="reply"><a href="javascript:void(0);">评论</a></cite></span><span class="mycome"><cite><a href="#zhangxinxu">1分钟前</a></cite>来自新浪微博 </span></div></div></div><div class="mBlog_linedot"></div>‘;      var insertDiv = document.createElement("div");      insertDiv.className = "feedList";      insertDiv.innerHTML = weibo.insertHTML;      weibo.insertBody.insertBefore(insertDiv,weibo.insertTitle.nextSibling);   };   var number = function(node,aim,minnum,maxnum){      var num = parseInt(aim.innerHTML,10);      aim.style.zoom = 1;      node.style.display = "inline-block";      node.innerHTML = num;      var fontSize = minnum;      var opacity = 1;      var step = function(){             fontSize+=1;         opacity-=0.09;         node.style.fontSize = fontSize + "px";         node.style.opacity = opacity;         aim.style.opacity = opacity;         node.style.filter = "Alpha(opacity="+opacity*100+")";         aim.style.filter = "Alpha(opacity="+opacity*100+")";         node.style.zoom = 1;         if(fontSize < maxnum){            setTimeout(step,40);         }else{            num+=1;            node.innerHTML = num;            aim.innerHTML = num;            setTimeout(step2,40);           }      };      setTimeout(step,10);      var step2 = function(){         fontSize-=1;         opacity+=0.09;         node.style.fontSize = fontSize + "px";         node.style.opacity = opacity;         aim.style.opacity = opacity;         node.style.filter = "Alpha(opacity="+opacity*100+")";         aim.style.filter = "Alpha(opacity="+opacity*100+")";         if(fontSize > minnum){            setTimeout(step2,40);         }else{            node.style.display = "none";         }      };   };</script><!--<script type="text/javascript">var textval=document.getElementById("publish_editor"),        fbbtn=document.getElementById("publisher_submit"),        numdiv=document.getElementById("publisher_info"),        numem=numdiv.getElementsByTagName("em"),        numlength=textval.value.length,        num=numem[0].innerHTML,        absNum=document.getElementById("absNum");

       textval.onkeyup=function(){            if(textval.value!=""){                fbbtn.className="btn";               var numlength=textval.value.length,                        num=numem[0].innerHTML;                if(numlength<=num){                    numem[0].innerHTML=(num-numlength);                }else{                    numdiv.innerHTML="您已经超出"+(numlength-num)+"字";                }            }else{                fbbtn.className="btn2";            }       }       if(numlength<=num){            numem[0].innerHTML=(num-numlength);       }       fbbtn.onclick=function(){           absNum.style.display="inline-block";           var sedNum=document.getElementById("sendNum").innerHTML;

           var minSize=18,maxSize=26;           var fontSize=minSize;           var afNum=parseInt(sedNum)+1;

           absNum.innerHTML=afNum;          var step=function(){              fontSize+=1;              absNum.style.fontSize=fontSize+"px";              if(fontSize<maxSize){                  setTimeout(step,400);              }else{                  document.getElementById("sendNum").innerHTML=afNum;                  setTimeout(step2,400);              }          }           setTimeout(step,10);           var step2=function(){               fontSize-=1;               absNum.style.fontSize=fontSize+"px";               if(fontSize>maxSize){                   setTimeout(step2,40);               }else{                   absNum.style.display="none";               }           }

       }

</script>--></body></html>
时间: 2024-10-20 14:06:56

今天跟着张鑫旭的代码练习了新浪的几个小小地方的相关文章

关于拜读张鑫旭文章,了解的新属性

昨天有幸拜读到张鑫旭写的就关于知乎10个问题的一篇文章(http://www.zhangxinxu.com/wordpress/2017/06/ten-question-about-frontend-zhihu/),感受颇深,也深深感受到自己的无知, 张大神主要致力于研究css和html,现在就总结2个张大神在文章中提到的两点: 1.unicode-bidi: 当看到这个属性的时候,真的是一脸懵,自己之前完全没有看到过,所以现在就了解一下,查unicode-bidi时就看到了关于directio

[转] 翻译-高质量JavaScript代码书写基本要点 ---张鑫旭

by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1173 原文作者:Stoyan Stefanov原文链接:The Essentials of Writing High Quality JavaScript翻译编辑:张鑫旭 //zxx: 俗不可耐的开场白就免了,直接进入翻译内容(其实是因为本文是在太..太..长了,). 教程相关细节主题:JavaScript最佳实践难度

《转》CSS元素水平垂直居中方法总结(主要对大漠以及张鑫旭博客所述方法进行了归纳)

转自大地Dudy的CSS元素水平垂直居中方法总结(主要对大漠以及张鑫旭博客所述方法进行了归纳) 本文主要是对主流居中方法进行了归纳,有些地方甚至就是把别人的代码直接复制过来的,没有什么自己的东西,除了大漠以及张鑫旭的方法外,还有来自司徒正美.怿飞博客的几个方法 以下方法,由于测试环境的原因,IE系列只测试了IE9和IE6,以下所说的IE的支持性只是相对于IE9和IE6来说的: 一.元素的水平垂直居中: 第一种方法: <!doctype html> <html lang="en&

IE6下png背景不透明——张鑫旭博客读书笔记

从今天开始跟着大牛张鑫旭的步伐,每天进步一点点 问题:IE6不支持png背景透明或半透明 一.可解决的方法 补充:css滤镜主要是用来实现图像的各种特殊效果.(了解) css滤镜的标识符是"filter",总体的应用上和其他的css语句相同.css滤镜可分为基本滤镜和高级滤镜两种.css滤镜分类 CSS滤镜 可以直接作用于对象上,并且立即生效的滤镜称为基本滤镜.而要配合JavaScript等脚本语言,能产生更多变幻效果的则称为高级滤镜. 只有IE可以完全的支持滤镜,Firefox支持部

web页面相关的一些常见可用字符介绍——张鑫旭

by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1623 正文开始之前先分享两个与字符相关的东西.首先是一张图片,是一张一些字符以及想对应的HTML实体表示的对照图片.如下: 然后是一个页面,是我收集的些杂七杂八字符页面,地址如下:http://www.zhangxinxu.com/sp/character.html 希望这两个东西能对您有所帮助,ok,下面是本文的主要

CSS元素水平垂直居中方法总结(方法主要来自大漠以及张鑫旭博客)

以下方法,由于测试环境的原因,IE系列只测试了IE9和IE6,以下所说IE的支持性只是相对于IE9和IE6来说的: 一.元素的水平垂直居中: 第一种方法:<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"&g

HTML5新增的form属性简介——张鑫旭

一.引言 HTML5中新增了一个名为form的属性,是一个与处理表单相关的元素. 在HTML4或XHTML中,我们要提交一个表单,必须把相关的控件元素都放在<form>元素下.因为表单提交的时候,会直接忽略不是其子元素的控件.但是,实际情况下,由于页面设计与实现的特殊性,会存在有些表单之外的元素也需要一并提交的情况,这时候,传统的表单功能就显得有些捉襟见肘了. HTML5中新增form属性就是为更好地处理这个问题才出现的.其作用,个人感觉,有点类似于label标签的for属性. 二.更好的实现

CSS3选择器:nth-child和:nth-of-type之间的差异——张鑫旭

一.深呼吸,直接内容 :nth-child和:nth-of-type都是CSS3中的伪类选择器,其作用近似却又不完全一样,对于不熟悉的人对其可能不是很区分,本文就将介绍两者的不同,以便于大家正确灵活使用这两类选择器. 先看一个简单的实例,首先是HTML部分: <section> <p>我是第1个p标签</p> <p>我是第2个p标签</p> <!-- 希望这个变红 --> </section> 然后两个选择器相对应的CSS

小tip:CSS3下的渐变文字效果实现——张鑫旭

by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1601 一.方法一:借助mask-image属性 可以狠狠地点击这里:CSS3下的渐变文字效果方法一demo 如果您手头上的浏览器是Chrome或是Safari,则您可以在demo页面中看到类似下面的效果: 相应的HTML代码如下: <h2 class="text-gradient" data-text=