<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        jQuery實現的立體文字漸變效果_jquery

        來源:懂視網 責編:小采 時間:2020-11-27 20:49:14
        文檔

        jQuery實現的立體文字漸變效果_jquery

        jQuery實現的立體文字漸變效果_jquery:先截兩個圖看看: 效果很不錯吧?會不會誤以為這些字體是圖片?這可不是圖片,而是用JS實現的在線演示 http://demo.jb51.net/js/gradient-test/demo.htm下面來簡單分享下實現過程及原理(網站中使用了jquery這個lib,我們這里就不再自己單獨實現了
        推薦度:
        導讀jQuery實現的立體文字漸變效果_jquery:先截兩個圖看看: 效果很不錯吧?會不會誤以為這些字體是圖片?這可不是圖片,而是用JS實現的在線演示 http://demo.jb51.net/js/gradient-test/demo.htm下面來簡單分享下實現過程及原理(網站中使用了jquery這個lib,我們這里就不再自己單獨實現了

        先截兩個圖看看:

        效果很不錯吧?會不會誤以為這些字體是圖片?這可不是圖片,而是用JS實現的

        在線演示 http://demo.jb51.net/js/gradient-test/demo.htm

        下面來簡單分享下實現過程及原理(網站中使用了jquery這個lib,我們這里就不再自己單獨實現了,我們這里分享的也是jquery的實現方法):

        HTML代碼:
        代碼如下:
        © 2009 Dragon Interactive. All Rights Reserved.

        為了便于代碼重用,我們通過class來標識出哪些文字需要增加這個特效,這里用的是rainbows。

        CSS代碼:
        代碼如下:
        .rainbows{position:relative;display:block;} .rainbow { background: transparent; display: block; position: relative; height: 1px; overflow: hidden; z-index: 5; } .rainbow span { position: absolute; display: block; top: 0; left: 0px; } .rainbows .highlight { color: #fff; display:block; position: absolute; top: -2px; left: 0px; z-index: 4; } .rainbows .shadow { color: #000; display:block; position: absolute; opacity: 0.5; filter:alpha(opacity=50); top: 2px; left: 2px; z-index: 3; }.rainbows{position:relative;display:block;}
        .rainbow {
        background: transparent;
        display: block;
        position: relative;
        height: 1px;
        overflow: hidden;
        z-index: 5;
        }

        .rainbow span {
        position: absolute;
        display: block;
        top: 0;
        left: 0px;
        }

        .rainbows .highlight {
        color: #fff;
        display:block;
        position: absolute;
        top: -2px;
        left: 0px;
        z-index: 4;
        }

        .rainbows .shadow {
        color: #000;
        display:block;
        position: absolute;
        opacity: 0.5;
        filter:alpha(opacity=50);
        top: 2px;
        left: 2px;
        z-index: 3;
        }

        這里主要說明下highlight和shadow這兩個class的意義,其實從字面也基本可以理解,這兩個class是為了增加字體的立體性而設定,一個是白色的高亮,一個是黑色陰影。

        JS部分:
        代碼如下:
        function initGradients(s) { $(function() { $(s).each(function() { var el = this; var from = $(el).attr('gradFromColor')||'#ffffff', to = $(el).attr('gradToColor')||'#000000'; var fR = parseInt(from.substring(1, 3), 16), fG = parseInt(from.substring(3, 5), 16), fB = parseInt(from.substring(5, 7), 16), tR = parseInt(to.substring(1, 3), 16), tG = parseInt(to.substring(3, 5), 16), tB = parseInt(to.substring(5, 7), 16); var h = $(this).height() * 1.5; var html,cacheHTML=[]; this.initHTML = html = this.initHTML||this.innerHTML; this.innerHTML = ''; for (var i = 0; i < h; i++) { var c = '#' + (Math.floor(fR * (h - i) / h + tR * (i / h))).toString(16) + (Math.floor(fG * (h - i) / h + tG * (i / h))).toString(16) + (Math.floor(fB * (h - i) / h + tB * (i / h))).toString(16); cacheHTML.push('' + html + '') } cacheHTML.push('' + html + '','' + html + ''); $(cacheHTML.join('')).appendTo(this) }) }) } //這個部分就是調用了,傳入要添加效果的元素,這里可以是jquery的任意選擇符。 initGradients('.rainbows'); function initGradients(s) {
        $(function() {
        $(s).each(function() {
        var el = this;
        var from = $(el).attr('gradFromColor')||'#ffffff', to = $(el).attr('gradToColor')||'#000000';
        var fR = parseInt(from.substring(1, 3), 16),
        fG = parseInt(from.substring(3, 5), 16),
        fB = parseInt(from.substring(5, 7), 16),
        tR = parseInt(to.substring(1, 3), 16),
        tG = parseInt(to.substring(3, 5), 16),
        tB = parseInt(to.substring(5, 7), 16);

        var h = $(this).height() * 1.5;
        var html,cacheHTML=[];
        this.initHTML = html = this.initHTML||this.innerHTML;
        this.innerHTML = '';
        for (var i = 0; i < h; i++) {
        var c = '#' + (Math.floor(fR * (h - i) / h + tR * (i / h))).toString(16) + (Math.floor(fG * (h - i) / h + tG * (i / h))).toString(16) + (Math.floor(fB * (h - i) / h + tB * (i / h))).toString(16);
        cacheHTML.push('' + html + '')
        }
        cacheHTML.push('' + html + '','' + html + '');
        $(cacheHTML.join('')).appendTo(this)
        })
        })
        }
        //這個部分就是調用了,傳入要添加效果的元素,這里可以是jquery的任意選擇符。
        initGradients('.rainbows');

        代碼看起來并不算多,但是如果想明白原理的話還是要認真的理解下這個代碼的。

        結合JS/CSS我們可以看出其大概的思路如下:


        程序首先算出字體所在容器的高度N,然后清空容器內容,并添加N個span,每個span內容都為原容器的文字,每個span的顏色根據漸變色進行計算,而且其中的文字定位都相比之前一個span的文字向上偏移一個像素。CSS中可以看到,每個span的高度都為1。這樣,我們就通過N各不同顏色的1px的span把字體“拼”出來了,然后加上“高光/陰影”就搞定。

        基于jQuery的立體文字漸變效果

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        jQuery實現的立體文字漸變效果_jquery

        jQuery實現的立體文字漸變效果_jquery:先截兩個圖看看: 效果很不錯吧?會不會誤以為這些字體是圖片?這可不是圖片,而是用JS實現的在線演示 http://demo.jb51.net/js/gradient-test/demo.htm下面來簡單分享下實現過程及原理(網站中使用了jquery這個lib,我們這里就不再自己單獨實現了
        推薦度:
        標簽: 文字 實現 進行
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产亚洲综合成人91精品 | 久久国产乱子精品免费女| 亚洲日本在线播放| 久久综合九色综合97免费下载| 国产成人精品久久亚洲| 久久久受www免费人成| 亚洲中文字幕无码永久在线| 久久99久久成人免费播放| 亚洲中文字幕无码爆乳AV| 国产免费拔擦拔擦8X高清在线人 | 国产高清在线精品免费软件| 亚洲国产成人精品无码区二本| 日韩中文字幕免费| 全部一级一级毛片免费看| 国产亚洲人成网站在线观看| 中文字幕在线免费看线人| 亚洲天堂一区二区| 国产桃色在线成免费视频| 亚洲AV无码一区二区三区性色 | 亚洲VA成无码人在线观看天堂| 久久爰www免费人成| 亚洲另类视频在线观看| 国产无遮挡色视频免费视频| 国产福利电影一区二区三区,免费久久久久久久精 | 永久免费无码日韩视频| 亚洲国产国产综合一区首页| 18禁止观看免费私人影院| 亚洲av无码专区亚洲av不卡 | 精品亚洲成a人片在线观看少妇| 亚洲网站免费观看| 亚洲AV日韩AV无码污污网站| 久久影视综合亚洲| 无码国产精品一区二区免费I6| 美女视频黄.免费网址| 久久精品视频亚洲| 精品免费国产一区二区三区| 青青操在线免费观看| 一本天堂ⅴ无码亚洲道久久| 中文亚洲AV片在线观看不卡 | 亚洲丝袜美腿视频| 亚洲AV无码一区二区三区在线观看|