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的面向对象(一)
Nov 09 Javascript
基于jQuery的ajax功能实现web service的json转化
Aug 29 Javascript
js计算字符串长度包含的中文是utf8格式
Oct 15 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
Mar 28 Javascript
JS应用正则表达式转换大小写示例
Sep 18 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
Oct 28 Javascript
Angular学习笔记之angular的$filter服务浅析
Nov 12 Javascript
JavaScript中this的用法实例分析
Dec 19 Javascript
laydate.js日期时间选择插件
Jan 04 Javascript
使用canvas进行图像编辑的实例
Aug 29 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
May 15 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
Nov 01 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代码架构的八点注意事项
2016/01/25 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
javascript call和apply方法
2008/11/24 Javascript
JavaScript学习笔记(十)
2010/01/17 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
2013/08/26 Javascript
js采用map取到id集合组并且实现点击一行选中一行
2013/12/16 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
js 将图片连接转换成base64格式的简单实例
2016/08/10 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
2016/12/09 Javascript
js使用i18n实现页面国际化的方法
2017/05/09 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
vue移动端下拉刷新和上拉加载的实现代码
2018/09/08 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
[04:37]DOTA2英雄梦之声Vol20发条
2014/06/20 DOTA
Python操作串口的方法
2015/06/17 Python
Python部署web开发程序的几种方法
2017/05/05 Python
Python中矩阵库Numpy基本操作详解
2017/11/21 Python
python实现比较文件内容异同
2018/06/22 Python
python命令 -u参数用法解析
2019/10/24 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
利用python批量爬取百度任意类别的图片的实现方法
2020/10/07 Python
英国美发和美容产品商城:HQhair
2019/02/08 全球购物
linux面试题参考答案(10)
2013/11/04 面试题
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
中学生获奖感言
2014/02/04 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
让世界充满爱演讲稿
2014/05/24 职场文书
2014年度安全生产目标管理责任书
2014/07/25 职场文书
2014年化验室工作总结
2014/11/21 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
电频谱管理的原则是什么
2022/02/18 无线电