Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Jk 20.05.2003 15:40
Вот то,что япридумал. посмотрите ошибки, пожалуйста. Может всё это можно упростить?<script language="JavaScript" type="text/JavaScript"> // Отрезаем от адреса всё, что после вопросительного знака - получаем img=15 var attr = location.search; // Создаём переменную с номером фотографии - 15 var img = attr.substring (5, attr.length); // задаём номер начальной и конечной фотографии, подразумевая, что пропусков нет - имена фотографий в виде 15.jpg var begin = 1; var end = 119; // новая переменная - имя фотографии 15.jpg var imgsrc = img + '.jpg'; // проверяем, если img=0 или не существует, то присваеваем ей одно из конечных значений if (imgsrc == '.jpg' || imgsrc == '0.jpg'){ imgsrc = end+'.jpg'; } // подгружаем в память данную и две соседних фото - для 15 это будут 14 и 16 - это нужно делать, чобы при переходе на следующее фото всё сразу отображалось var imgsrc2 = img -(- 1) + '.jpg'; var imgsrc3 = img - 1 + '.jpg'; var imgsrc4 = end + '.jpg'; image=new Image;image.src=imgsrc; //Теперь мы можем всё что угодно узнать о картинке 15.jpg, т.к. она у нас в памяти в переменной image image2=new Image;image2.src=imgsrc2; image3=new Image;image3.src=imgsrc3; image4=new Image;image4.src=imgsrc4; // Параметры экрана - высота и ширина var screenh = screen.height; var screenw = screen.width; // В зависимости от размеров экрана задаём размеры поля для отображения фотографии - width и height. // imgw и imgh - это максимальные рамеры ширины или высоты картинки if (screenw < 900) { var leftw = 150; var height = screenh-165; var width = screenw-leftw-12; var imgw = width*0.85; var imgh = imgw *0.65 } if (screenw >= 900 && screenw < 2400) { var leftw = 200; var height = screenh-165; var width = screenw-leftw-12; var imgw = width*0.85; var imgh = imgw *0.75 } if (screenw >= 2400) { var leftw = 200; var height = screenh-165; var width = screenw-leftw-12; var imgw = width*0.9; var imgh = imgw *0.75 } // Округляем imgh и imgw - а то браузеры не понимают width="90.56" var imgh = Math.round(imgh); var imgw = Math.round(imgw); // Рассчитываем отношения ширин и высот рисунка и поля под рисунок. var imagecoeff = image.width / image.height; var areacoeff = imgw / imgh; document.write('<table width=\"100%\" height=\"0\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">'); document.write('<tr><td align=\"center\">'); // Проверяем с помощью отношений ширин и длин, вписывается ли картинка в окно. Если не вписывается, то вписываем её по максимальному параметру - ширине или высоте. Другой параметр выставлять не обязательно - т.к. картинки на диске и грузятся быстро. if(imagecoeff >= areacoeff){ document.write('<img src=\"'+imgsrc+'\" width=\"'+imgw+'\" border=\"1\"><br>'); } if(imagecoeff < areacoeff){ document.write('<img src=\"'+imgsrc+'\" height=\"'+imgh+'\" border=\"1\"><br>'); } document.write('</td></tr>'); //Делаем строку навигации внизу. Почему-то не получается у меня прибавить к переменной img - 1. Можно только отнять (-1) var nextimg = img - (-1); var previmg = img - 1; document.write('<tr><td align=\"center\">'); if (img <= begin){ document.write('<a href=\"index.html?img='+end+'\">Назад</a> <a href=\"index.html?img='+nextimg+'\">Дальше</a>'); } if (img > begin && img < end){ document.write('<a href=\"index.html?img='+previmg+'\">Назад</a> <a href=\"index.html?img='+nextimg+'\">Дальше</a>'); } else if (img >= end) { document.write('<a href=\"index.html?img='+previmg+'\">Назад</a> <a href=\"index.html?img=1\">Дальше</a>'); } document.write('</td></tr>'); document.write('</table>'); </script>