zoukankan      html  css  js  c++  java
  • JS 缓冲运动 带运动的留言本 小案例

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
     2 "http://www.w3.org/TR/html4/strict.dtd">
     3 
     4 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
     5     <head>
     6         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     7         <title>3.带运动效果的留言本</title>
     8         <meta name="author" content="Administrator" />
     9         <!-- Date: 2014-12-11 -->
    10         <style>
    11             *{margin:0;padding:0}
    12             textarea{border:1px solid #000;}
    13             ul{overflow:hidden;width:500px;height:500px;padding:10px; border:1px solid #000; position:absolute;right:300px;top:0}
    14             li{list-style:none;line-height:28px;border-bottom:1px solid #ccc;overflow:hidden}
    15         </style>
    16         <script>
    17             window.onload=function(){
    18                 var oTxt=document.getElementsByTagName('textarea')[0];
    19                 var oBtn=document.getElementById('btn');
    20                 var oUl=document.getElementsByTagName('ul')[0];
    21                 oBtn.onclick=function(){
    22                     var oLi=document.createElement('li');
    23                     oLi.innerHTML=oTxt.value;
    24                     oUl.appendChild(oLi);
    25                     oTxt.value='';
    26                     
    27                     //这里要先将oLi的offsetHeight存起来,然后再设置初始化高度为0,如果顺序反了将不起作用,那么就是先设为0,再获取高度了
    28                     var iHnow=parseInt(css(oLi,'height')); //parseInt 将字符串类型转化为数字类型
    29                     oLi.style.height='0px';
    30                      
    31                     huanchong(oLi,{
    32                          'height':iHnow
    33                     })
    34                 }
    35             }
    36             function css(obj,attr) {
    37                 return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj)[attr]
    38                 }
    39             function huanchong(obj,json,fn){
    40                     clearInterval( obj.timer );
    41                     obj.timer=setInterval(function(){
    42                         
    43                         var iBtn=true;
    44                         
    45                         for(var attr in json){
    46                             var iTarget = json[attr];
    47                             
    48                             if(attr == 'opacity' ){
    49                                 var iSpeed = (iTarget-Math.round((css(obj,attr)*100)))/6;
    50                             }else{
    51                                 var iSpeed = (iTarget-parseInt(css(obj,attr)))/6;
    52                             }
    53 
    54                             iSpeed= iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);  //精确值
    55 
    56                             if(attr == 'opacity' ){
    57                                 var s=Math.round(css(obj,attr)*100) + iSpeed;
    58                             }else{
    59                                 var s=parseInt(css(obj,attr)) + iSpeed;
    60                             }
    61 
    62                             if( s > iTarget && iSpeed > 0 || s < iTarget && iSpeed < 0) s=iTarget;
    63 
    64                             if( s!= iTarget ){
    65                                 iBtn=false;
    66                                 if(attr == 'opacity' ){
    67                                     obj.style[attr] = s/100;
    68                                     obj.style.filter='alpha(opacity='+s+')'
    69                                 }else{
    70                                     obj.style[attr] = s +'px';
    71                                 }    
    72                             }
    73                             
    74                         }
    75                         if( s!= iTarget ){
    76                             iBtn=true;
    77                             fn && fn.call(obj)
    78                         }
    79                     },30)
    80             }
    81         </script>
    82     </head>
    83     <body>
    84         <textarea id="text" rows="10" cols="40"></textarea>
    85         <input type="button" id="btn" value='留言'/>
    86         <ul> </ul>
    87     </body>
    88 </html>
    View Code
  • 相关阅读:
    Unity HDRP BentNormal的理解
    c语言变长数组VLA的变通实现
    中间件目录索引:redis,git,grpc等
    MYSQL插入脚本
    Polly是一个.NET弹性和瞬态故障处理库
    grpc的.net core使用
    基于PaddleOCR实现AI发票识别的Asp.net Core应用
    Clean Architecture For RazorPage 实现多语言和本地化
    easyui-datagrid 主从表(一对多)表结构,明细在前端存json,一键保存至数据库
    下拉框级联
  • 原文地址:https://www.cnblogs.com/webskill/p/4157635.html
Copyright © 2011-2022 走看看