2011-06-17 6 views
4

Я хочу удалить вертикальную полосу прокрутки после переключения на полноэкранный режим.Удалить вертикальную полосу прокрутки на полноэкранном режиме?

Это сценарий, я использую в данный момент:

<script type="text/javascript"> 
if((window.fullScreen) || (window.innerWidth == screen.width && window.innerHeight == screen.height)) { 
    $("html").css("overflow", "hidden"); 
} else { 
    $("html").css("overflow", "auto"); 
} 
</script> 

Я попытался, как это без какого-либо успеха:

<script type="text/javascript"> 
if(window.fullScreen) { 
    $("html").css("overflow", "hidden"); 
} else { 
    $("html").css("overflow", "auto"); 
} 
</script> 

Tank вы, как всегда.

EDIT: <script type="text/javascript" src="jquery.js"></script> Загружается, и другие сценарии jquery работают нормально.

EDIT: Я проверил с:

$(document).ready(function() { 
    $("body").css("overflow", "hidden"); 
}); 

И это работает! Итак, я считаю, что по какой-то причине код условия JavaScript не работает! if((window.fullScreen) || (window.innerWidth == screen.width && window.innerHeight == screen.height)) ...

EDIT:

решение найдено!

<script type="text/javascript"> 
var control = 0; 

function scrollbar(){ 
    if(event.keyCode == 122 && control == 0){ 
     //remove scrollbar 
     $("body").css("overflow", "hidden"); 
     control = 1; 
    } 
    else{ 
     //add scrollbar 
     $("body").css("overflow", "auto"); 
     control = 0; 
    } 
} 

</script> 

Если вы хотите использовать это не забудьте прикрепить функцию к телу, например, как:

<body onkeydown="scrollbar();"> 

UPDATE:

произведения в хром, опера, т.е. сафари кроме firefox! Что можно сделать, чтобы исправить firefox?

+2

Я предлагаю '$ (« тело »). Css (« переполнение »,« скрытый »)', или сделать div обертыванием всего и использовать свойство 'overflow'. – JiminP

+0

Я тоже попробовал $ («body»). Css («переполнение», «скрытый») без каких-либо успехов ... – obinoob

+0

В полноэкранном режиме мне не нужна полоса прокрутки. – obinoob

ответ

6

Похоже, что javascript запускается только один раз, когда документ загружается и не переоценивается впоследствии. Если это единственная проблема, вы должны увидеть правильное поведение, если находитесь в полноэкранном режиме, а затем загрузите страницу. Чтобы исправить это, вам придется сделать функцию из своего кода и вызывать ее каждый раз, когда изменяется размер окна. С помощью JQuery, вы можете сделать это, используя анонимную функцию:

<script type="text/javascript"> 
$(window).resize(function() { 
    if((window.fullScreen) || (window.innerWidth == screen.width && window.innerHeight == screen.height)) { 
     $("html").css("overflow", "hidden"); 
    } else { 
     $("html").css("overflow", "auto"); 
    } 
}); 

$(document).ready(function(){ 
    $(window).resize(); 
    // trigger the function when the page loads 
    // if you have another $(document).ready(), simply add this line to it 
}); 
</script> 

Это связывает функцию обработчика событий изменения размера, и вы должны увидеть правильные результаты! Если это сработает, это будет более приятным и надежным способом сделать это.

+1

Спасибо LOT BudgieInWA, ваше решение работает просто отлично! Пожалуйста, добавьте ");" в конце ... – obinoob

+0

BudgieInWA. Хорошо, пока я нажимаю F11, окно изменяется как ожидалось, но, когда в полноэкранном режиме, если щелкнуть любую ссылку в меню, появится полоса прокрутки! Как я могу решить эту проблему? – obinoob

+0

@ FCC-PT, я редактировал код, чтобы вызвать обработчик события resize при загрузке документа. – BudgieInWA

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