jQuery видимый селектор не работает - PullRequest
2 голосов
/ 09 сентября 2011

пытается использовать: видимый и не работает.

ни $('.landscape:visible'), ни $('.landscape').filter(':visible')

Моя цель состоит в том, чтобы создать переменную любой видимой пейзажной картинки, взять ее высоту, а затем применить ее к портретным изображениям для согласованности.

В целях тестирования третья навигационная кнопка, #w, установлена ​​для записи значения этой высоты с использованием переменной vincent.

полигон: http://brantley.dhut.ch/

JavaScript:

(function($){
    $.respond = function(callback) {

        var element = $('#main');

        $('.z').hide();

        $(document).ready(function() {
            dimensions();
        });

        $(window).load(function() {
            dimensions();
            $('#load').fadeOut('fast', function() {
                $('.z:first').fadeIn('slow');
                $('footer').fadeIn('slow');
            });
        });

        $(window).resize(function() {
            dimensions();
        });

        //Adjust image size
        function dimensions() {
            return element.each(function() {
                var i = $('.z', element);
                $(i).each(function(){

                    var browserWidth = $(window).width();
                    var imgRatio = $(this).width() / $(this).height()
                    var availableHeight = ($(window).height() - $('header').height() - $('footer').height() - 80)
                    var browserRatio = browserWidth / availableHeight
                    var zzz = $('.z').height();
                    /* resize functions
                    $(this).height(availableHeight).width('auto');
                    $(this).width(browserWidth - 40).height('auto');
                    */

                    /* image sizing logic */

                    if (imgRatio >= 1) {
                        $(this).addClass('landscape');
                    }

                    var vincent = $('.landscape').filter(':visible').height();

                    if (browserRatio >= imgRatio) {
                        if (availableHeight <= 312) {
                            /* Landscape */
                            $('body').css('background', 'yellow');
                            $(this).width(browserWidth - 40).height('auto');
                        } else {
                            $(this).height(availableHeight).width('auto');
                            $('body').css('background', 'green');
                        }
                    } else {
                        if (availableHeight <= 312) {
                            /* Portrait */
                            $('body').css('background', 'yellow');
                            $(this).height(200).width('auto');
                        } else {
                            $(this).width(browserWidth - 40).height('auto');
                            $('body').css('background', 'blue');
                        }
                    }

                    /* horizontally center content */
                    $(this).css('margin-left', (browserWidth - $(this).width())/2);
                    $('#w').text(vincent);

                });

                return false;

            });
        };

    //callback();   
    };
})(jQuery);

1 Ответ

1 голос
/ 09 сентября 2011

Попробуйте if ($('.landscape').is(':visible')){}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...