我需要实时启用/禁用.js插件。当用户调整浏览器窗口大小时,台式机版本变为移动版。问题是我需要禁用一些javascript(fullpage.js)并添加一些CSS。
从头到尾重新加载页面或在PC上使用全屏窗口都没有问题。问题是:如何禁用宽度小于800的fullpage.js?
我已经尝试过这些东西:

在body onresize事件中添加了此功能(不重新加载就不会有结果):

 function checkWidth() {
        if($(window).width() <= 760 ){
            $('#menu-header-button').click(function(){
                $('#navigation').toggleClass('navbar-v');
                $('#logo-mobile').toggleClass('visible');
                $('#menu-header-button').addClass('disabled');
                 setTimeout(function(){
                    $('#menu-header-button').removeClass('disabled');
                 }, 500);
            });
        } else if($(window).width() > 760 ){
          $('#fullpage').fullpage({
              menu: '#menu',
              anchors: ['firstPage', 'secondPage', '3rdPage', '4thPage'],
              css3: true,
              afterLoad: function(anchorLink, index){
              if( anchorLink == 'firstPage'){
                   $('#navigation').removeClass('navbar-v');
              }
          },
              onLeave: function(index, nextIndex, direction){
              setTimeout(function(){
                    $('#navigation').addClass('navbar-v');
              }, 500);
              }
            });
        }


}

这仅在某些时候有效:

$(window).onresize= checkWidth();
function checkWidth() {
                    if($(window).width() == 761 ){
                        location.reload(true);
                    }
                    //...
}


这根本没有用:

   $(window).onresize= checkWidth();
    function delayCheckWidth(){
      setTimeout(function(){
                              checkWidth();
                           }, 50); //I thought some delay time can be useful here
    }
    function checkWidth() {
                        if($(window).width() == 761 ){
                            location.reload(true);
                        }
                        //...
    }


我签出的相关主题:


Throttling
How to disable / Enable plugins?
Enable / Disable JavaScript code
How to disable / Enable plugins?
Enable and disable jquery knob dynamically
Disable and enable jQuery context menu
还有很多。


没什么关于实时的,也没有什么有趣/无助的。

您有什么建议吗?也许我不需要这样走吗?

最佳答案

您是否尝试过fullPage.js的responsive选项?
不知道这是您想要的还是真的需要完全破坏fullPage.js。

fullPage.js documentation


  响应:(默认值0)将在定义的宽度(以像素为单位)下使用正常滚动(autoScrolling:false)。如果用户希望将fp响应类用于其自己的响应CSS,则将其添加到插件的容器中。例如,如果设置为900,则每当浏览器的宽度小于900时,插件就会像正常站点一样滚动。


在fullPage.js中正常滚动将保留height部分以及分配给菜单的事件或水平滑块的控制箭头,但它将在任何网站上正常滚动。您可以看到该模式here的演示。

无论如何,如果您确实出于任何原因想要破坏fullPage.js,则需要使用提供的方法。
从文档:

$ .fn.fullpage.destroy(类型)


  销毁插件事件,并销毁其HTML标记和样式。使用AJAX加载内容时的理想选择。 ()
  
  类型:可以为“空”或“全部”。如果全部通过,则将删除fullpage.js使用的HTML标记和样式。这样,将保留原始HTML标记,即在进行任何插件修改之前使用的标记。


//destroy any plugin event (scrolls, hashchange in the URL...)
$.fn.fullpage.destroy();

//destroy any plugin event and any plugin modification done over your original HTML markup.
$.fn.fullpage.destroy('all');

关于javascript - 如何在网页上启用/禁用(实时)javascript插件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27341881/

10-12 02:40