JS实现模仿微博发布效果实例代码


Posted in Javascript onDecember 16, 2013

效果:

JS实现模仿微博发布效果实例代码

思路:

利用多功能浮动运动框架实现微博效果,首先,将textarea中的属性添加到新创建的li里面然后,再将li添加到ul里面,再利用浮动运动框架将数据动态的显示出来。

代码:

<head runat="server">
    <title></title>
    <style type="text/css">
        *
        {
            margin: 0;
            padding: 0;
        }
        #ul1
        {
            width: 300px;
            height: 300px;
            border: 1px solid black;
            margin: 10px auto;
            overflow: hidden;
        }
        #ul1 li
        {
            list-style: none;
            padding: 4px;
            border-bottom: 1px #999 dashed;
            overflow: hidden;
            opacity: 0;
        }
    </style>
    <script type="text/javascript">
        window.onload = function () {
            var btn = document.getElementById('btn');
            var txt = document.getElementById('t1');
            var oUl = document.getElementById('ul1');
            btn.onclick = function () {
                var cLi = document.createElement('li');
                cLi.innerHTML = txt.value;      //将数据添加到li里面
                txt.value = '';
                if (oUl.children.length > 0) {      //判断是否已经有li,如果有那么就插入,如果没有那么就新建
                    oUl.insertBefore(cLi, oUl.children[0]);
                } else {
                    oUl.appendChild(cLi);
                }
                var iHeight = cLi.offsetHeight;     //获得li的高度
                cLi.style.height = '0';
                move(cLi, { height: iHeight }, function () {        //然后利用浮动运动将数据显示出来
                    move(cLi, { opacity: 100 });
                });
            }
        }
        //------------------------------------------------------------------------------------
        //获取非行间样式
        function getStyle(ojb, name) {
            if (ojb.currentStyle) {
                return ojb.currentStyle[name];
            }
            else {
                return getComputedStyle(ojb, false)[name];
            }
        }
        //缓冲运动json的应用
        //json{attr,finsh}
        //json{width:200,height:200}
        function move(obj, json, fnName) {      //obj是对象,Json是对象的属性, fnName是函数
            clearInterval(obj.timer);           //关闭之前的计时器
            obj.timer = setInterval(function () {
                var timeStop = true;        //记录属性是否都已经执行完成
                for (var attr in json) {        //遍历json中的数据
                    var oGetStyle = 0;
                    if (attr == 'opacity') {  //判断透明度
                        oGetStyle = Math.round(parseFloat(getStyle(obj, attr)) * 100);      //透明度取整,然后转换完后赋值
                    }
                    else {
                        oGetStyle = parseInt(getStyle(obj, attr));
                    }
                    var speed = (json[attr] - oGetStyle) / 5;       //求速度
                    speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);  //进位取整
                    if (oGetStyle != json[attr])
                        timeStop = false;
                    if (attr == 'opacity') {    //透明度
                        obj.style.filter = 'alpha(opacity:' + (oGetStyle + speed) + ')';    //给透明度赋值
                        obj.style.opacity = (oGetStyle + speed) / 100;
                    }
                    else {
                        obj.style[attr] = oGetStyle + speed + 'px';     //移动div
                    }
                }
                if (timeStop) {     //如果所有属性都已经执行完成,那么就关闭计时器
                    clearInterval(obj.timer);
                    if (fnName) {       //当关闭计时器后要执行的函数
                        fnName();
                    }
                }
            }, 30)
        }
        //------------------------------------------------------------------------------------
    </script>
</head>
<body>
    <textarea id="t1"></textarea>
    <input type="button" id="btn" value="发布" />
    <ul id="ul1">
        <li style="display: none;"></li>
    </ul>
</body>
Javascript 相关文章推荐
实现JavaScript中继承的三种方式
Oct 16 Javascript
用js获取电脑信息(是使用与IE浏览器)
Jan 15 Javascript
js字符串完全替换函数分享
Dec 03 Javascript
Jquery中request和request.form和request.querystring的区别
Nov 26 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
May 09 Javascript
基于JavaScript实现购物网站商品放大镜效果
Sep 06 Javascript
vue使用watch 观察路由变化,重新获取内容
Mar 08 Javascript
JS中定位 position 的使用实例代码
Aug 06 Javascript
JavaScript与Java正则表达式写法的区别介绍
Aug 15 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
Nov 15 Javascript
浅谈webpack打包之后的文件过大的解决方法
Mar 07 Javascript
区别JavaScript函数声明与变量声明
Sep 12 Javascript
JSON无限折叠菜单编写实例
Dec 16 #Javascript
使用JSLint提高JS代码质量方法分享
Dec 16 #Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
Dec 16 #Javascript
利用js动态添加删除table行的示例代码
Dec 16 #Javascript
js判断undefined类型,undefined,null, 的区别详细解析
Dec 16 #Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
Dec 16 #Javascript
js AppendChild与insertBefore用法详细对比
Dec 16 #Javascript
You might like
PHP 分页原理分析,大家可以看看
2009/12/21 PHP
php 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
PHP中的session永不过期的解决思路及实现方法分享
2011/04/20 PHP
浅析PHP中Collection 类的设计
2013/06/21 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
YUI Compressor压缩JavaScript原理及微优化
2013/01/07 Javascript
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
基于jquery自定义的漂亮单选按钮RadioButton
2013/11/19 Javascript
jQuery之选项卡的简单实现
2014/02/28 Javascript
上传图片预览JS脚本 Input file图片预览的实现示例
2014/10/23 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
JS版微信6.0分享接口用法分析
2016/10/13 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
jQuery鼠标悬停内容动画切换效果
2017/04/27 jQuery
jquery仿微信聊天界面
2017/05/06 jQuery
Vue工程模板文件 webpack打包配置方法
2017/12/26 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
vue :src 文件路径错误问题的解决方法
2018/05/15 Javascript
详解react-refetch的使用小例子
2019/02/15 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
python实现SMTP邮件发送功能
2020/06/16 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
基于python 等频分箱qcut问题的解决
2020/03/03 Python
CSS3 文字动画效果
2020/11/12 HTML / CSS
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
西班牙著名的珠宝首饰品牌:P D PAOLA
2018/09/15 全球购物
Hotels.com韩国:海外国内旅行所需的酒店和住宿预订网站
2020/05/08 全球购物
新入职员工的自我介绍演讲稿
2014/01/02 职场文书
2014物价局群众路线对照检查材料思想汇报
2014/09/21 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
作风建设整改方案
2014/10/27 职场文书
2015年教师节慰问信
2015/03/23 职场文书
小学生六年级作文之关于感恩
2019/08/16 职场文书