【问题标题】:jQuery visible selector not workingjQuery可见选择器不起作用
【发布时间】:2011-09-08 23:23:34
【问题描述】:

尝试使用 :visible 但它不起作用。

$('.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);

【问题讨论】:

    标签: javascript jquery class filter visible


    【解决方案1】:

    试试if ($('.landscape').is(':visible')){}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-10
      • 2016-12-19
      • 2015-03-25
      • 1970-01-01
      相关资源
      最近更新 更多