Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Динамичный размер увеличенного размера в карточке товара


Recommended Posts

Друзья.

Как побороть стандартные настройки opencart (1.5.6.4) по увеличенному изображению товара во всплывающем окне? Что бы окно менялось в зависимости от размера изображения (например вертикаль, горизонталь).

Помогите пожалуйста.

Надіслати
Поділитися на інших сайтах


Делал на дефолтном шаблоне.С колорбоксом.Можно дописать скрипт который будет загружать картинку в процентном соотношении.

 

Для начала отрубаем  размеры картинок и выводим их реальный размер

 

catalog\controller\product\product.php

 

находим

$this->data['popup'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height'));

заменяем на 

  $this->data['popup'] = 'image/' . $product_info['image'];

ниже находим 

'popup' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')),

заменяем на 

'popup' => 'image/' . $result['image'],

теперь добавим скрипт в шаблон

 

catalog\view\theme\ШАБЛОН\template\product\product.tpl

 

перед 

<?php echo $footer; ?>

добавляем

 

<script type="text/javascript"><!--
        jQuery.colorbox.settings.maxWidth  = '99%';
        jQuery.colorbox.settings.maxHeight = '99%';


        var resizeTimer;
        function resizeColorBox()
        {
            if (resizeTimer) clearTimeout(resizeTimer);
            resizeTimer = setTimeout(function() {
                if (jQuery('#cboxOverlay').is(':visible')) {
                    jQuery.colorbox.load(true);
                }
            }, 300);
        }


        jQuery(window).resize(resizeColorBox);
        window.addEventListener("orientationchange", resizeColorBox, false);
//--></script> 

готово.

  • +1 1
Надіслати
Поділитися на інших сайтах

  • 1 month later...

 

Делал на дефолтном шаблоне.С колорбоксом.Можно дописать скрипт который будет загружать картинку в процентном соотношении.

 

Для начала отрубаем  размеры картинок и выводим их реальный размер

 

catalog\controller\product\product.php

 

находим

$this->data['popup'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height'));

заменяем на 

  $this->data['popup'] = 'image/' . $product_info['image'];

ниже находим 

'popup' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height')),

заменяем на 

'popup' => 'image/' . $result['image'],

теперь добавим скрипт в шаблон

 

catalog\view\theme\ШАБЛОН\template\product\product.tpl

 

перед 

<?php echo $footer; ?>

добавляем

 

<script type="text/javascript"><!--
        jQuery.colorbox.settings.maxWidth  = '99%';
        jQuery.colorbox.settings.maxHeight = '99%';


        var resizeTimer;
        function resizeColorBox()
        {
            if (resizeTimer) clearTimeout(resizeTimer);
            resizeTimer = setTimeout(function() {
                if (jQuery('#cboxOverlay').is(':visible')) {
                    jQuery.colorbox.load(true);
                }
            }, 300);
        }


        jQuery(window).resize(resizeColorBox);
        window.addEventListener("orientationchange", resizeColorBox, false);
//--></script> 

готово.

А как прописать, что бы размер картинки при открытии не превышал .. допустим 70% ширины экрана, но сохранял пропорции. (Для того, чтобы большие картинки не перекрывали весь экран)? 

Надіслати
Поділитися на інших сайтах


Внимательно просмотрите ещё раз весь код мной написанный.Думаю проценты найти не такая проблема и изменить на свои.

Надіслати
Поділитися на інших сайтах

Внимательно просмотрите ещё раз весь код мной написанный.Думаю проценты найти не такая проблема и изменить на свои.

Да, я заметил эти проценты, но у меня ничего не меняется. Поставил по 5% и на высоту и на ширину... а воз и ныне там..

Надіслати
Поділитися на інших сайтах


Значит не так или не то сделано.В моем примере картинки физически не могут быть больше экрана,так как им указан размер в 99 процентов по отношению к экрану.

Надіслати
Поділитися на інших сайтах

Значит не так или не то сделано.В моем примере картинки физически не могут быть больше экрана,так как им указан размер в 99 процентов по отношению к экрану.

А может предустановленный модуль загрузки фото нарушить данный код?

Надіслати
Поділитися на інших сайтах


Этот трюк предназначается для тех версий опенкарт,которые используют в карточке товара колорбокс.

Надіслати
Поділитися на інших сайтах

Этот трюк предназначается для тех версий опенкарт,которые используют в карточке товара колорбокс.

У меня колорбокс и стоит (ИМХО)))) 

Вот мой несчастный сайт

Надіслати
Поділитися на інших сайтах


Максимум что могу посоветовать,это скрипт разместить не в самом низу а внутри дива картинок.

<div class="image">
...............................</a>
<script type="text/javascript"><!--
        jQuery.colorbox.settings.maxWidth  = '99%';
        jQuery.colorbox.settings.maxHeight = '99%';


        var resizeTimer;
        function resizeColorBox()
        {
            if (resizeTimer) clearTimeout(resizeTimer);
            resizeTimer = setTimeout(function() {
                if (jQuery('#cboxOverlay').is(':visible')) {
                    jQuery.colorbox.load(true);
                }
            }, 300);
        }


        jQuery(window).resize(resizeColorBox);
        window.addEventListener("orientationchange", resizeColorBox, false);
//--></script>
</div>
Надіслати
Поділитися на інших сайтах

 

Максимум что могу посоветовать,это скрипт разместить не в самом низу а внутри дива картинок.

<div class="image">
...............................</a>
<script type="text/javascript"><!--
        jQuery.colorbox.settings.maxWidth  = '99%';
        jQuery.colorbox.settings.maxHeight = '99%';


        var resizeTimer;
        function resizeColorBox()
        {
            if (resizeTimer) clearTimeout(resizeTimer);
            resizeTimer = setTimeout(function() {
                if (jQuery('#cboxOverlay').is(':visible')) {
                    jQuery.colorbox.load(true);
                }
            }, 300);
        }


        jQuery(window).resize(resizeColorBox);
        window.addEventListener("orientationchange", resizeColorBox, false);
//--></script>
</div>

Спасибо большое! Попробую отпишусь)

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.