zoukankan      html  css  js  c++  java
  • 回忆之浮窗

    直接看效果点这里

    HTML

    <!DOCTYPE html>
    <html>
    <head lang="zh-CN">
        <meta charset="utf-8">
        <title> 浮窗 </title>
        <style>
            * { margin: 0; padding: 0; }
            .staff { width: 1200px; margin: 0 auto; height: 800px; line-height: 800px; text-align: center; font-size: 40px; background-color: #ccc; }
            .mod {
                width: 100px;
                height: 100px;
                background-color: red;
            }
        </style>
    </head>
    <body style="height: 2000px">
    <div class="staff">width*1200</div>
    <div class="mod t-l">top left</div>
    <div class="mod t-c">top center</div>
    <div class="mod t-r">top right</div>
    
    <div class="mod c-l">center left</div>
    <div class="mod c-c">center center</div>
    <div class="mod c-r">center right</div>
    
    <div class="mod b-l">bottom left</div>
    <div class="mod b-c">bottom center</div>
    <div class="mod b-r">bottom right <a href="javascript:;" class="J_BackTop">返回</a></div>
    <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
    <script src="jquery.popup.js"></script>
    <script>
        $('.t-l').popup({
            'pos': 'top left',
            'screenWidth': 1200
        });
    
        $('.t-c').popup({
            'pos': 'top center',
            'screenWidth': 1200
        });
    
        $('.t-r').popup({
            'pos': 'top right',
            'screenWidth': 1200
        });
    
    
        $('.c-l').popup({
            'pos': 'center left',
            'screenWidth': 1200
        });
    
        $('.c-c').popup({
            'pos': 'center center',
            'screenWidth': 1200
        });
    
        $('.c-r').popup({
            'pos': 'center right',
            'screenWidth': 1200
        });
    
    
        $('.b-l').popup({
            'pos': 'bottom left',
            'screenWidth': 1200
        });
    
        $('.b-c').popup({
            'pos': 'bottom center',
            'screenWidth': 1200
        });
    
        $('.b-r').popup({
            'pos': 'bottom right',
            'screenWidth': 1200,
            'backTop': 400
        });
    </script>
    </body>
    </html>
    View Code

    JS

    /**
     * @description: 浮窗
     * @author: jununx@gmail.com
     * @update: 2014/11/10
     *
     * @param pos{string} 定位位置,可选 ['top left', 'top center', 'top right', 'center left', 'center center', 'center right', 'bottom left', 'bottom center', 'bottom right']
     * @param screenWidth{number} 可选,贴近页面宽,例如:页面主体宽960,想让浮窗贴着主体对齐时设置这个宽度
     * @param backTop{number|object} 如果有参数就表示这个对象或者里面的子元素有返回顶部,如果是number就表示speed,如果是object就给里面需要返回顶端功能的元素设置{'childClass': 'yourClassName', 'speed': number}
     */
    
    ;(function($){
    
        var methods = {
            init: function(opts){
                this.bindEvents(opts);
            },
            isIE6: function(){
                return (!-[1,] && !window.XMLHttpRequest);
            },
            setPos: function(opts){
                var win = $(window),
                    scrollLeft = this.isIE6() ? win.scrollLeft() : 0,
                    scrollTop = this.isIE6() ? win.scrollTop() : 0,
                    winW = win.width(),
                    winH = win.height(),
                    objW = opts.that.width(),
                    objH = opts.that.height(),
                    winHalfW = (winW - objW) / 2,
                    winHalfH = (winH - objH) / 2,
                    screenWidth = opts.screenWidth,
                    screenLeft = screenWidth ? (winW - screenWidth) / 2 - objW : 0,
                    screenRight = screenWidth ? (winW - screenWidth) / 2 + screenWidth : winW - objW,
                    pos = {
                        'top left': {
                            'top': scrollTop,
                            'left': screenLeft
                        },
                        'top center': {
                            'top': scrollTop,
                            'left': winHalfW
                        },
                        'top right': {
                            'top': scrollTop,
                            'left': screenRight
                        },
                        'center left': {
                            'top': winHalfH + scrollTop,
                            'left': screenLeft
                        },
                        'center center': {
                            'top': winHalfH + scrollTop,
                            'left': winHalfW + scrollLeft
                        },
                        'center right': {
                            'top': winHalfH + scrollTop,
                            'left': screenRight
                        },
                        'bottom left': {
                            'top': winH - objH + scrollTop,
                            'left': screenLeft
                        },
                        'bottom center': {
                            'top': winH - objH + scrollTop,
                            'left': winHalfW + scrollLeft
                        },
                        'bottom right': {
                            'top': winH - objH + scrollTop,
                            'left': screenRight
                        }
                    };
    
                if(this.isIE6()){
                    opts.that.css('position', 'absolute').css(pos[opts.pos]);
                }else{
                    opts.that.css('position', 'fixed').css(pos[opts.pos]);
                }
            },
            bindEvents: function(opts){
                var that = this;
                $(window).on('load scroll resize', function(){
                    that.setPos(opts);
                });
                if (typeof opts.backTop === 'number') {
                    opts.that.on('click', function(){
                        that.backTop(opts.backTop);
                    });
                } else if (typeof opts.backTop === 'object') {
                    opts.that.find('.'+opts.backTop.childClass).on('click', function(){
                        that.backTop(opts.backTop.speed);
                    });
                }
            },
            backTop: function(speed){
                $('html, body').animate({'scrollTop': 0}, speed);
                return false;
            }
        };
    
        $.fn.popup = function(opts){
            opts = $.extend({
                'that': this,
                'pos': 'bottom right',
                'screenWidth': 0,
                'backTop': 0
            }, opts || {});
            methods.init(opts);
            return this;
        };
    
    })(jQuery);
    
    //use
    $('.t-l').popup({
            'pos': 'top left',
            'screenWidth': 1200
        });
    
        $('.t-c').popup({
            'pos': 'top center',
            'screenWidth': 1200
        });
    
        $('.t-r').popup({
            'pos': 'top right',
            'screenWidth': 1200
        });
    
    
        $('.c-l').popup({
            'pos': 'center left',
            'screenWidth': 1200
        });
    
        $('.c-c').popup({
            'pos': 'center center',
            'screenWidth': 1200
        });
    
        $('.c-r').popup({
            'pos': 'center right',
            'screenWidth': 1200
        });
    
    
        $('.b-l').popup({
            'pos': 'bottom left',
            'screenWidth': 1200
        });
    
        $('.b-c').popup({
            'pos': 'bottom center',
            'screenWidth': 1200
        });
    
        $('.b-r').popup({
            'pos': 'bottom right',
            'screenWidth': 1200,
            'backTop': 400
        });
  • 相关阅读:
    Proj THUDBFuzz Paper Reading: PMFuzz: Test Case Generation for Persistent Memory Programs
    入围 WF 后训练记
    算法竞赛历程
    2021 多校 杭电 第十场
    2021 多校 杭电 第九场
    2021 多校 牛客 第十场
    2021 多校 牛客 第九场
    2021 多校 杭电 第八场
    2021 多校 杭电 第六场
    2021 多校 杭电 第七场
  • 原文地址:https://www.cnblogs.com/jununx/p/4472910.html
Copyright © 2011-2022 走看看