Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   IE and -ms-zoom (https://javascript.ru/forum/events/30930-ie-ms-zoom.html)

cyber 21.08.2012 00:28

IE and -ms-zoom
 
не работает свойство ms-zoom если здавать через js, если через css то работает
zooming.css({
  WebkitTransform :'scale('+scale+')',
  MozTransform : 'scale('+scale+')',
  OTransform : 'scale('+scale+')',
  MsZoom: scale*100+'%'//-ms-zoom
  })

Deff 21.08.2012 00:34

cyber,
Попробуй задать через тег style (типо задать пустому тегу style innerHTML (ну или поменять его
<style id="Myzoom">
/*Тут код*/
</style>

cyber 21.08.2012 00:44

впихнул так
zooming[0].cssText = '-ms-zoom:'+scale*100+'%';

но реакции 0

cyber 21.08.2012 00:51

заработало так
zooming.append('<style>.IMG-map{-ms-zoom: 140%;} </style>');

а нету ли более гуманного способа чем каждый раз style переписывать?

Deff 21.08.2012 00:56

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Активные темы</title>
</head>
<body>

<style id="Myzoom">
#div {
 width:100px;
 height:100px;
 border:1px solid red;
zoom: 1; 
}
 </style>







<div id="div"></div>

<script type="text/javascript">
document.getElementById("div").style.zoom=3
</script>

</body>
</html>


в ИЕ > http://s1.uploads.ru/i/cFSiV.png

cyber 21.08.2012 01:01

Цитата:

Сообщение от Deff (Сообщение 199232)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Активные темы</title>
</head>
<body>

<style id="Myzoom">
#div {
 width:100px;
 height:100px;
 border:1px solid red;
zoom: 1; 
}
 </style>







<div id="div"></div>

<script type="text/javascript">
document.getElementById("div").style.zoom=3
</script>

</body>
</html>


в ИЕ > http://s1.uploads.ru/i/cFSiV.png

просто zoom и у меня работает=)
http://www.xiper.net/manuals/css-ext...s/ms-zoom.html

cyber 21.08.2012 01:03

отвечаю заранее вот в чем отличие=)
zoom
-ms-zoom

Deff 21.08.2012 01:16

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Активные темы</title>
</head>
<body>

<style id="Myzoom">
#div {
 width:100px;
 height:100px;
 border:1px solid red;
 -ms-zoom:1; 
}
</style>







<div id="div"></div>

<script type="text/javascript">
var Z=3;
var a = document.getElementById("Myzoom");
var str=a.innerHTML;
str=str.replace(/(-ms-zoom:)[^;]*(?=;)/ig,'$1'+Z)
a.innerHTML=str;
alert(str)
</script>

</body>
</html>

cyber 21.08.2012 01:17

сделал так
zooming.find('style').html('.IMG-map{-ms-zoom: '+scale*100+'%;}');

но сильно жестокие костыли...
других вариантов нет?

Deff 21.08.2012 01:28

cyber,
Я все таки за height и width, но при масштабировании двигать(центрировать относительно wraper) marginom и массшабировать маp - а при подвижках (drag and drop) двигать обрамление wrapper - left и top

вот и разделение действий тады карту ты чисто при zoom всегда центрируешь во wrapper marginom, а двигаешь при drag and drop left и top сам wraper (карта в нём центрована при любом zoom

Хотя наверное я не прав (походу нун учитывать текущее положение курсора - а не центрирование во wrappere

cyber 21.08.2012 01:37

зачем гемор если в браузере это уже реализовано?=)
смотри сам http://cyberua.16mb.com/files/zoom.html

Deff 21.08.2012 01:43

cyber,
Геммор затем - что он точно так же повторицо у тьву для закрепления пойнтеров!
Походу я прозреваю, что суть в последовательности обработки-
Драг должен следовать за Zoom, а не наоборот, вот тут собака зарыта

cyber 21.08.2012 01:48

не совсем понял что ты имееш ввиду

cyber 21.08.2012 01:59

я не пойму одного, почему у гугл и тут http://vectorflower.com/preview/smoo...m/sample5.html
при увеличение позиция точек не меняется но они остаются на месте ошибся, позицию они не меняют только у гугла. И все равно пройдется делать на js потому что в ие все через опу

Deff 21.08.2012 02:07

cyber,
они хитрожопые, - они ставят на карту мини-div - который масштабируецо вместе с картой и жестко привязан к точке, а внутрь пихают с абсолютной позицией картинку пойнтера - которая масштаб не меняет , но поскольку она внутри - она закреплена так же как и этот смасштабированный div - ксать отличная идея

cyber 21.08.2012 02:19

хм.. не совсем понял
размеры дива не меняются , а тормозов при drag and drop карты нет потому что она из кусочков?

melky 21.08.2012 07:38

Цитата:

Сообщение от cyber
но сильно жестокие костыли...
других вариантов нет?

уродливость растрового увеличения Вас не пугает?

cyber 21.08.2012 11:41

Цитата:

Сообщение от melky (Сообщение 199274)
уродливость растрового увеличения Вас не пугает?

нет потому что я увелечиваю изображение допустим в разрешение 1920x1200 сжатое допустим до 1280Х800

cyber 21.08.2012 14:52

Deff, вот как то так=)
<!DOCTYPE HTML>
<html>
  <head>
  
    <style>
  #wrapper {
     position:absolute;
     margin:40px;
     overflow:hidden;
     width:500px;
     height:500px;
      }
      #wrapper img {
      
        width:500px;
        height:500px;
      }   
    </style>
  </head>
  <body>
 
<div id='wrapper' class='wrapper'>

  <img id="myPic"
     src="http://worldoftanks.ru/dcont/fb/media/t110e5_april2012_clear/t110e5_ru_1680_1050.jpg"
     lang="500"
     style="position: absolute; left: 0; top: 0;"
     onmousedown="myFunc ()">
<!-- атрибут lang="ширина картинки в пикселях" (она же - высота) -->
</div>
 
<script>
function myFunc (){
  
var obj = document.getElementById ('myPic');

  

  if (obj.lang < 2500){

  var width = obj.offsetWidth * 1.1;  
  
  var left = (width - 500) / 2 ;
    
  obj.lang = width; 
    
    obj.style.height = width + 'px'
    obj.style.width = width + 'px';
    obj.style.left = -left + 'px';
    obj.style.top = -left + 'px';
       
    }
   
    
   
}

</script>
  </body>
</html>

cyber 21.08.2012 15:07

вопрос не по теме ,но не хочу новую создавать.
Цитата:

Сообщение от документация jquery
jQuery.browser Возвращает: Map
Не рекомендуется к использованию начиная с jQuery 1.3 (используйте jQuery.support)

но в jQuery.support я не нашел как опредилить браузер

Deff 21.08.2012 15:11

cyber,
Ну пользуй просто навигатор

Или Простое Определение всех Ие (про 10 - не наю)
if('\v'=='v') {Тут коды для ИЕ}

cyber 21.08.2012 15:18

мне не только ie
if($.browser.msie ||
 ($.browser.mozzila && version < 3) ||
 ($.browser.opera && version < 8)
)

Цитата:

if('\v'=='v') {Тут коды для ИЕ}
баг ie ?=)

cyber 21.08.2012 15:20

Цитата:

Сообщение от Deff (Сообщение 199334)
cyber,
Ну пользуй просто навигатор

Или Простое Определение всех Ие (про 10 - не наю)
if('\v'=='v') {Тут коды для ИЕ}

'\v'=='v' возвращает false в IE

Deff 21.08.2012 15:21

cyber,
Тады пользуй навигатор http://www.xiper.net/collect/js-plug...d-version.html

cyber 21.08.2012 15:25

Цитата:

Сообщение от Deff (Сообщение 199341)
cyber,
Тады пользуй навигатор http://www.xiper.net/collect/js-plug...d-version.html

я знаю про навигатор, просто если jquery.browser использует регулярки по navigator для определения браузера то зачем еще раз писать то что есть, просто интересно как пользоваться $.support

Deff 21.08.2012 15:31

http://jquery.page2page.ru/index.php...раузера
Старое походу было удобнее (ксать оно действует
http://jquery.page2page.ru/index.php5/Тип_браузера
Все таки навигатор чуть надёжней

cyber 21.08.2012 15:35

ну работает это громко сказано=)
$.browser.version = 1.9.2.28// в мозиле 3.6

cyber 21.08.2012 16:22

опера единственный браузер где userAgent сделан не через ж****

melky 21.08.2012 16:49

Цитата:

Сообщение от Deff
Или Простое Определение всех Ие (про 10 - не наю)
if('\v'=='v') {Тут коды для ИЕ}

IE < 9 (до девятой, не включая)

cyber 21.08.2012 17:01

да я уже догадался=)
на одну регулярку меньше=)

Deff 21.08.2012 19:33

melky,
ни наю - 9 у мну тестил - Вроде проверяли


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