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

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

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中文網其它相關文章!


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




主站蜘蛛池模板: 中文精品久久久久国产网站 | 日韩在线高清视频 | 天堂中文资源在线地址 | 真实的国产乱xxxx | 日本一区二区免费高清视频 | 日韩一区二三区无 | 日韩欧美一区二区不卡看片 | 欧美在线免费 | 天天射天天射天天射 | 日噜噜 | 丝袜美腿中文字幕 | 日本高清视频成人网www | 午夜性爽视频男人的天堂在线 | 一区二区三区在线 | 网站 | 亚洲欧美日韩在线线精品 | 在线播放日本爽快片 | 青草青在线免费视频 | 深爱婷婷激情网 | 欧美一区二区三区在线可观看 | 色婷婷中文字幕在线一区天堂 | 在线播放精品一区二区啪视频 | 亚洲欧美系列 | 图片亚洲va欧美va国产综合 | 婷婷春色| 四虎永久在线精品国产 | 性性欧美 | 在线视频日韩精品 | 色偷偷91综合久久噜噜app | 天天天天天天操 | 欧美亚洲另类综合 | 欧美在线观看一区二区三 | 四虎影视免费观看 | 天天射天天色天天干 | 桃色视频网 | 亚洲小视频在线播放 | 手机日韩看片 | 青草视频免费在线观看 | 亚洲欧洲精品视频 | 日韩性大片免费 | 七月丁香八月婷婷综合激情 | 日本欧美一区二区三区视频麻豆 |