zoukankan      html  css  js  c++  java
  • 带有动画效果的微博发布仿写

    程序里需要注意的是:<textarea>里面的内容用只能用.value获取,用.innerHTML或者.innerText是无法获取的。

    程序中用有一处动画是用tween.js完成的,tween.js文件使用说明及下载地址:http://www.cnblogs.com/cloudgamer/archive/2009/01/06/1369979.html

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8">
            <title>新浪微博动画版</title>
            <style media="screen">
                *{
                    margin: 0px;
                    padding: 0px;
                }
                .outlinewrap{
                    width: 600px;
                    margin: 20px auto;
                }
                .wrap{
                    width: 600px;
                    height: 165px;
                    padding: 7px;
                    border: 1px solid #ddd;
                }
                .headWrap{
                    padding-top: 6px;
                    padding-bottom:13px;
                }
                .head{
                    text-align: right;
                }
                .head a{
                    text-decoration: none;
                    color: red;
                }
                .inputWordWrap textarea{
                    width: 100%;
                    height: 77px;
                    resize: none;
                    outline: none;
                    border: none;
                }
                .inputWordWrap {
                    border: 1px solid #ccc;
                }
                footer{
                    margin-top: 10px;
                    text-align: right;
                }
                #releaseBtn{
                    text-decoration: none;
                    color: white;
                    padding: 10px 20px;
                    background-color: #ffc09f;
                    display: inline-block;
                    box-shadow: 0px 0px 3px 0px rgba(0,0,0,0.15) inset;
                }
                .clickInputBordStyle{
                    border: 1px solid #eb7350;
                    box-shadow: none;
                }
                .show{
                    overflow: hidden;
                    width: 600px;
                    padding: 7px;
                }
                .name{
                    float: left;
                    width: 40%;
                    padding: 10px;
                }
                .dele{
                    float: right;
                    display: inline;
                    padding: 10px;
                    text-align: right;
                }
                .dele:hover{
                    color: red;
                    cursor: pointer;
                }
                .message_text{
                    padding: 10px 0px;
                    word-wrap:break-word;
                    clear: both;
                }
                .showLeaveMesageWrap{
                    margin: 10px auto;
                    border: 1px solid black;
                    position: relative;
                    top: -100px;
                    overflow: hidden;
                }
                .time{
                    padding: 10px 0px;
                }
            </style>
        </head>
        <body>
            <div class="outlinewrap">
                <div class="wrap">
                    <div class="headWrap">
                        <div class="head">
                            <a href="javascript:void(0)">置办年货省省省!红包在手年货无忧!点击领取年货红包&nbsp;&nbsp;&nbsp;热门微博</a>
                        </div>
                    </div>
                    <div class="inputWordWrap">
                        <textarea name="inputWord" rows="" cols=""></textarea>
                    </div>
                    <footer>
                        <a href="#" id='releaseBtn'>发 布</a>
                    </footer>
                </div>
                <div id="show" class="show">
                </div>
            </div>
        </body>
        <script type="text/javascript">
            var head=document.getElementsByClassName('head')[0];
            var inputWordWrap=document.getElementsByClassName('inputWordWrap')[0];
            var inputWord=document.querySelector('.inputWordWrap textarea');
            var releaseBtn=document.getElementById('releaseBtn');
            var show=document.getElementById('show');
            var wordNum=140;
            var beyondNum=0;
            inputWordWrap.onclick=function(event){
                event = event || window.event;
                if(event.stopPropagation){
                    event.stopPropagation();
                }else{
                    event.cancelBubble = true;
                }
                if (inputWordWrap.className=='inputWordWrap') {
                    inputWordWrap.className+=' clickInputBordStyle';
                    head.innerHTML="还可以输入" + wordNum + "";
                }
            }
            document.onclick=function(){
                inputWordWrap.className='inputWordWrap';
                head.innerHTML='<a href="javascript:void(0)">置办年货省省省!红包在手年货无忧!点击领取年货红包&nbsp;&nbsp;&nbsp;热门微博</a>';
            }
            inputWord.onkeyup=function(){
                releaseBtn.style.background='#ff8140';
                wordNum=140-this.value.length;
                if (wordNum<0) {
                    beyondNum=-wordNum
                    head.innerHTML="超出" + beyondNum + "";
                }else{
                    head.innerHTML="还可以输入" + wordNum + "";
                }
            }
            function getTime(){
                var myDate=new Date();
                var nowHour=myDate.getHours();
                var nowMinute=myDate.getMinutes();
                var nowMonth=myDate.getMonth();
                var nowDay=myDate.getDate();
                var nowSecond=myDate.getSeconds();
                var nowDate=nowMonth+''+nowDay+''+nowHour + ":" + nowMinute + " 发布";
                return nowDate;
            }
            releaseBtn.onclick=function(){
                if (!inputWord.value || beyondNum!=0) {
                    if (!inputWord.value) {
                        alert('请输入内容在发布');
                    }else {
                        alert('字数已超出,请删减后再发布')
                    }
                }else {
                    var showLeaveMesageWrap=document.createElement('div');
                    var name=document.createElement('div');
                    var message_text=document.createElement('div');
                    var time=document.createElement('div');
                    var dele=document.createElement('div');
                    showLeaveMesageWrap.className='showLeaveMesageWrap';
                    name.className='name';
                    message_text.className='message_text';
                    dele.className='dele';
                    time.className='time';
                    if (show.children.length==0) {
                        show.appendChild(showLeaveMesageWrap);
                    }else {
                        show.insertBefore(showLeaveMesageWrap,show.children[0]);
                    }
                    showLeaveMesageWrap.appendChild(name);
                    showLeaveMesageWrap.appendChild(dele);
                    showLeaveMesageWrap.appendChild(message_text);
                    showLeaveMesageWrap.appendChild(time);
    
                    name.innerHTML='xxx';
                    message_text.innerText=inputWord.value;
                    time.innerHTML=getTime();
                    dele.innerHTML='x';
                    console.log(showLeaveMesageWrap.offsetTop);
                    animatePr(showLeaveMesageWrap);
                    inputWord.value='';
                }
                dele.onclick=function(){
                    animateDele(showLeaveMesageWrap);
    
                }
    
    
                // function animatePr(nod){
                //     var start=-100;
                //     var end=0;
                //     var change=end-start;
                //     var step=0;
                //     var maxStep=33;
                //     var timer;
                //     if (timer) {
                //         clearInterval(timer);
                //     }
                //     timer=setInterval(function(){
                //         step++;
                //         nod.style.top=start+change/maxStep*step+"px";
                //         var c=start+change/maxStep*step;
                //         console.log(c);
                //         console.log(step);
                //         if (step==maxStep) {
                //             clearInterval(timer);
                //             console.log(step);
                //             console.log(nod.offsetTop);
                //             console.log(c);
                //         }
                //     },16)
                // }
    
    
                //用Tween.js写的动画效果,Tween.js文件下载地址http://www.cnblogs.com/cloudgamer/archive/2009/01/06/1369979.html
                function animatePr(nod){
                    var start=-100;
                    var end=0;
                    var change=end-start;
                    var step=0;
                    var maxStep=33;
                    var timer;
                    if (timer) {
                        clearInterval(timer);
                    }
                    timer=setInterval(function(){
                        step++;
                        nod.style.top=Tween.Bounce.easeInOut(step,start,change,maxStep)+"px";
                        if (step==maxStep) {
                            clearInterval(timer)
    
                        }
                    },16)
                }
    
    
                function animateDele(showLeaveMesageWrap){
                    var start=showLeaveMesageWrap.offsetHeight;
                    var end=0;
                    var change=end-start;
                    var step=0;
                    var maxStep=77;
                    var timer1;
                    if (timer1) {
                        clearInterval(timer1);
                    }
                    timer1=setInterval(function(){
                        step++;
                        showLeaveMesageWrap.style.height=start+change/maxStep*step+'px';
                        console.log(showLeaveMesageWrap.offsetHeight);
                        if (step==maxStep) {
                            clearInterval(timer1);
                            show.removeChild(showLeaveMesageWrap);
                            console.log(3);
                        }
    
                    },16)
    
                }
    
            }
    
        </script>
        <script src="tween.js" type="text/javascript" charset="utf-8"></script>
    </html>
  • 相关阅读:
    测试心得
    mysql学习整理
    测试思考
    Win7下安装Mysql方法
    xcall.sh
    hive 的几款可视化连接工具
    mongo 使用 mongoexport 按照条件导出 csv 文件
    WebFlux springboot 2.0
    Calendar java  日历(常用小结)
    java 自定义注解(3)
  • 原文地址:https://www.cnblogs.com/yanchao-paul/p/5396976.html
Copyright © 2011-2022 走看看