【问题标题】:Add and remove jQuery plugin on window resize在窗口调整大小时添加和删除 jQuery 插件
【发布时间】:2017-11-02 00:32:38
【问题描述】:

我只在屏幕尺寸为 1200 像素或更大时才尝试添加 jQuery 插件。

我希望它在窗口加载和调整大小时起作用,但我无法让它正常工作,我希望它像 CSS 媒体查询一样工作,在每次调整大小时检查窗口大小并应用更改,在这个插件的情况。

JSFiddle

$(window).on('load resize', function() {
if (window.matchMedia("(min-width: 1200px)").matches) {
    $('.zoom').zoom(); 
  }; 
});
.center {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
}

.zoom {
  display: flex;
  align-items: center;
  justify-content: center;
  float: left;
  width: 90%;
}

.zoom img {
  width: 70%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-zoom/1.7.20/jquery.zoom.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class=center>
<div class="zoom"><img src="https://www.aussiespecialist.com/content/asp/en_sg/sales-resources/image-and-video-galleries/jcr:content/mainParsys/hero/image.adapt.1663.medium.jpg"></div>
</div>

【问题讨论】:

    标签: javascript jquery plugins resize window


    【解决方案1】:

    我会使用 jQuery 获取屏幕宽度并运行 if 语句来执行您的代码。我通常将 $(window).resize() 事件嵌套在 $(document).ready() 事件中。请看下面的代码!希望对你有帮助...

    $(document).ready(function(){
            enableZoom();
        $(window).resize(function(){
            enableZoom();
        });
    });
    function enableZoom(){
        var screen_width = $(window).width();
        if (screen_width > 1200){
            $('.zoom').zoom();
        }else if (screen_width <= 1200){
            $('.zoom').trigger('zoom.destroy');      
        } 
    }
    

    【讨论】:

    • 它不起作用,这只会在屏幕调整大小时初始化插件,并在所有屏幕尺寸下保持初始化。
    • @GabrielSouza 当你说'初始化插件'是什么意思?您的意思是添加 .zoom() 吗?
    • 是的,我只想在屏幕大于 1200px 时添加它,而不是时删除它,与 css 媒体查询的工作方式相同。
    • @GabrielSouza 我正在用一些经过测试的代码更新我的答案。看看你的想法。
    • 显然它工作正常,但我不想依赖插件函数来删除它,没有 zoom.destroy 也可以做同样的事情吗?
    猜你喜欢
    • 1970-01-01
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    相关资源
    最近更新 更多