Hi Rod,
Since CartVariant triggers an AJAX request (which is practically reloading the page without the hard-refresh), ZoomEffect function has to be re-initialized.
In order to do this re-initialization upon completing the AJAX call, find this file:
ROOT/components/com_virtuemart/assets/js/dynupdate.js
and copy-paste it to here:
ROOT/templates/YOUR_TEMPLATE/js/dynupdate.js
(this copy-pasting will avoid reseting your modification once you update the Virtuemart Component)
then open this file:
ROOT/templates/YOUR_TEMPLATE/js/dynupdate.js and find these lines (around 49th line):
if (Virtuemart.updateChosenDropdownLayout) Virtuemart.updateChosenDropdownLayout();
//Virtuemart.product($("form.product"));
right after the above lines, add this line:
if (typeof $.fn.flexibleZoom !== "undefined") $.fn.flexibleZoom();
so, the final look will become like these:
if (Virtuemart.updateChosenDropdownLayout) Virtuemart.updateChosenDropdownLayout();
//Virtuemart.product($("form.product"));
if (typeof $.fn.flexibleZoom !== "undefined") $.fn.flexibleZoom();
and that's it. This will re-init the ZoomEffect when the AJAX call is completed within the product details page.
Regards.