六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

CSS3里怎么完成打字動畫

[摘要]相較于之前的CSS版本,我們利用css3可以實現很多炫酷的東西,比如老版的CSS無法實現的打字動畫。下面我們就給大家帶來一個小案例,看看酷炫的打字動畫是怎么做出來的。<!DOCTYPE html><html><head><meta charset=&quo...
相較于之前的CSS版本,我們利用css3可以實現很多炫酷的東西,比如老版的CSS無法實現的打字動畫。下面我們就給大家帶來一個小案例,看看酷炫的打字動畫是怎么做出來的。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <style type="text/css" media="screen">
        .box {
            width:100%;
            height:500px;
            text-align:center;
            position:relative;
        }
        .container {
            width:80%;
            height:400px;
            border:1px solid red;
            text-align:left;
            margin:0 auto;
        }
        .container span {
            display:inline-block;
            border:1px solid red;
            transition: all 2s;
            transform:translateY(0px) rotate(0deg);
            font-size:14px;
        }
        textarea {
            width:200px;
            resize:none;
            height:20px;
            line-height:20px;
            padding:10px 0px;
            font-size:14px;
            font-weight:400;
        }
        .clone {
            font-size:14px;
            border:1px solid red;
            width:80%;
            height:20px;
            margin:0 auto;
            line-height:20px;
            padding:10px 0px;
            text-align:left;
            visibility:hidden;
        }
        .clone span {
            transition:all 2s;
            position:absolute;
        }
 
    </style>
</head>
<body>
    <div>
        <div>
 
        </div>
        <div>
            <span></span>
        </div>
        <textarea placeholder="請輸入文字"></textarea>
    </div>
</body>
    <script>
    //計算出input輸入框的偏移值
    var container = document.querySelector(".container");
    var inner = document.querySelector(".inner");
    var clone = document.querySelector(".clone");
    var textarea = document.querySelector(".textarea");
    var offx = (container.offsetWidth - textarea.offsetWidth-20)/2;
    var offy = (container.offsetHeight + inner.offsetHeight);
 
        //創造一個span標簽 需要注入需要注入起始坐標
        function createspan(text,x,y) {
           this.text = text;
           this.x = x;
           this.y = y;
           this.init = {};
        }
        createspan.prototype.render = function() {
            var span = document.createElement("span");
            container.appendChild(span);
            span.style.display = "inline-block";
            span.style.transform = "translateX("+this.x+"px) translateY("+this.y+"px) rotate(720deg)";
            span.style.transition = "all 2s";
            span.innerHTML = this.text;
            this.init = span;
        }
        createspan.prototype.recover = function() {
            var that = this;
            setTimeout(function(){
                that.init.style.transform = "translateX(0px) translateY(0px) rotate(0deg)";
            },10)
        }
        var newtext = "";
        var oldtext = "";
        var x = 0;
        var y = 0;
        var total = "";
        //監聽textarea文本框的輸入變化情況
        textarea.addEventListener("input",function(){
            var text = "";
            if (inner.offsetWidth >= container.offsetWidth ) {
                offx = (container.offsetWidth - textarea.offsetWidth-20)/2 - textarea.offsetWidth;
            }
            else if (inner.offsetWidth >= textarea.offsetWidth*3) {
                offx = (container.offsetWidth - textarea.offsetWidth-20)/2 - textarea.offsetWidth*3;
            }
             else if (inner.offsetWidth >= textarea.offsetWidth*2) {
                offx = (container.offsetWidth - textarea.offsetWidth-20)/2 - textarea.offsetWidth*2;
            } else if(inner.offsetWidth>=textarea.offsetWidth) {
                offx = (container.offsetWidth - textarea.offsetWidth-20)/2 - textarea.offsetWidth;
            }
 
            //先算文字的變化 兩種情況一種是增加一種是減少
            newtext = textarea.value;
            oldtext = inner.innerHTML;
            newtext = newtext.trim();
            //添加字符
            if(newtext.length > oldtext.length) {
                for(var i = 0;i < newtext.length;i++) {
                    if(newtext[i] != oldtext[i]) {
                       text += newtext[i];
                        inner.innerHTML = newtext;
                    }
                }
                total += text;
                // 生成
                    for(var i =0;i < text.length;i++) {
 
                        var a = new createspan(text[i],offx,offy);
                        a.render();
                        a.recover();
                    }
            }
            //刪除字符
 
        })
    </script>
</html>

相信通過這個案列大家會熟練的掌握CSS3的這個功能,更多精彩請關注php中文網其它相關文章!


相關閱讀:

CSS3里怎么實現loading動畫效果

CSS3里怎么實現單選框動畫特效

CSS里的if條件hack怎么寫

以上就是CSS3里怎么實現打字動畫的詳細內容,更多請關注php中文網其它相關文章!


網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。




主站蜘蛛池模板: 息与子外出中文字幕 | 一级做a爰视频免费观看2019 | 日本大片a | 日韩成片| 青青青视频在线播放视频 | 一区二区三区在线视频观看 | 日本一区二区视频免费播放 | 日日摸夜夜添夜夜添特色大片 | 青青青免费观看在线视频高清 | 中文精品视频一区二区在线观看 | 亚洲网站色 | 亚洲人影院 | 亚洲精品有码在线观看 | 亚洲精品免费观看 | 性欧美xxx极品另类 性欧美xxxx性 | 五月婷婷操 | 最新欧美伦禁片在线观看 | 色老大综合久久综合热 | 综合88 | 欧美综合视频在线 | 日本一二三区在线视频 | 伊人操| 亚洲视频成人 | 午夜久久久精品 | 日韩不卡一级毛片免费 | 热re99久久国产精品 | 色综合久久88色综合天天 | 日韩免费福利视频 | 欧美怡红院免费全视频 | 亚洲高清视频在线观看 | 亚洲最大的成人网 | 欧美在线免费观看视频 | 亚洲最新在线视频 | 青娱乐手机在线 | 日本人视频网站 | 四虎网址| 色综合久久综合欧美综合图片 | 亚洲成av人在线视 | 日韩不卡在线视频 | 亚州中文字幕 | 青草久久久 |