源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

JS 仿腾讯发表微博的效果代码

  • 时间:2020-12-06 12:49 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:JS 仿腾讯发表微博的效果代码
最近2天研究了下 腾讯发表微博的效果 特此来分享下,效果如下: [img]http://files.jb51.net/file_images/article/201312/20131225172351824.gif[/img]   在此分享前 来谈谈本人编写代码的习惯,很多人会问我既然用的是jquery框架 为什么写的组件不用Jquery那种形式?我当时回答的是:每个人编写代码有每个人的习惯。但是我更想表达的是:这种编码个人觉得 有一个很大的优点,我不是非常依赖于Jquery框架,因为不同的公司有不同的框架 比如在淘宝用的kissy框架 在支付宝用的是支付宝框架 在百度用的是百度框架 在腾讯有腾讯的前端js框架 假如我的编写代码太依赖于jquery 那假如其他人想要用我代码或者我自己某一天去做腾讯项目了 但是他们那边要求我们只能用他们的JS框架 且又有这样的功能?那如果我完全依赖jquery那种形式编码 那现在我是不是要重新编码呢?如果按照现在编码方式去编码 最多只是用了下jquery选择器而已 那么只要改下选择器 其他的代码都可以直接拿来用,这样的扩张性非常好!我个人觉得作为一个专业的前端开发,不仅仅只会一点点jquery做做东西,而更应该考虑编写高质量的代码,可能用jquery写写简单的代码同样能做好某个东西,但是有没有考虑到假如某一天需求增加了某某功能 你是不是又要改代码?能不能在以前的基础上重新写新的功能?而无需改代码! [b]何谓高质量的代码?[/b] 个人觉得必须满足以下几点:    1. 可扩展性。    2. 可维护性。    3. 可读性,易使用性。    4. JS性能。  最主要满足以上几点。  好了 废话不多说了!转主题,目前我做的这个发表微博效果 只是简单的 当然腾讯发表微博有一些复杂的功能 比如说下面有添加表情等等功能,目前没有做成那样的(工作量比较大)。  下面我写的这个JS代码需要注意2点:  1.每次发表下后 大家在说列表会添加一条,目前没有发ajax请求 后台没有记录 所以刷新页面 会清掉。  2. 时间是用的是客户端时间 假如客户端时间错误的话 那么时间也会受影响。 其实思路很简单 看上面的效果就明白 所以思路在这边不多说了!或者我下面会提供压缩demo 可以自己下载下来看看效果就ok了!每次发表一次后 都提供了回调 作为扩展吧!当然鼠标移到某一项时候 会出现删除按钮 同时可以任意删除某一项。直接贴代码吧 也没有什么好说的! HTML代码如下:
[url=javascript:;]                            '<div class="msgInfo">'+textVal+'</div>' +                             '<div class="times">'+                                 '<span>'+self._format(oDate.getMonth() + 1) + "\u6708" + self._format(oDate.getDate()) + "\u65e5 " + self._format(oDate.getHours()) + ":" + self._format(oDate.getMinutes())+'</span>'+                                 '<a class="del hidden" href="javascript:;">删除</a>'+                             '</div>' +                         '</div>';         // 插入元素         if($(_config.list + " li").length > 0) {             $(oLi).insertBefore($(_config.list + " li")[0]);             self._animate(oLi);         }else {             $(_config.list).append(oLi);             self._animate(oLi);         }         _config.callback && $.isFunction(_config.callback) && _config.callback();         // 清空输入框 文本域的值         self._clearVal();         // hover事件         self._hover();      },      /*       * 格式化时间, 如果为一位数时补0       */     _format: function(str){         return str.toString().replace(/^(\d)$/,"0$1");     },     /*      * 获取ing src      * @return src      */     _getSrc: function() {         var self = this,             _config = self.config,             _cache = self.cache;         var faceImg = $('img',$(_config.face));         for(var i = 0; i < faceImg.length; i++) {             if($(faceImg[i]).hasClass(_config.currentCls)) {                 return $(faceImg[i]).attr('src');                 break;             }         }     },     /*      * 清空值      */     _clearVal: function() {         var self = this,             _config = self.config,             _cache = self.cache;         $(_config.inputID) && $(_config.inputID).val('');         $(_config.textareaId) && $(_config.textareaId).val('');     },     /*      * hover事件      */     _hover: function() {         var self = this,             _config = self.config,             _cache = self.cache;         $(_config.list + ' li').hover(function(){             !$(this).hasClass('hover') && $(this).addClass('hover').siblings().removeClass('hover');             $('.del',$(this)).hasClass('hidden') && $('.del',$(this)).removeClass('hidden');             var $that = $(this);             // 删除事件             $('.del',$that).unbind('click');             $('.del',$that).bind('click',function(){                 $($that).animate({                     'opacity' : 0                 },500,function(){                     $that.remove();                    });             });         },function(){             $(this).hasClass('hover') && $(this).removeClass('hover');             !$('.del',$(this)).hasClass('hidden') && $('.del',$(this)).addClass('hidden');         });     },     /*      * height      */      _animate: function(oLi) {         var self = this;         var iHeight = $(oLi).height(),             alpah = 0,             timer,             count = 0;         $(oLi).css({"opacity" : "0", "height" : "0"});         timer && clearInterval(timer);         timer = setInterval(function (){             $(oLi).css({"display" : "block", "opacity" : "0", "height" : (count += 8) + "px"});             if (count > iHeight){                     clearInterval(timer);                     $(oLi).css({ "height" : iHeight + "px"});                     timer = setInterval(function (){                         $(oLi).css({"opacity" : alpah += 10});                         alpah > 100 && (clearInterval(timer), $(oLi).css({"opacity":100}));                     },30);                 }             },30);      }  };  // 初始化代码  $(function(){     new Microblog({});  });
源码下载:http://xiazai.jb51.net//201312/yuanma/wb(jb51.net).rar[/url]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部