IE 6 по сравнению с position:fixed

Я подготовил функцию, объединив решение Марка Байерса с комментариями Реймунда и Мортена Цилмера (относительный путь и включая пустые каталоги). В качестве наилучшей практики в построении файла ZipFile используется with.

Функция также подготавливает имя файла zip по умолчанию с именем zip-каталога и расширением .zip. Следовательно, он работает только с одним аргументом: исходным каталогом, который нужно сжать.

import os
import zipfile

def zip_dir(path_dir, path_file_zip=''):
if not path_file_zip:
    path_file_zip = os.path.join(
        os.path.dirname(path_dir), os.path.basename(path_dir)+'.zip')
with zipfile.ZipFile(path_file_zip, 'wb', zipfile.ZIP_DEFLATED) as zip_file:
    for root, dirs, files in os.walk(path_dir):
        for file_or_dir in files + dirs:
            zip_file.write(
                os.path.join(root, file_or_dir),
                os.path.relpath(os.path.join(root, file_or_dir),
                                os.path.join(path_dir, os.path.pardir)))
7
задан Sampson 2 July 2009 в 13:29
поделиться

4 ответа

Не поддержка IE6! Чем раньше люди перестанут взламывать сайты для IE6, тем меньше у него будет поддержки и тем быстрее он умрет! Или добавьте этот код после вашего первого блока стиля;

<!--[if IE 6]>  
<style type="text/css">  
#sidebar_right, #sidebar_left {  
position:absolute; /* position fixed for IE6 */  
top:expression(0+((e=document.documentElement.scrollTop)?e:document.body.scrollTop)+'px');  
left:expression(0+((e=document.documentElement.scrollLeft)?e:document.body.scrollLeft)+'px');  
}  
</style>  
<![endif]-->

Результат не очень гладкий, но он работает.

ОБНОВЛЕНИЕ

Я не совсем понял, как это следует использовать; просто добавьте идентификатор (или класс) любых элементов, которые имеют "position: fixed", в список объявлений в начале указанного выше блока, и они будут вести себя в IE6.

20
ответ дан 6 December 2019 в 06:50
поделиться

да IE6 отстой. вот хак ...

_position: absolute;
_top: expression(0+((e=document.documentElement.scrollTop)?e:document.body.scrollTop)+'px');

, который в основном говорит IE6, что он должен оставаться в абсолютном левом верхнем углу даже при прокрутке. это должно быть под остальной частью вашего css для элемента, чтобы он заменил его в IE6.

вот он для вашей левой панели ...

#leftBar {
position:fixed;
top:0;
left:0;
width:200px;
_position:absolute;
_top:expression(0+((e=document.documentElement.scrollTop)?e:document.body.scrollTop)+'px');
}
5
ответ дан 6 December 2019 в 06:50
поделиться

Нашел это решение, которое я настроил (в основном я изменил следующие строки: $ ('# sidebar_left'). Css ('top', document.documentElement.scrollTop);):

// Editing Instructions
// 1. Change '#your_div_id' to whatever the ID attribute of your DIV is
// 2. Change '175' to whatever the height of your header is, if you have no header, set to 0

/********************************
*   (C) 2009 - Thiago Barbedo   *
*   - tbarbedo@gmail.com        *
*********************************/
window.onscroll = function()
{
    if( window.XMLHttpRequest ) {
        if (document.documentElement.scrollTop > 299 || self.pageYOffset > 299 && document.documentElement.scrollBottom > 100) {
            $('#sidebar_left').css('top',document.documentElement.scrollTop);
            $('#sidebar_right').css('top',document.documentElement.scrollTop);
        } else if (document.documentElement.scrollTop < 299 || self.pageYOffset < 299) {
            $('#sidebar_left').css('top','299px');
            $('#sidebar_right').css('top','299px');
        }
    }
}

Он дрожит и выглядит плохо, но работает во всех браузерах, включая IE6.

0
ответ дан 6 December 2019 в 06:50
поделиться

Я недавно написал плагин jQuery, чтобы получить позицию: фиксированные работающие в IE 6+. Это [1129222] Джиттер на прокрутке, он смотрит на возможности (не пользователь-агент), работает в Internet Explorer 6, 7, 8.

Если вы используете строгий режим в положении IE7 +: исправлено Почитаемый, но по умолчанию IE7 + работает в режиме quirks. Этот плагин проверяет возможности для браузера, и если это не почетное положение: исправлено, то это реализует Fix jQuery.

http://code.google.com/p/fixedPosition/

Что-то вроде этого может работать для вас:

$(document).ready(function(){
   $("#chatForm").fixedPosition({
      debug: true,
      fixedTo: "bottom"
   });
});

Вам может потребоваться внесение небольших корректировок CSS, чтобы она работала для вашего кода. Я работаю над ценностями «компенсировать» как варианты, как мы говорим.

0
ответ дан 6 December 2019 в 06:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: