使用媒体查询来操纵jquery手风琴

时间:2013-10-14 20:08:00

标签: javascript jquery html css jquery-ui

你好,我在使用这款jQuery手风琴时遇到了困难。我想使用jQuery手风琴为移动平台显示内容,并在更大的屏幕尺寸上销毁手风琴。除了两个问题,一切都很好。

  1. 只有当文档窗口被重新调整大小并且在文档加载时不被销毁时,才会销毁手风琴。

  2. 一旦手风琴被摧毁,当我将文件窗口调整为移动尺寸时,我无法再次使手风琴工作。

  3. 这里有一些代码:

    <div class="content-wrap">
                <div class="container">
                    <div class="row">
                        <div class="content-fill">
                            <div class="content">
                                <div class="testimonials col-md-6 col-lg-6">
                                    <h1>section 1</h1>
                                    <p>this is a paragraph</p>
                                </div>
                                <div class="social col-sm-6 col-md-3 col-lg-3">
                                    <h1>section 2</h1>
                                    <div class="social-wrap">
                                        <a class="twitter-timeline" width="100%" data-chrome="transparent noscrollbar" href="https://twitter.com/xxxxxx" data-widget-id="383311602641952769">Tweets by @xxxxxx</a>
                                    </div>
                                </div>
                                <div class="news col-sm-6 col-md-3 col-lg-3">
                                    <h1>section 3</h1>
                                    <p>this is a paragraph</p>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
    
      // <![CDATA[
         var $ = jQuery.noConflict(); $(document).ready(function()
        { 
    
            $('.content').addClass('accordion');
    
            $(window).resize(function() {
                if ($('.social').css('float') == 'left')    {
                    $('.content').accordion('destroy');
                } else if($('.social').css('float') == 'none')   {
                    $('.content').accordion('enable');
                }
            });
    
             $(".accordion").accordion({
                collapsible: true,
                header: "h1",
                heightStyle: "fill",
                });
    
                //getter variables
                var collapsible = $(".accordion").accordion("option","collapsible");
                var header = $(".accordion").accordion("option","header");
                var heightStyle = $(".accordion").accordion("option","heightStyle");
    
                $('.carousel').carousel({ interval: 4000, cycle: true }); 
    
            }); // ]]>
    

3 个答案:

答案 0 :(得分:1)

destroy替换为disable,并为load事件添加处理程序:

function accordionSwitch() {
    if ($('.social').css('float') == 'left')    {
        $('.content').accordion('disable');
    } else if($('.social').css('float') == 'none')   {
        $('.content').accordion('enable');
    }
}

$(window).on('resize load', accordionSwitch);

Accordion documentationdestroy方法

  

完全删除了手风琴功能 。这将使元素返回到初始化前状态。

答案 1 :(得分:1)

那你为什么不使用媒体查询在大屏幕上隐藏手风琴并在“小”屏幕上显示呢?

@media (max-width: 797px) {
    . accordion {
        display: block;
    }
}

,您的默认样式是

.accordion {
    display: none;
}

答案 2 :(得分:0)

不要启用和销毁你的手风琴。只需根据屏幕大小运行不同的功能。这对您来说是最简单的解决方案,然后您不必在屏幕大小调整上运行。