jquery if-statement scrollto

jquery - Comprobando la visibilidad de un elemento



if-statement scrollto (3)

Esta pregunta ya tiene una respuesta aquí:

Quiero comprobar si un elemento es visible y, en caso afirmativo, quiero desplazarme hacia abajo. Estoy tratando de lograr eso con el siguiente jquery:

var j = jQuery.noConflict(); jQuery(document).ready(function($) { if(j(''#element'').css(''display'') == ''block''){ j(''body'').scrollTo(''#target''); }; });

Pero no funciona.



Use .is() y :visible

var j = jQuery.noConflict(); jQuery(function($) { if($(''#element'').is('':visible'')){ $(''body'').scrollTo(''#target''); }; });


// jQuery no conflict mode var j = $.noConflict(); // retain meaning of jQuery''s handle (optional but makes it // sometimes easier if you don''t use one-letter assignments // of jQuery) (function($){ // document read $(function(){ // if element is visible (a visible #element was found) if $(''#element:visible'').size() > 0){ // scroll to #target $(''body'').scrollTo(''#target''); } }); })(j);

:visible hace más fácil. No puedes simplemente probar contra display==''block'' , también deberías probar para inline-block y otros además de verificar la configuración de visibility . Por ejemplo, el elemento podría tener display:block:visibility:hidden que no lo hace :visible .