JS увеличение изображения.

A
На сайте с 27.04.2011
Offline
4
899

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

Кто может подскажите как исправить.

if (document.images){

(function(){

var cos, a = /Apple/.test(navigator.vendor), times = a? 20 : 40, speed = a? 40 : 20;

var expConIm = function(im){

im = im || window.event;

if (!expConIm.r.test (im.className))

im = im.target || im.srcElement || null;

if (!im || !expConIm.r.test (im.className))

return;

var e = expConIm,

widthHeight = function(dim){

return dim[0] * cos + dim[1] + 'px';

},

resize = function(){

cos = (1 - Math.cos((e.ims.jump / times) * Math.PI)) / 2;
im.style.width = widthHeight (e.ims.w);
im.style.height = widthHeight (e.ims.h);
if (e.ims.d && times > e.ims.jump){
++e.ims.jump;
e.ims.timer = setTimeout(resize, speed);
} else if (!e.ims.d && e.ims.jump > 0){
--e.ims.jump;
e.ims.timer = setTimeout(resize, speed);
}
}, d = document.images, i = d.length - 1;
for (i; i > -1; --i)
if(d == im) break;
i = i + im.src;
if (!e.ims){
e.ims = {im : new Image(), jump : 0};
e.ims.im.onload = function(){
e.ims.w = [e.ims.im.width - im.width, im.width];
e.ims.h = [e.ims.im.height - im.height, im.height];
e (im);
};
e.ims.im.src = im.src;
return;
}
if (e.ims.timer) clearTimeout(e.ims.timer);
e.ims.d = !e.ims.d;
resize ();
};
expConIm.ims = {};
expConIm.r = new RegExp('\\bexpando\\b');
if (document.addEventListener){
document.addEventListener('mouseover', expConIm, false);
document.addEventListener('mouseout', expConIm, false);
}
else if (document.attachEvent){
document.attachEvent('onmouseover', expConIm);
document.attachEvent('onmouseout', expConIm);
}
})();
}

ДП
На сайте с 23.11.2009
Offline
203
#1

Судя по всему он просто увеличивает высоту и ширину изображения. Чтобы изображение сдвигалось влево, ему надо float:right постаить, насколько я знаю. Лучше уточнить у верстальщиков - это больше к ним вопрос, какие атрибуты надо поменять, чтобы изображение влево увеличивалось.

N
На сайте с 06.05.2007
Offline
419
#2

зачем вы пишите скрипты в эпоху победившего jquery ?

http://www.dynamicdrive.com/dynamicindex4/powerzoomer.htm

Кнопка вызова админа ()
ДП
На сайте с 23.11.2009
Offline
203
#3

Насколько я понял, ТС надо что-то типа этого: http://www.dynamicdrive.com/dynamicindex4/imagebubbles.htm

N
На сайте с 06.05.2007
Offline
419
#4

да хоть и так. суть мудрости не меняется : "на любое извращение найдется jquery-плагин"

ДП
На сайте с 23.11.2009
Offline
203
#5

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

A
На сайте с 27.04.2011
Offline
4
#6

оказалось все просто надо добавить к родительскому тегу выравнивание по правому краю

style="text-align:right;"

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