jquery.scrollTo-min.js

來源:互聯網
上載者:User

標籤:返回頂部   c   style   class   blog   code   

jquery.scrollTo-min.js 使用者返回頂部及動畫到目的地,支援目標值、錨點。

使用方法:

1.引入jQuery

2.$.scrollTo( this.hash || targetValue, time);  

example:$.scrollTo( this.hash || 0, 500);

demo


jquery.scrollTo-min.js

; (function(d) {    var k = d.scrollTo = function(a, i, e) {        d(window).scrollTo(a, i, e)    };    k.defaults = {        axis: 'xy',        duration: parseFloat(d.fn.jquery) >= 1.3 ? 0 : 1    };    k.window = function(a) {        return d(window)._scrollable()    };    d.fn._scrollable = function() {        return this.map(function() {            var a = this,            i = !a.nodeName || d.inArray(a.nodeName.toLowerCase(), ['iframe', '#document', 'html', 'body']) != -1;            if (!i) return a;            var e = (a.contentWindow || a).document || a.ownerDocument || a;            return d.browser.safari || e.compatMode == 'BackCompat' ? e.body: e.documentElement        })    };    d.fn.scrollTo = function(n, j, b) {        if (typeof j == 'object') {            b = j;            j = 0        }        if (typeof b == 'function') b = {            onAfter: b        };        if (n == 'max') n = 9e9;        b = d.extend({},        k.defaults, b);        j = j || b.speed || b.duration;        b.queue = b.queue && b.axis.length > 1;        if (b.queue) j /= 2;        b.offset = p(b.offset);        b.over = p(b.over);        return this._scrollable().each(function() {            var q = this,            r = d(q),            f = n,            s,            g = {},            u = r.is('html,body');            switch (typeof f) {            case 'number':            case 'string':                if (/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)) {                    f = p(f);                    break                }                f = d(f, this);            case 'object':                if (f.is || f.style) s = (f = d(f)).offset()            }            d.each(b.axis.split(''),            function(a, i) {                var e = i == 'x' ? 'Left': 'Top',                h = e.toLowerCase(),                c = 'scroll' + e,                l = q[c],                m = k.max(q, i);                if (s) {                    g[c] = s[h] + (u ? 0 : l - r.offset()[h]);                    if (b.margin) {                        g[c] -= parseInt(f.css('margin' + e)) || 0;                        g[c] -= parseInt(f.css('border' + e + 'Width')) || 0                    }                    g[c] += b.offset[h] || 0;                    if (b.over[h]) g[c] += f[i == 'x' ? 'width': 'height']() * b.over[h]                } else {                    var o = f[h];                    g[c] = o.slice && o.slice( - 1) == '%' ? parseFloat(o) / 100 * m: o                }                if (/^\d+$/.test(g[c])) g[c] = g[c] <= 0 ? 0 : Math.min(g[c], m);                if (!a && b.queue) {                    if (l != g[c]) t(b.onAfterFirst);                    delete g[c]                }            });            t(b.onAfter);            function t(a) {                r.animate(g, j, b.easing, a &&                function() {                    a.call(this, n, b)                })            }        }).end()    };    k.max = function(a, i) {        var e = i == 'x' ? 'Width': 'Height',        h = 'scroll' + e;        if (!d(a).is('html,body')) return a[h] - d(a)[e.toLowerCase()]();        var c = 'client' + e,        l = a.ownerDocument.documentElement,        m = a.ownerDocument.body;        return Math.max(l[h], m[h]) - Math.min(l[c], m[c])    };    function p(a) {        return typeof a == 'object' ? a: {            top: a,            left: a        }    }})(jQuery);


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.