ac-40-6.0
Эксперт
Дата регистрации:
29.06.2012 02:02:06
Сообщений: 88
Всем привет, я вернулся на просторы сети!
Миш, как и обещал начинаю доставать по JavaScript и все вопросы буду плодить сюда.
Дано: функция по увеличению блока при клике.
<script language="javascript">
function bloc(id){
if(document.getElementById(id).style.width=='100px'){
document.getElementById(id).style.width='400px';
document.getElementById(id).style.height='400px';
document.getElementById(id).style.fontSize='40px';}
else{
document.getElementById(id).style.width='100px';
document.getElementById(id).style.height='100px';
document.getElementById(id).style.fontSize='10px';}
}
</script>
<div id="1" style="width: 100px; height: 100px; position: relative; left: 500px; top: 200px; border: double; border: #F00; background: #0F0; font-size: 10px;" onclick="bloc(1)" title="press me">
Какое-то содержимое в блоке, его тоже надо будет менять.
</div>
Задача: обеспечить смещение при зуме не только в правый нижний угол, но и в другие стороны.
Имею направление мысли менять позиционирование верхнего левого угла стилями top и left.
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Всё правильно, надо изменять top и left в зависимости от размеров изображения.
ac-40-6.0
Эксперт
Дата регистрации:
29.06.2012 02:02:06
Сообщений: 88
Теперь у меня два вопроса:
1. Почему в данной функции не работают переменные.
Например такое представление не работает.
function bloc(id){
var w=document.getElementById(id).style.width;
var h=document.getElementById(id).style.height;
var f=document.getElementById(id).style.fontSize;
if(w=='100px'){
w='400px';
h='400px';
f='40px';}
else{
w='100px';
h='100px';
f='10px';}
return w,h,f;
}
</script>
2. Как динамически определить позиционирование блока относительно родительского элемента, дабы узнать в какую сторону давать смещение. И как собственно это знание передать функции.
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
1) Потому что не заданы свойства width, height и font-size.
2) Вы должны заранее знать, где находится блок. Обычно это левый верхний край или по центру.
ac-40-6.0
Эксперт
Дата регистрации:
29.06.2012 02:02:06
Сообщений: 88
1. То есть они задаются первым способом?
2. Таких блоков до 12 на странице и позиция по вертикали неизвестна. Да и по горизонтали вычисляется только от центра.
Но в принципе направление для размышления задано.
ac-40-6.0
Эксперт
Дата регистрации:
29.06.2012 02:02:06
Сообщений: 88
И снова здравствуйте.
Имею простенькую функцию:
<script language="javascript">
function slide(){
var h=document.getElementById('slide').style.height;
var w=document.getElementById('slide').style.width;
var reg=/[^0-9]/g;
var ih=h.replace(reg, '');
var iw=w.replace(reg, '');
iw=Number(iw);
ih=Number(ih);
if((ih==400)||(ih>400)){
if((iw==300)||(iw>300)){
throw "stop";}
else{
document.getElementById('slide').style.width=iw+1+'px';
setTimeout(slide, 10);}}
else{
document.getElementById('slide').style.height=ih+1+'px';
setTimeout(slide, 10);}
}
</script>
<div onclick="slide()" align="center" id="slide" style="position: absolute; background: #909; top: 100px; left: 400px; height: 10px; width: 100px; border: 2px #000 solid;">
Очередное содержимое которое нужно корректно вывести.
</div>
Но мне не нравится содержимое блока.
Как сделать так, чтобы содержимое появлялось вместе с изменениями блока?
ac-40-6.0
Эксперт
Дата регистрации:
29.06.2012 02:02:06
Сообщений: 88
Вопрос снят, спас CSS стиль overflow.
ac-40-6.0
Эксперт
Дата регистрации:
29.06.2012 02:02:06
Сообщений: 88
О, сенсей, внемлю твоей мудрости!
В функции отправляющей POST запросы имеется строчка
xmlhttp.send(); // Отправляем POST-запрос
Какие параметры нужно передать через эту функцию, чтобы на сервере получить, к примеру, $_POST['
dinamic']?
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
http://myrusakov.ru/javascript-post.html
ac-40-6.0
Эксперт
Дата регистрации:
29.06.2012 02:02:06
Сообщений: 88
Миш, ну ты как обычно! Из той статьи я взял эту функцию.
Со всей историей разобрался, кроме этой функции. Почему и прошу помощи.