javascriptjquerybxslidermagnify

Magnify.js with bxSlider


I'm trying to implement Magnify.js to a bxSlider slide but I have a problem, the zoom effect just works on the very first image of the slide, once I move to the next one the effect won't work, but it does on the first one. All of the slide's images have a "zoom" id which I'm targeting with Magnify. Is there any way to make it work for the whole slide instead of just the first one?


Solution

  • Try using the follow snippet: https://jsfiddle.net/L9fe0py3/5/

    HTML:

    <ul class="bxslider">
      <li><img id="img1" src="http://bxslider.com/images/home_slides/picto.png" data-magnify-src="http://bxslider.com/images/home_slides/picto.png" /></li>
      <li><img id="img2" src="http://bxslider.com/images/home_slides/houses.jpg" data-magnify-src="http://bxslider.com/images/home_slides/houses.jpg"/></li>
      <li><img id="img3" src="http://bxslider.com/images/home_slides/hillside.jpg" data-magnify-src="http://bxslider.com/images/home_slides/hillside.jpg"/></li>
    </ul>
    <img id="img4" src="http://bxslider.com/images/home_slides/hillside.jpg" data-magnify-src="http://bxslider.com/images/home_slides/hillside.jpg"/>
    

    Javascript:

    $(document).ready(function() {
        $('.bxslider').bxSlider({
          onSlideAfter:function(e){
            $(e).find('img').magnify();
          }
        });
        $('#img1,#img2,#img3,#img4').magnify();
    });
    

    You need to replace the "data-magnify-src" attribute on the <img/> elements to the "big" image URL, and ALSO (EDITED) add the .magnify() function everytime a slide changes.