вывод на экран загруженных фоток
Как осуществить вывод фоток на экран при множественной загрузке, и при этом регулировать их размер(даже если возможно с вашей стороны раскажите как перед выводом сделать кропинг изображения под размер при выводе 300х200
Есть множественная загрузка изображений через html форму <input type="file" name="my-pic" id="file-field" class="image"/> и нужно сделать множественный вывод этих изображений с кропингом в див <div id="photo_copy" ><img src="" class="preview"></div> Пробовал прикрутить такой скрипт (чтобы натолкнуть вас на мысль выставляю его ниже, уважаемые форумчане)но не пойму как его изменить чтобы это был множественный вывод и уж тем более не пойму как сделать кропинг, $(function(){ $(".image").change(showPreviewImage_click); }) function showPreviewImage_click(e) { var $input = $(this); var inputFiles = this.files; if(inputFiles == undefined || inputFiles.length == 0) return; var inputFile = inputFiles[0]; var reader = new FileReader(); reader.onload = function(event) { $('.preview').attr("src", event.target.result); }; reader.onerror = function(event) { alert("I AM ERROR: " + event.target.error.code); }; reader.readAsDataURL(inputFile); } раскажите пожалуйста в подробностях и с примерами кода пожалуйста, заранее благодарен серверную сторону затрагивать не надо |
imediasun1,
:write: <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <style type="text/css"> .preview{ max-height: 200px; max-width: 300px; } </style> </head> <body> <input type="file" name="my-pic" id="file-field" class="image"/> <div id="photo_copy" ></div> <script> $(function(){ $(".image").change(showPreviewImage_click); }) function showPreviewImage_click(e) { var $input = $(this); var inputFiles = this.files; if(inputFiles == undefined || inputFiles.length == 0) return; var inputFile = inputFiles[0]; var img = $('<img/>',{'class':'preview'}); img.appendTo($('#photo_copy')) var reader = new FileReader(); reader.onload = function(event) { img.attr("src", event.target.result); }; reader.onerror = function(event) { alert("I AM ERROR: " + event.target.error.code); }; reader.readAsDataURL(inputFile); } </script> </body> </html> |
Спасибо большое я думаю что я на верном пути благодаря вашей помощи, может еще подскажите, а если вместо дива там должен быть вот такой слайдер с миниатюрами
<div class="slider"> <input type="radio" name="slide_switch" id="id1"/> <label for="id1"> <img src="/slider-thumb-css/images/3yiC6Yq.jpg" width="45"/> </label> <img src="/slider-thumb-css/images/3yiC6Yq.jpg"/> <!--Lets show the second image by default on page load--> <input type="radio" name="slide_switch" id="id2" checked="checked"/> <label for="id2"> <img src="/slider-thumb-css/images/40Ly3VB.jpg" width="45"/> </label> <img src="/slider-thumb-css/images/40Ly3VB.jpg"/> <input type="radio" name="slide_switch" id="id3"/> <label for="id3"> <img src="/slider-thumb-css/images/00kih8g.jpg" width="45"/> </label> <img src="/slider-thumb-css/images/00kih8g.jpg"/> <input type="radio" name="slide_switch" id="id4"/> <label for="id4"> <img src="/slider-thumb-css/images/2rT2vdx.jpg" width="45"/> </label> <img src="/slider-thumb-css/images/2rT2vdx.jpg"/> <input type="radio" name="slide_switch" id="id5"/> <label for="id5"> <img src="/slider-thumb-css/images/8k3N3EL.jpg" width="45"/> </label> <img src="/slider-thumb-css/images/8k3N3EL.jpg"/> </div>Очень вам благодарен, спасибо |
imediasun1,
строки 27, 28, для вставки input label и второго img -- пробуйте понять и продублировать и строка 31 -- продублировать для второй картинки. ваш код хочется видеть . |
<script> $(function(){ $(".image").change(showPreviewImage_click); }) function showPreviewImage_click(e) { var $input = $(this); var inputFiles = this.files; if(inputFiles == undefined || inputFiles.length == 0) return; var inputFile = inputFiles[0]; var radio = $('<input type="radio" name="slide_switch" id="id[?]"/>',{'class':'radio_slider'}); var label = $('<label for="id[?]"/>',{'class':'radio_label'}); var img = $('<img/>',{'class':'preview'}); var img2 = $('<img/>',{'class':'preview_mini'}); radio.appendTo($('.slider')) label.appendTo($('.slider')) img.appendTo($('.slider')) img2.appendTo($('.slider')) var reader = new FileReader(); reader.onload = function(event) { img.attr("src", event.target.result); img2.attr("src", event.target.result); }; reader.onerror = function(event) { alert("I AM ERROR: " + event.target.error.code); }; reader.readAsDataURL(inputFile); } </script> По логике вещей должно быть что то вроде этого только проблема с базовыми знаниями jquery? подкорректируйте пожалуйста и я запомню(если можно с комментарием ), спасибо большое |
imediasun1,
ок! + добавил множественную загрузку - коментировать пас -- читайте доки <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <style type="text/css"> .preview{ max-height: 200px; max-width: 300px; } .min { width: 45px; } </style> </head> <body> <input type="file" name="my-pic" id="file-field" class="image" multiple=""/> <div class="slider" ></div> <script> $(function() { $(".image").change(showPreviewImage_click); } ) var num = 0; function showPreviewImage_click(e) { var $input = $(this); var inputFiles = this.files; if(inputFiles == undefined || inputFiles.length == 0) return; for (var i = 0; i<inputFiles.length; i++) { var id = 'id'+ ++num; var input = $('<input/>', {'type': "radio", 'name': "slide_switch", 'id': id}); input.appendTo($('.slider')); var label = $('<label/>', {'for': id}); var img_min = $('<img/>', {'class': 'min'}); img_min.appendTo(label); label.appendTo($('.slider')); var inputFile = inputFiles[i]; var img = $('<img/>', {'class': 'preview'}); img.appendTo($('.slider')) var reader = new FileReader(); reader.onload = (function (img1, img2) { return function(event) { img1.attr("src", event.target.result); img2.attr("src", event.target.result); }; } )(img_min, img) reader.onerror = function(event) { alert("I AM ERROR: " + event.target.error.code); }; reader.readAsDataURL(inputFile);} } </script> </body> </html> |
Часовой пояс GMT +3, время: 17:30. |