Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Позиционирование картинки (https://javascript.ru/forum/events/10464-pozicionirovanie-kartinki.html)

FightInGlory 06.07.2010 12:32

Позиционирование картинки
 
Всем здрасти. У меня есть див в котором располагается картинка, див резиновый и в зависимости от его длинны, должна подбираться координата внутри дива по высоте. Я пробовал делать это так
$('.end').css('background','url(images/end.gif) no-repeat 0 47px');

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

haha 06.07.2010 12:39

Сделать на чистом Javascript, минуя jquery.

FightInGlory 06.07.2010 12:46

а не подскажите, как можно вместо координат указывать переменную содержащую координату?

haha 06.07.2010 12:51

var Xcoord, Ycoord;
/**/
$('.end').css('url(images/end.gif) no-repeat '+Xcoord+'px '+Ycoord+'px');

FightInGlory 06.07.2010 13:32

Вот код, когда открываешь окно, картинка отображается на нужной высоте, но если только меняешь размер окна, то картинка пропадает. Вроде написал так как вы подсказали.
$(document).ready(function(){
		
		$('.end').css('background','url(images/end.gif) no-repeat 0 9px');
    });
function doSomething() {
	var width = $('.container').width();
	var y = 41/2*Math.sin(6.28*width/475);
	alert (width);
	alert (y);
	$('.end').css('background','url(images/end.gif) no-repeat 0 '+y+'px');
};

var resizeTimer = null;
$(window).bind('resize', function() {
if (resizeTimer) clearTimeout(resizeTimer);
resizeTimer = setTimeout(doSomething, 100);
});

haha 06.07.2010 14:27

Решаем "влоб".
- игрек не отрицателен?
- 'url(images/end.gif) no-repeat 0 '+y+'px' - что из себя представляет эта строка после пересчета?
- Картинка пропадает при любой ширине окна [10px..1024px]?
- .container меняет ширину вместе с окном?
- какова ширина .container?
Эта первая пачка вопросов.

кстати:
var resizeTimer = null;
$(window).bind('resize', function() {
if (resizeTimer) clearTimeout(resizeTimer);
resizeTimer = setTimeout(doSomething, 100);
})

в таком виде таймер бессмыслен.

И так ли важно применять синус в просчете положения картинки?


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