Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 18.07.2013, 23:44
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

Рони , если интересно , можешь победить эту тему, я уже выхода не вижу только как кроп делать на стороне сервера, но если интересно попробуй все таки ресайз и кроп сделать на клиенте, большое спасибо, мне кстати тоже интересно если победишь напиши пожалуйста , но так как оно сейчас есть кроп делается а слайдер не работает, кроп его выбивает, не знаю почему, спасибо тебе в любом случае за помощь
Ответить с цитированием
  #12 (permalink)  
Старый 19.07.2013, 02:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

imediasun1,
всё что вы хотите и слайдер и кропи ресайз -- делается в ваших скриптах с помощью ксс настраивайте на свой лад стили -- тоже самое делают ваши скрипты только автоматом - у меня и 320px квадрат и слайдер работают без дополнительных скриптов -- просто отрегулировал ксс.

Последний раз редактировалось рони, 10.01.2014 в 04:43.
Ответить с цитированием
  #13 (permalink)  
Старый 20.07.2013, 13:02
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

выложите пожалуйста окончательный код с ксс, рони, очень не хочется через сервер кроп делать, спасибо
Изображения:
Тип файла: jpg print_slider.jpg (9.2 Кб, 1 просмотров)

Последний раз редактировалось imediasun1, 20.07.2013 в 13:51.
Ответить с цитированием
  #14 (permalink)  
Старый 20.07.2013, 19:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Показ загружаемых картинок в виде слайдера
imediasun1,
думаю что настоящую обрезку можно сделать только на сервере, в скрипт добавил настройку показа фото сейчас берётся середина...
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <style type="text/css">*{
    margin:0;
    padding:0;
  }

  body{
    background:#ccc;
  }

  .slider{
    width:320px;
    position:relative;
    padding-top:320px;
    margin:100px auto;
    box-shadow:0 10px 20px -5px rgba(0,0,0,0.75);
    overflow:hidden;
    padding-bottom:20px;
  }

  .sp img{
    position:absolute;
    left:0;
    top:0;
  }

  .slider input[name='slide_switch']{
    display:none;
  }

  .slider label{
    margin:18px 0 0 18px;
    border:3px solid #999;
    float:left;
    cursor:pointer;
    transition:all 0.5s;
    opacity:0.6;
  }

  .slider label img{
    display:block;
    height:45px;
  }

  .slider input[name='slide_switch']:checked+label{
    border-color:#666;
    opacity:1;
  }

  .slider input[name='slide_switch']~span{
    opacity:0;
    -moz-transform:scale(1.1);
    -ms-transform:scale(1.1);
    -webkit-transform:scale(1.1);
    -o-transform:scale(1.1);
    transform:scale(1.1);
  }

  .slider input[name='slide_switch']:checked+label+span{
    opacity:1;
    -moz-transform:scale(1);
    -ms-transform:scale(1);
    -webkit-transform:scale(1);
    -o-transform:scale(1);
    transform:scale(1);
  }

  span{
    width:320px;
    position:absolute;
    left:0;
    top:0;
    height:320px;
    overflow:hidden;
    transition:all 0.5s;
  }
  </style>


</head>

<body>
 <input type="file" name="my-pic" id="file-field" class="image" multiple=""/><br>
 <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': 'slide'
         });
         var span = $('<span/>', {
             'class': 'sp'
         })
         img.appendTo(span)
         span.appendTo($('.slider'))
         var reader = new FileReader();
         reader.onload = (function (img1, img2) {
             return function (event) {
                 img1.attr("src", event.target.result);
                 img2.load(function () {
                     var w = this.width;
                     var h = this.height;
                     w > h ? (this.height = 320, w = 320 * w / h, this.width = w, h = 320) : (this.width = 320, h = 320 * h / w, this.height = h, w = 320);
                     img2.css({
                         left: -(w - 320) / 2,//лево -> убрать в left /2  или право весь убрать весь left ->  left : -(h-320)/2, для горизонтальных картинок
                         top: -(h - 320) / 2  //низ -> убрать в top /2  или верх весь убрать весь top ->  ,top : -(h-320)/2 для вертикальных картинок
                     })
                 });
                 img2.attr("src", event.target.result);
             };
         })(img_min, img)
         reader.onerror = function (event) {
             alert("I AM ERROR: " + event.target.error.code);
         };
         reader.readAsDataURL(inputFile);
     }
     input.prop({
         'checked': true
     });
 }
 </script>
</body>
</html>
Ответить с цитированием
  #15 (permalink)  
Старый 20.07.2013, 19:54
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

Спасибо большое вам, Рони, у меня на сайте стаяла задача именно без сервера на определенном этапе показать в слайдере обрезанные изображения, вы очень помогли, все работает, приятного программирования
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
хочу инвайт на хабр macdack Оффтопик 45 28.07.2013 23:18
Несколько версий JQuery UI на одной странице. Casufi jQuery 2 10.11.2012 15:24
Вопрос поддержки старых методов jQuery antonM jQuery 1 04.10.2012 00:08
2 разных модуля на jQuery - как подключить? finder jQuery 4 23.03.2012 22:29
jQuery jTreeMenu plugin Seafnox jQuery 9 12.01.2010 21:55