Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   position fixed в IE6 (https://javascript.ru/forum/misc/7317-position-fixed-v-ie6.html)

sdff 26.01.2010 14:22

position fixed в IE6
 
Народ, помогите, кто знает.

Нужно, чтобы по нажатии на ссылку по середине окна(как по горизонтали, так и по вертикали) плавно появлялся скрытый div с затемнением остальной части экрана, что-то вроде lightbox'а. На самом div'е будет форма. Если пользователь нажимает вне этого блока, он(блок) также плавно удаляется с экрана.

Проблемы:
1) я сам - не очень(даже "почти не") шарю в JS.
2) position: fixed и IE не знакомы друг с другом

Привожу код того, что на данный момент удалось забубенить:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<script type="text/javascript" src="jquery-1.4.min.js"></script>

<script type="text/javascript">

$(document).ready(function(){

$("#m").css("height", $(document).height());


$("#b").click(function(){
$("#m").fadeIn("fast");
$("#map").fadeIn("fast");
return false;
});

$("#m").click(function(){
$("#m").fadeOut("fast");
$("#map").fadeOut("fast");
return false;
});

});

$(window).bind("resize", function(){
$("#m").css("height", $(document).height());
});

</script>
<style>
#map { position: fixed; background-color: #00f; top: 50%; left: 50%; margin:-240px 0 0 -320px; width: 640px; height: 480px; z-index: 200; display: none; opacity: 1; -moz-opacity: 1; -khtml-opacity: 1; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=100);}

* html #map {
  position: absolute;
  top: expression(document.getElementsByTagName( 'body' )[0].scrollTop +200+ "px");
  left: 50%;
  margin:-240px 0 0 -320px;
}
</style>
</head>
<body>
<div id="map">123</div>

<a href="#" id="b">показать блок</a><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br><Br>

<div id="m" style="background-color: #000000;position:absolute; top:0; left:0; width:100%; z-index:100; display: none; opacity: .3; -moz-opacity: 0.3; -khtml-opacity: 0.3; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);" onclick="">&nbsp;</div>

</body>
</html>


Просьба сильно не возмущаться, еще раз говорю, я с JS далеко не на Ты. Лучше помогите закроссбраузерить это дело, или просто объективно и конструктивно покритикуйте.

PeaceCoder 26.01.2010 14:25

Цитата:

Сообщение от sdff
2) position: fixed и IE не знакомы друг с другом

работает с ИЕ7

sdff 26.01.2010 14:43

Цитата:

работает с ИЕ7
ну а IE6? По статистике с 6-м ходят порядка 30% посетителей сайта. Как он(IE) мне надоел, вы не представляете. Вечный гемор - для всех сайтов пишешь код, а для IE исправляешь его :)

PeaceCoder 26.01.2010 15:07

На дворе скоро ие9 пора ие6 говорить досвидания.

Kolyaj 26.01.2010 15:22

Цитата:

Сообщение от PeaceCoder
На дворе скоро ие9 пора ие6 говорить досвидания.

Когда ж быдлокодеры поймут, что не им это решать, а пользователям сайта. Если вам на 30% пользователей (для случая sdff) насрать, так может на все 100% забить, и не делать сайт совсем?

PeaceCoder 26.01.2010 15:47

Цитата:

Сообщение от Kolyaj
Когда ж быдлокодеры поймут, что не им это решать, а пользователям сайта. Если вам на 30% пользователей (для случая sdff) насрать, так может на все 100% забить, и не делать сайт совсем?

вопервых следите за словами. быдло у Вас может тусуется, а тут нормальные люди.
во вторых. где статистика что 3ть инета пользуется ие6 ? да все выпускаемые операционные сисетмы винды уже выходят минимум с ие7 а то и ие8. Вы себе вдолбили что 30% сидят и все. А рынок меняется, а Вы за ним не следите. К вашему сведению статистика на конец 2009 года из них 16% ие6 и эта цифра падает с каждым месяцем. + ИЕ уже не браузер по умолчанию в винде. за это компанию майкрософт штрафуют за монополию браузеров.
А на западе вообще на ие6 уже плют и требуют поддержку ие7+, так что ие6 умрет и это не за горами.

sdff 26.01.2010 15:55

Блин, у меня на сайте статистика mail.ru - 29% юзают IE6 и Kolyaj прав насчет того, что треть своих пользователей убить - это просто бред. Да пусть даже 16%, да хоть 10%. Это каждый десятый пользователь. Я не одобряю как IE6, так и IE вообще как таковой, но ориентироваться надо на то, что еще много людей им пользуются.

и еще, я уверен, что у IE9 будет опять столько косяков, которые нужно будет фиксить, что опять хочется дядеБиллу высказать свои эмоции. :)

Вот почему-то ни один браузер столько гемора не доставляет.

Kolyaj 26.01.2010 15:57

Цитата:

Сообщение от PeaceCoder
вопервых следите за словами. быдло у Вас может тусуется, а тут нормальные люди.

Не волнуйтесь, быдло != быдлокодер, просто устоявшийся термин. Если человек советует не поддерживать браузер только потому, что лично он не умеет под него верстать, то я считаю его быдлокодером. Считайте это моим личным мнением.

Цитата:

Сообщение от PeaceCoder
где статистика что 3ть инета пользуется ие6 ?

Я специально, предвидя этот вопрос, отметил в скобках, что это касается конкретно сайта ТС. Средняя температура по больнице всегда мало кого интересует. Если вы пишете хабрахабр, то там, разумеется, будет мизерный процент ИЕ6, если же создаётся сайт, нацеленный на корпоративный сектор, то ИЕ6 там будет достаточно много.

Я на прошлой работе поддерживал несколько сайтов, одна продажа с одного из которых обеспечивала годовую поддержку всех. Слегка глупо при таком раскладе забивать даже на 5% пользователей, не находите?

PeaceCoder 26.01.2010 15:58

Цитата:

Сообщение от sdff
Блин, у меня на сайте статистика mail.ru - 29% юзают IE6 и Kolyaj

незнаю где вы нашли такую цифру. я куда не ткнусь 10-15%.
Цитата:

Сообщение от sdff
дядеБиллу

дядяБли уже не заведует майкрософт в прямом плане, если не слышали.

PeaceCoder 26.01.2010 16:00

Цитата:

Сообщение от Kolyaj
Я на прошлой работе поддерживал несколько сайтов, одна продажа с одного из которых обеспечивала годовую поддержку всех. Слегка глупо при таком раскладе забивать даже на 5% пользователей, не находите?

А на таких сайтах, как правило, не надо наворотов, вот и весь сказ.

sdff 26.01.2010 16:03

ну вот, например, статистика майловская по теме "погода" _ttp://top.mail.ru/Rating/References-Weather/Today/Hosts/1.html#1

у первых трех(открытых) сайтов 19-22%, уже не 10-15. Это ж фактически каждый 5 посетитель. Неужели, если у Вас в день 1000 хостов, Вы так просто выкинете 200 из них? Имхо бред.

Kolyaj 26.01.2010 16:04

Цитата:

Сообщение от PeaceCoder
А на таких сайтах, как правило, не надо наворотов, вот и весь сказ.

Интересный вывод.

PeaceCoder 26.01.2010 16:12

Цитата:

Сообщение от Kolyaj
Интересный вывод.

А если заказчик все равно хочет так, а МЫ знаем что оно будет так только там, то сразу предупреждать что так будет только там, а в других будет так и никак иначе не получится. Вот еще один сказ.

П.С. Я не против поддержки ие6, я за то что бы пользователи зайдя на сайт не орали заказчику "вот тут баг или что как-то не так все работает и т.п." и следом заказчик долбит мозги программисту, который, не уследил это и не предупредил. Вот мое мнение.

e1f 26.01.2010 18:17

Хм. А почему же он, программист этот,
Цитата:

не уследил это и не предупредил
Это ведь его работа.

PeaceCoder 26.01.2010 18:18

Цитата:

Сообщение от e1f
Это ведь его работа.

Обычно с заказчиком разговор короткий получается... программисту главно что? узнать что от него хотят, а вот обсудить это не часто получается с заказчиком, то времени нет у заказчика, то еще что-то.

e1f 26.01.2010 18:38

Так какой вообще разговор тогда? Программист сделал не то, что нужно -- в котируемом браузере ( как ни крутите, ИЕ6 используется ) сайт не работает/работает через ж. Кто виноват?

PeaceCoder 26.01.2010 18:46

Цитата:

Сообщение от PeaceCoder
то времени нет у заказчика, то еще что-то.

Цитата:

Сообщение от e1f
сайт не работает/работает через ж. Кто виноват?

вывод сделаете сами. чаще всего заказчик не уточнаяет как должно работать Но такое должно быть.

sdff 26.01.2010 23:09

а мож че-нить по теме кто-нибудь лучше напишет?

Kolyaj 27.01.2010 08:57

Цитата:

Сообщение от sdff
Проблемы:
1) я сам - не очень(даже "почти не") шарю в JS.
2) position: fixed и IE не знакомы друг с другом

Это не проблемы, это факты. Проблема в чём?

sdff 27.01.2010 10:36

нужно чтобы position:fixed работал в IE6 так же, как и в остальных браузерах, т.е. при скроллинге сохранял свою позицию.

Kolyaj 27.01.2010 10:42

http://www.artlebedev.ru/tools/techn...fixed_in_msie/

sdff 27.01.2010 14:47

Цитата:

Сообщение от Kolyaj (Сообщение 42259)

Нифига. Мне нужно, чтобы блок по вертикали был ровно в середине, этот же скрипт помогает ему(блоку) сохранить позицию относительно верха, но не по середине.

Kolyaj 27.01.2010 14:49

position: fixed -- это позиция относительно верха независимо от скроллинга, а не посередине.

PeaceCoder 27.01.2010 14:57

Цитата:

Сообщение от Kolyaj
position: fixed -- это позиция относительно верха независимо от скроллинга, а не посередине.

проще говоря position: fixed - позиция относительно видимой области браузера и работает кооректно в IE>=7 версии., в IE<7 вот такое чудо получается

sdff 27.01.2010 15:16

Цитата:

Сообщение от Kolyaj (Сообщение 42309)
position: fixed -- это позиция относительно верха независимо от скроллинга, а не посередине.

Я ж пишу в начале:

Нужно, чтобы по нажатии на ссылку по середине окна(как по горизонтали, так и по вертикали)

Неужели никак нельзя отцентровать? Js не поможет никак?


Часовой пояс GMT +3, время: 03:06.