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 相关文章推荐
复制js对象方法(详解)
Jul 08 Javascript
js判断客户端是iOS还是Android等移动终端的方法
Dec 11 Javascript
jquery实现的一个文章自定义分段显示功能
May 23 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
Sep 17 Javascript
JavaScript中的比较操作符&gt;、=、
Dec 31 Javascript
Jquery easyui开启行编辑模式增删改操作
Jan 14 Javascript
jQuery插件实现文字无缝向上滚动效果代码
Feb 25 Javascript
由浅入深剖析Angular表单验证
Jul 14 Javascript
微信小程序 选项卡的简单实例
May 24 Javascript
微信小程序结合mock.js实现后台模拟及调试
Mar 28 Javascript
JS实现水平遍历和嵌套递归操作示例
Aug 15 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
Sep 27 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读取汉字的点阵数据
2015/06/22 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
2016/03/21 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
2019/08/03 PHP
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
JS搜狐面试题分析
2016/12/16 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
解决JavaScript layui 下拉框不显示的问题
2018/08/14 Javascript
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
npm全局环境变量配置详解
2020/12/15 Javascript
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
Python函数嵌套实例
2014/09/23 Python
在Python中使用列表生成式的教程
2015/04/27 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
详解Django 中是否使用时区的区别
2018/06/14 Python
python禁用键鼠与提权代码实例
2019/08/16 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
Python any()函数的使用方法
2019/10/28 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
2020/06/02 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
Python3中的tuple函数知识点讲解
2021/01/03 Python
利用css3制作3D样式按钮实现代码
2013/03/18 HTML / CSS
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
PUMA官方商城:世界领先的运动品牌之一
2016/11/16 全球购物
C#笔试题集合
2013/06/21 面试题
How TDD works
2012/09/30 面试题
人力资源专员自我评价怎么写
2013/09/19 职场文书
企业法人代表任命书
2014/06/06 职场文书
三好学生先进事迹材料
2014/08/28 职场文书
2015年小学生新年寄语
2014/12/08 职场文书
给老婆的道歉信
2015/01/20 职场文书
工作表现证明
2015/06/15 职场文书