码迷,mamicode.com
首页 > Web开发 > 详细

个人第一个jquery插件(tips)

时间:2016-10-08 16:04:06      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:

js代码

/**
 * Created by joesbell on 2016/10/8.
 */
;(function($) {
    var defaults = {
        background:"#000",//tips的背景颜色
        color:"white",
        position:"r",//出现的位置 l--左边, r--右边  t--顶部  b--底部
        parWidth:"",//父级元素的宽度
        parHeight:"",//父级元素的高度
        tipsJ:"10px",//tips的距离父级距离偏移量
        tipsP:"20px",//tips的居中位置偏移量
        padding:"10px",//文字提示内边距
        txt:"helloWorld",//文字
        IconPos:"10px",//小箭头居中位置偏移量
        speed:"200",//tips出现的速度延迟
    };
    function se(){
        setTimeout(function () {
            $(".tip_JS").remove();
        },200)
    };

    $.fn.JSTips= function(options) {
        var options = $.extend({}, defaults, options);

        return this.each(function() {
            var parentWidth=$(this).width();
            var parentHeight=$(this).height();
            options.parWidth=parentWidth;
            options.parHeight=parentHeight;
//                $(this).append(joesO(options));
            $(this).on("mouseenter",function () {
                $(this).append(joesTips(options));
            });
            $(this).on("mouseleave",function () {
                se();
            })
        });
    };
    function joesTips(opts) {
        var layEle=$("<div class=‘tip_JS‘></div>");
        var layE=$("<div class=‘txt_JS‘></div>");
        var cs=$("<i></i>");
        var pe=$("<p class=‘tipTxt_JS‘></p>")
        var tipsP=parseInt(opts.tipsP);
        var tipsJ=parseInt(opts.tipsJ);
        var PW=opts.parWidth;
        var PH=opts.parHeight;
        var position=opts.position;
        var bg=opts.background;
        var pd=parseInt(opts.padding);
        var txt=opts.txt;
        var IconPos=opts.IconPos;
        var speed=parseInt(opts.speed);
        var color=opts.color;
        pe.appendTo(layE).css({
            padding:pd,
        });
        pe.html(txt);
        layE.appendTo(layEle);
        $(".test:after").css({
            "border-color":bg
        });
//            tips出现在右边
        if(position=="r"){
            layEle.css({
                background:bg,
                left:PW+tipsJ,
                top:tipsP,
                color:color
            }).show(speed);
            cs.addClass("triangle-left").css({
                top:IconPos,
                "border-right-color":bg
            }).appendTo(layE);
        }else if(position=="l"){
            //            tips出现在左边
            layEle.css({
                background:bg,
                right:PW+tipsJ,
                top:tipsP,
                color:color
            }).show(speed);
            cs.addClass("triangle-right").css({
                top:IconPos,
                "border-left-color":bg
            }).appendTo(layE);

        }else if(position=="b"){
            layEle.css({
                background:bg,
                top:PH+tipsJ,
                left:tipsP,
                color:color
            }).show(speed);
            cs.addClass("triangle-up").css({
                left:IconPos,
                "border-bottom-color":bg
            }).appendTo(layE);
            //            tips出现在底部

        }else if(position=="t"){
            //            tips出现在顶部
            layEle.css({
                background:bg,
                bottom:PH+tipsJ,
                left:tipsP,
                color:color
            }).show(speed);
            cs.addClass("triangle-down").css({
                left:IconPos,
                "border-top-color":bg
            }).appendTo(layE);

        }
        return layEle
    }
})(jQuery);

css代码

/*上箭头*/
.triangle-up {
    position: absolute;
    width:0;
    height:0;
    bottom: 100%;
    border:10px solid transparent;
    border-bottom-color:yellow;
}
/*下箭头*/
.triangle-down {
    position: absolute;
    width:0;
    height:0;
    top:100%;
    /*transform: translate(-50%,-50%);*/
    border:10px solid transparent;
    border-top-color:yellow;
}
/*左箭头*/
.triangle-left {
    position: absolute;
    width:0;
    height:0;
    right: 100%;
    border:10px solid transparent;
    border-right-color:yellow;
}
/*右箭头*/
.triangle-right {
    position: absolute;
    width:0;
    height:0;
    left: 100%;
    margin: auto;
    /*transform: translate(-50%,0);*/
    border:10px solid transparent;
    border-left-color:yellow;
}
.tip_JS{
    position: absolute;
    display: none;
    width: auto;
}
.txt_JS{
    position: relative;
}
.tipTxt_JS{
    white-space: nowrap;
}

测试

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }

        .p{
            position: relative;
            width: 500px;
            height: 500px;
            background: #000;
            margin: 0 auto;
            margin-top: 200px;
        }
    </style>
    <link rel="stylesheet" href="./Tips/myTips.css">
</head>
<body>
<div class="p">
    <p style="color: wheat">我的第一个tips插件</p>
</div>
</body>
<script src="jquery-1.12.2.min.js"></script>
<script src="./Tips/myTips.js"></script>
<script>


    $(".p").JSTips({
//        background:"rgba(0,0,0,0.5)",
//        position:"l",
//        tipsP:"150px",
//        txt:"helloWorld",
//        IconPos:"10px",
//        speed:"200",
    });
</script>
</html>

 

个人第一个jquery插件(tips)

标签:

原文地址:http://www.cnblogs.com/joesbell/p/5938740.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!