zoukankan      html  css  js  c++  java
  • [js插件]分享一个文章内容信息提示插件Colortip

    引用

    项目中需要一个信息提示的功能,就上网找了一个插件,发现colortip实现比较简单,就定了这个插件。

    实现过程

    官网:http://tutorialzine.com/2010/07/colortips-jquery-tooltip-plugin/

    最终要实现的效果:

    colortip是将标签中的title属性的值弹出显示的,默认情况是黄色的:

     1 <!DOCTYPE html>
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     5     <title></title>
     6     <!--css文件-->
     7     <link href="Colortip/styles.css" rel="stylesheet" />
     8     <link href="Colortip/colortip-1.0/colortip-1.0-jquery.css" rel="stylesheet" />
     9 </head>
    10 <body>
    11     <div style="text-align:center;margin-top:200px;"><a href="#" title="这是个大美女">美女</a></div>
    12     <div style="text-align:center;margin-top:250px;"><a href="#" title="这是个大美女" class="black">美女</a></div>
    13 </body>
    14 </html>
    15 <!--引入需要的js-->
    16 <script type="text/javascript" src="Script/jquery-1.11.0.js"></script>
    17 <script type="text/javascript" src="Colortip/colortip-1.0/colortip-1.0-jquery.js"></script>
    18 <script type="text/javascript" src="Colortip/script.js"></script>

    效果:

     通过查看这些设置,是在colortip-1.0-jquery.js文件中进行配置的:

    (function($){
        $.fn.colorTip = function(settings){
    
            var defaultSettings = {
                color        : 'yellow',//默认颜色
                timeout        : 500
            }
            
            var supportedColors = ['red','green','blue','white','yellow','black'];//总共有6种主题的颜色
            
            /* Combining the default settings object with the supplied one */
            settings = $.extend(defaultSettings,settings);
    
            /*
            *    Looping through all the elements and returning them afterwards.
            *    This will add chainability to the plugin.
            */
            
            return this.each(function(){
    
                var elem = $(this);
                
                // If the title attribute is empty, continue with the next element
                if(!elem.attr('title')) return true;
                
                // Creating new eventScheduler and Tip objects for this element.
                // (See the class definition at the bottom).
                
                var scheduleEvent = new eventScheduler();
                var tip = new Tip(elem.attr('title'));
    
                // Adding the tooltip markup to the element and
                // applying a special class:
                
                elem.append(tip.generate()).addClass('colorTipContainer');
    
                // Checking to see whether a supported color has been
                // set as a classname on the element.
                
                var hasClass = false;
                for(var i=0;i<supportedColors.length;i++)
                {
                    if(elem.hasClass(supportedColors[i])){
                        hasClass = true;
                        break;
                    }
                }
                
                // If it has been set, it will override the default color
                
                if(!hasClass){
                    elem.addClass(settings.color);
                }
                
                // On mouseenter, show the tip, on mouseleave set the
                // tip to be hidden in half a second.
                
                elem.hover(function(){
    
                    tip.show();
                    
                    // If the user moves away and hovers over the tip again,
                    // clear the previously set event:
                    
                    scheduleEvent.clear();
    
                },function(){
    
                    // Schedule event actualy sets a timeout (as you can
                    // see from the class definition below).
                    
                    scheduleEvent.set(function(){
                        tip.hide();
                    },settings.timeout);
    
                });
                
                // Removing the title attribute, so the regular OS titles are
                // not shown along with the tooltips.
                
                elem.removeAttr('title');
            });
            
        }
    
    
        /*
        /    Event Scheduler Class Definition
        */
    
        function eventScheduler(){}
        
        eventScheduler.prototype = {
            set    : function (func,timeout){
    
                // The set method takes a function and a time period (ms) as
                // parameters, and sets a timeout
    
                this.timer = setTimeout(func,timeout);
            },
            clear: function(){
                
                // The clear method clears the timeout
                
                clearTimeout(this.timer);
            }
        }
    
    
        /*
        /    Tip Class Definition
        */
    
        function Tip(txt){
            this.content = txt;
            this.shown = false;
        }
        
        Tip.prototype = {
            generate: function(){
                
                // The generate method returns either a previously generated element
                // stored in the tip variable, or generates it and saves it in tip for
                // later use, after which returns it.
                
                return this.tip || (this.tip = $('<span class="colorTip">'+this.content+
                                                 '<span class="pointyTipShadow"></span><span class="pointyTip"></span></span>'));//显示的消息提示框是一个span标签
            },
            show: function(){
                if(this.shown) return;
                
                // Center the tip and start a fadeIn animation
                this.tip.css('margin-left',-this.tip.outerWidth()/2).fadeIn('fast');
                this.shown = true;
            },
            hide: function(){
                this.tip.fadeOut();
                this.shown = false;
            }
        }
        
    })(jQuery);

    通过该js文件,可见该插件主要是在title属性中设置显示信息的。

    总结

    colortip用起来还是非常简单的,在想要提示信息的地方加个带title属性的a标签就可以了,不过有点差强人意的地方,如果其他的标签例如按钮,加一个title,就会提示错误。 

  • 相关阅读:
    Java实现第十届蓝桥杯组队
    Java实现第十届蓝桥杯组队
    Java实现第十届蓝桥杯组队
    Java实现第十届蓝桥杯组队
    Java实现第十届蓝桥杯组队
    程序员加班奇遇
    Spring Boot导出jar包发布
    Eclipse工具栏太多,自定义工具栏,去掉调试
    ${pageContext.request.contextPath}的解释以及和request.contextPath的区别
    request 获取各种路径
  • 原文地址:https://www.cnblogs.com/wolf-sun/p/3583313.html
Copyright © 2011-2022 走看看