Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2010, 17:53   #1
Napste®
Пользователь
 
Регистрация: 23.04.2009
Сообщений: 27
По умолчанию Проблема с увеличением картинок

есть скрипт на javascript которые при клике на изображение увеличивает его ,но присутствует проблема с увеличением вертикальных изображений,так как данный скрипт их растягивает по горизонтали

JS файл:
Код:
// JavaScript Document
// Configuration 

var speed             = 5;    // Fewer - quickier 
var softness         = 20;    // Fewer - softer 
var title             = "Уменьшить изображение";    // Title for closing 

document.onclick = remove 

function zoom(param1, param2, param3) { 
    imgOld = param1; 
    rwidth = param2; 
    rheight = param3; 
     

    img = document.createElement("img"); 
    img.src = imgOld.src; 
    img.width = imgOld.width; 
    img.height = imgOld.height; 
    img.title = title; 
    img.style.cursor = "pointer"; 
    document.body.appendChild(img); 

    img.setAttribute("zoomed", "1"); 
    img.style.position = "absolute"; 
    zooming(); 
} 

function zooming() { 
    var width = img.width; 
    var height = img.height; 
     
    if (img.width < rwidth - softness + 1 || img.height < rheight - softness + 1) { 
        if (img.width < rwidth - softness + 1) img.width = parseInt(width) + softness; 
        if (img.height < rheight - softness + 1) img.height = parseInt(height) + softness; 
         
        img.style.left = imgOld.offsetLeft + imgOld.offsetWidth / 2 -  img.offsetWidth  / 2 ; 
        img.style.top = imgOld.offsetTop + imgOld.offsetHeight / 2 - img.offsetHeight / 2; 
         
        if (parseInt(img.style.left) < 0) img.style.left = "35%"; 
        if (parseInt(img.style.top) < 0) img.style.top = "25%"; 
         
        setTimeout(zooming, speed); 
    } else { 
        img.width = rwidth; 
        img.height = rheight; 
    } 
} 

function remove(event) { 
    evt = window.event || event; 
      target = evt.srcElement || evt.target; 
       
      if (target.hasAttribute("zoomed")) { 
          document.body.removeChild(target) 
      } 
}
файл с картинками:
PHP код:
<img class=photo src='.$url.'/'.$myrow[image].' onclick="zoom(this, 510,375)"
Napste® вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компонент UpDown. Проблема со вставкой картинок. z-wer Компоненты Delphi 6 19.04.2010 20:14
Проблема рисования прозрачных картинок... Serco Помощь студентам 0 13.03.2010 13:54
Проблема с прогрузкой картинок. Wuf HTML и CSS 7 04.12.2008 16:50
Проблема с загрузкой внешних картинок у THTMLViewer russkiy Работа с сетью в Delphi 3 30.08.2007 00:07