2012-01-27 1 views
2

У меня есть модальный 500px на 500px с полосами прокрутки, отключенными на теле страницы. Внутри модала копия длинная и содержит метки привязки. Моя проблема заключается в том, что когда я нажимаю теги привязки в Chrome или Safari, тело прокручивается вместе с модальной копией, у кого есть исправление? Он отлично работает во всех других браузерах. Ниже мой JQueryJQuery, Chrome, только Safari, модальный с прокруткой и прокрутки. Нужно остановить фон от прокрутки

 $('.leftside .home-popup').click(function (e) { 
      var os = $('.home-popup').offset(); 
      var top = os.top; 
      var left = os.left; 
      var adjustleft = left - 8; 
      //call popup with no scroll bars              
      var oldBodyMarginRight = $("body").css("margin-right"); 
      $("#benefits-modal").modal({ position: [74, adjustleft], 
       onShow: function() { 
        // Turn off scroll bars 
        var body = $("body"); 
        var html = $("html"); 
        var oldBodyOuterWidth = body.outerWidth(true); 
        var oldScrollTop = html.scrollTop(); 
        var newBodyOuterWidth; 
        $("html").css("overflow-y", "hidden"); 
        newBodyOuterWidth = $("body").outerWidth(true); 
        body.css("margin-right", (newBodyOuterWidth - oldBodyOuterWidth + parseInt(oldBodyMarginRight)) + "px"); 
        html.scrollTop(oldScrollTop); // necessary for Firefox 
        $("#simplemodal-overlay").css("width", newBodyOuterWidth + "px") 
       }, 
       onClose: function() { 
        var html = $("html"); 
        var oldScrollTop = html.scrollTop(); // necessary for Firefox. 
        html.css("overflow-y", "").scrollTop(oldScrollTop); 
        $("body").css("margin-right", oldBodyMarginRight); 
        $.modal.close(); 
       }, 
       overlayClose: true 
      }); 
      $('a.modalCloseImg').css("left", "700px"); 
      return false; 
     }); 
+0

У вас есть демонстрационная страница, на которой вы можете связать нас (jsFiddle) или соответствующий html? –

ответ

1
body.css({ 
    "margin-right": (newBodyOuterWidth - oldBodyOuterWidth + parseInt(oldBodyMarginRight)) + "px", 
    "overflow": "hidden" 
}); 

Тогда:

$("body").css({ 
    "margin-right": oldBodyMarginRight, 
    "overflow": "auto" 
}); 

Это установит body CSS для overflow:hidden который предотвращает прокрутку в любом направлении.

+0

Извините за задержку, я только что вернулся к этому проекту, это не было issus. Фон продолжает прокручиваться в Safari и chrome, когда я нажимаю якорь внутри модального. Я разместил и приведу пример http://jsfiddle.net/esoteric/ZEJ7d/ – esoteric

 Смежные вопросы

  • Нет связанных вопросов^_^