Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

felipesagan

Dois Contadores

Recommended Posts

Olá tenho dois plugins no meu site,um é o mousstop.js o outro é o suspersized.Um é um slider o outro um plugin que muda o z-index qndo o mouse para de se mover,ou quando se mexe,ou mesmo quando está fora do viewport.Demorei pra perceber qual o motivo do conflito,até que percebi que o motivo é o contador,teria uma forma de deixar esse contador exclusivo?Por meio de váriáveis talvez?Pois o contador do supersized,interfere no contador do mousestop.js,(Postei somente o mousestop.js,se tiver uma forma de fazer com que a contagem de tempo seja exclusiva do mousestop.js ,agradeço,vlw!)

Scripts no html:

<script type="text/javascript">
         
        $(window)
        .mousestop(function() { document.getElementById('supersized').style.zIndex=100000; })
        .mousemove(function() {document.getElementById('supersized').style.zIndex=-999; })
        .mouseout(function() { document.getElementById('supersized').style.zIndex=100000; });

        $(window).mousestop().trigger('mousestop');
       

        
      </script>

Código mousestop.js:

(function($) {
    $.event.special.mousestop = {
        setup: function(data) {
            $(this).data('mousestop', _data(data))
                   .bind('mouseenter.mousestop', _mouseenter)
                   .bind('mouseleave.mousestop', _mouseleave)
                   .bind('mousemove.mousestop', _mousemove);
        },
        teardown: function() {
            $(this).removeData('mousestop')
                   .unbind('.mousestop');
        }
    };

    function _mouseenter() {
        var _self = this,
            data = $(this).data('mousestop');

        this.movement = true;

        if(data.timeToStop) {
            this.timeToStopTimer = window.setTimeout(function() {
                _self.movement = false;
                window.clearTimeout(_self.timer);
            }, data.timeToStop);
        }
    }

    function _mouseleave() {
        window.clearTimeout(this.timer);
        window.clearTimeout(this.timeToStopTimer);
    }
    
    function _mousemove() {
        var $el = $(this),
            data = $el.data('mousestop');

        if(this.movement) {
            window.clearTimeout(this.timer);
            this.timer = window.setTimeout(function() {
                $el.trigger('mousestop');
            }, data.delay);
        }
    }

    function _data(data) {
        if($.isNumeric(data)) {
            data = {delay: data};
        }
        else if(typeof data !== 'object') {
            data = {};
        }

        return $.extend({}, $.fn.mousestop.defaults, data);
    }

    $.fn.mousestop = function(data, fn) {
        if (typeof data === 'function') { fn = data; }
        return arguments.length > 0 ? this.bind('mousestop', data, fn) : this.trigger('mousestop');
    };

    $.fn.mousestop.defaults = {
        delay: 3000,
        timeToStop: null
    };
	
})(jQuery);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.