通过闪烁标题实现“消息提示”

模拟当有新消息到来的时候,通过在标题闪烁“新消息”字样进行提示。

在视图文件中加入以下脚本:

    <!-- Mainly scripts -->
    <script src="__PUBLIC__/js/jquery-2.1.1.min.js"></script>

    <!--提示信息-->
    <script type="text/javascript">
        ;(function($) {

            $.extend({
                /**
                 * 调用方法: var timerArr = $.blinkTitle.show();
                 *   $.blinkTitle.clear(timerArr);
                 */
                blinkTitle : {
                    show : function() { //有新消息时在title处闪烁提示
                        var step=0, _title = document.title;

                        var timer = setInterval(function() {
                            step++;
                            if (step==3) {step=1};
                            if (step==1) {document.title="【   】"+_title};
                            if (step==2) {document.title="【新消息】"+_title};
                        }, 500);

                        return [timer, _title];
                    },

                    /**
                     * @param timerArr[0], timer标记
                     * @param timerArr[1], 初始的title文本内容
                     */
                    clear : function(timerArr) { //去除闪烁提示,恢复初始title文本
                        if(timerArr) {
                            clearInterval(timerArr[0]);
                            document.title = timerArr[1];
                        };
                    }
                }
            });
        })(jQuery);

        jQuery(function($) {
            var timerArr = $.blinkTitle.show();

            setTimeout(function() {  //此处是过一定时间后自动消失
                $.blinkTitle.clear(timerArr);
            }, 10000);

            //若认为操作消失,只需如此调用: $.blinkTitle.clear(timerArr);
        });
    </script>

注意:
1、
(function($) {…})(jQuery) 实际上是匿名函数。

function(arg){…}定义了一个匿名函数,参数为arg。而调用该函数时,需要在函数后面写上括号和实参,由于操作符的优先级,函数本身也需要用括号,即:
(function(arg){…})(param)
相当于定义了一个参数为arg的匿名函数,并且将param作为参数来调用这个匿名函数

而(function($){…})(jQuery)则是一样的,之所以只在形参使用$,是为了不与其他库冲突,所以实参用jQuery
相当于funtion output(s){…};output(jQuery);或者var fn=function(s){…};fn(jQuery);
2、
$(function(){…});
或者:
jQuery(function($) {

});
允许绑定一个在DOM(不包含图片)文档载入完成后执行的函数。这个函数的作用如同$(document).ready()一样,只不过用这个函数时,需要把页面中所有需要在 DOM 加载完成时执行的$()操作符都包装到其中来。
全写是:
$(document).ready(function(){

});


版权声明:本文为liuruiqun原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。