guidobouman/panelsnap

PanelSpnap on Magento 2

Closed this issue · 6 comments

Hi,

can't get PanelSnap to work on Magento 2.
Can you please provide any hint?
Thanks,
Juan

Without a codepen or jsfiddle I can't really help out. I need to see your code.

Hi,
I'm applying the panelsnap on my home page.
The thing is that the home page is made of 2 components: a static block and the CMS home page.
here is the static block:


<section>
<div class="full-screen-slider">
    <div id="banner-slider-demo-20" class="owl-carousel owl-banner-carousel" data-slider-id="1">
        <div class="item" style="background:url({{media url="wysiwyg/smartwave/porto/homepage/20/slider/01.jpg"}}) center center / cover no-repeat; position: relative;">
            <ul class="scene" style="width:100%;height:100%:">
                <li class="layer" data-depth="0.05">
                    <img src="{{media url="wysiwyg/smartwave/porto/homepage/20/slider/green_shoes.png"}}" alt="" />
                </li>
                <li class="layer" data-depth="0.06">
                    <img src="{{media url="wysiwyg/smartwave/porto/homepage/20/slider/blurflake1.png"}}" style="position:absolute;top:40%;left:35%" alt="" />
                </li>
                <li class="layer" data-depth="0.07">
                    <img src="{{media url="wysiwyg/smartwave/porto/homepage/20/slider/blurflake2.png"}}" class="animation-spin" style="position:absolute;top:20%;left:50%" alt="" />
                </li>
                <li class="layer" data-depth="0.10">
                    <img src="{{media url="wysiwyg/smartwave/porto/homepage/20/slider/blurflake3.png"}}" class="animation-wave" style="position:absolute;top:50%;left:80%" alt="" />
                </li>
                <li class="layer" data-depth="0.15">
                    <img src="{{media url="wysiwyg/smartwave/porto/homepage/20/slider/blurflake4.png"}}" style="position:absolute;top:70%;left:55%" alt="" />
                </li>
            </ul>
            <div class="content" style="left:20%;top:30%;width:auto;">
                <h2 style="color: #fff;">Running<br>shoes</h2>
                <a href="#">SEE MORE</a>
            </div>
        </div>
        <div class="item" style="background:url({{media url="wysiwyg/smartwave/porto/homepage/20/slider/TUTTOLENTE_W_bg.jpg"}}) center center / cover no-repeat; position: relative;">
            <ul class="scene" style="width:100%;height:100%:">
                <li class="layer" data-depth="0.05">
                    <img src="{{media url="wysiwyg/smartwave/porto/homepage/20/slider/TUTTOLENTE_W.png"}}" alt="" />
                </li>
            </ul>
            <div class="content" style="left:20%;top:30%;width:auto;">
                <h2 style="color: #fff;">TUTTOLENTE W<br>BLUE</h2>
                <a href="#">See Collection</a>
            </div>
        </div>
        <div class="item" style="background:url({{media url="wysiwyg/smartwave/porto/homepage/20/slider/03.jpg"}}) center center / cover no-repeat; position: relative;">
            <ul class="scene" style="width:100%;height:100%:">
                <li class="layer" data-depth="0.05">
                    <img src="{{media url="wysiwyg/smartwave/porto/homepage/20/slider/ball.png"}}" alt="" />
                </li>
            </ul>
            <div class="content" style="left:20%;top:30%;width:auto;">
                <h2 style="color: #fff;">Football<br>accessories</h2>
                <a href="#">SEE MORE</a>
            </div>
        </div>
    </div>
    <div class="owl-thumbs" data-slider-id="1">
        <button class="owl-thumb-item"><img src="{{media url="wysiwyg/smartwave/porto/homepage/20/slider/01_thumb.jpg"}}"/></button>
        <button class="owl-thumb-item"><img src="{{media url="wysiwyg/smartwave/porto/homepage/20/slider/TUTTOLENTE_W_bg_tmb.jpg"}}"/></button>
        <button class="owl-thumb-item"><img src="{{media url="wysiwyg/smartwave/porto/homepage/20/slider/03_thumb.jpg"}}"/></button>
    </div>
    <script type="text/javascript">
        require([
            'jquery',
            'owl.carousel/owl.carousel'
        ], function ($) {
            var owl_20 = $("#banner-slider-demo-20").owlCarousel({
                items: 1,
                autoplay: true,
                autoplayTimeout: 5000,
                autoplayHoverPause: true,
                dots: false,
                navRewind: true,
                animateIn: 'fadeIn',
                animateOut: 'fadeOut',
                thumbs: true,
                thumbImage: false,
                thumbsPrerendered: true,
                thumbContainerClass: 'owl-thumbs',
                thumbItemClass: 'owl-thumb-item',
                loop: true,
                nav: false,
                navText: ["<em class='porto-icon-chevron-left'></em>","<em class='porto-icon-chevron-right'></em>"]
            });
        });
        require([
            'jquery',
            'js/jquery.parallax.min'
        ], function ($) {
            $(document).ready(function(){
                $('.scene').parallax();
            });
        });
    </script>
</div>
</section>

and this is my CMS Home Page

<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/2.9.2/jquery.fullPage.css" />
<!--script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script-->
<!--script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/fullPage.js/2.9.2/jquery.fullPage.js"></script-->
<style>
.porto-icon-chevron-left, .porto-icon-chevron-right {
    color: #fff;
}
p.p-banner {
    position: relative;
    color: #fff;
    text-transform: uppercase;
    text-indent: 8px;
    line-height: 1;
    align-items: center;
    padding-left: 10%;
    //margin-top: 50%;
display: inline-block;
    top: 50vh;
}
span.banner-img-before {
    font-size: 5em;
    padding: 0;
}
span.banner-img-after {
    font-size: 12em;
    padding: 0;
}
@media only screen and (max-width: 1024px)  {
	span.banner-img-before {
	    font-size: 2em;
	    padding: 0;
	}
	span.banner-img-after {
	    font-size: 6em;
	    padding: 0;
	}
}
</style>
<script type="text/javascript">
require(['jquery'],function($){


    // Assign a variable for the application being used
    var nVer = navigator.appVersion;
    // Assign a variable for the device being used
    var nAgt = navigator.userAgent;
    var nameOffset,verOffset,ix;
    if(navigator.platform == 'iPhone' || navigator.platform == 'iPod'){
        // In Safari, the true version is after "Safari" 
        if ((verOffset=nAgt.indexOf('Safari'))!=-1) {
          // Set a variable to use later
          var mobileSafari = 'Safari';
        }
    }
	$(window).on('resize', function () {
	if (mobileSafari == 'Safari') {	
	    $('.banner-custom').css('height', function () {
	        return (($(window).height()+65))
	    });
	} else {
	    $('.banner-custom').css('height', function () {
	        return (($(window).height()))
	    });
	};
	}).resize();
/*$(window).on('resize', function () {
    $('.banner-custom').css('height', function () {
        return (($(window).height()+100))
    });
}).resize();*/});
</script>
<script type="text/javascript">
require(["jquery","panelsnap/jquery.panelSnap"], function($){
$('page-wrapper').panelSnap();
$('columns').panelSnap();
});

</script>
<script type="text/javascript">
/*require(["jquery"], function($){
$('body').panelSnap();
});*/

</script>
<section>
<div class="row tocenter" style="margin:0;">
    <div class="col-sm-12 col-xs-12 col-lg-6 col-md-6 sm-f-right banner-custom" style="padding:0;background:url({{media url="wysiwyg/smartwave/porto/homepage/20/slider/4banner_him.jpg"}}) center center / cover no-repeat;">
        <!--a class="image-link" href="#"-->
<p class="p-banner"><span class="banner-img-before">Shop</span><br /><span class="banner-img-after">Men</span></p>
            <!--img src="{{media url="wysiwyg/smartwave/porto/homepage/20/slider/4banner_him.jpg"}}" alt="">
        </a-->
    </div>
    <div class="col-sm-12 col-xs-12 col-lg-6 col-md-6 banner-custom" style="padding:0;background:url({{media url="wysiwyg/smartwave/porto/homepage/20/slider/4banner_her.jpg"}}) center center / cover no-repeat;">
        <!--a class="image-link" href="#"-->
<p class="p-banner"><span class="banner-img-before">Shop</span><br /><span class="banner-img-after">Women</span></p>
            <!--img src="{{media url="wysiwyg/smartwave/porto/homepage/20/slider/4banner_her.jpg"}}" alt="">
        </a-->
    </div>
     <div class="col-sm-12 col-xs-12 col-lg-6 col-md-6 banner-custom" style="padding:0;background:url({{media url="wysiwyg/smartwave/porto/homepage/20/slider/4banner_kids.jpg"}}) center center / cover no-repeat;">
        <!--a class="image-link" href="#"-->
<p class="p-banner"><span class="banner-img-before">Shop</span><br /><span class="banner-img-after">Kids</span></p>
            <!--img src="{{media url="wysiwyg/smartwave/porto/homepage/20/slider/4banner_her.jpg"}}" alt="">
        </a-->
    </div>
     <div class="col-sm-12 col-xs-12 col-lg-6 col-md-6 banner-custom" style="padding:0;background:url({{media url="wysiwyg/smartwave/porto/homepage/20/slider/4banner_specials.jpg"}}) center center / cover no-repeat;">
        <!--a class="image-link" href="#"-->
<p class="p-banner"><span class="banner-img-before"></span><br /><span class="banner-img-after">COLAB</span></p>
            <!--img src="{{media url="wysiwyg/smartwave/porto/homepage/20/slider/4banner_her.jpg"}}" alt="">
        </a-->
    </div>
</div>
</section>

<style type="text/css">
@media (min-width: 768px) {
    #featured_product {
        padding: 0 85px;
    }
}
h2.filterproduct-title {
    background: none;
    font-size: 40px;
    font-weight: 600;
    line-height: 1;
    text-align: center;
    color: #000;
    margin-top: 90px;
    margin-bottom: 80px;
}
.filterproduct-title .content {
    padding: 0;
    background-color: transparent;
}
body.layout-fullwidth.cms-index-index .page-main {
    padding: 0;
}
.columns .column.main {
    padding: 0;
}
.owl-theme .owl-controls {
    margin: 0;
}
#home-content-slider-demo-20.owl-theme .owl-dots .owl-dot span {
    background: transparent;
    border: 2px solid #fff;
}
#home-content-slider-demo-20.owl-theme .owl-dots .owl-dot.active span, #home-content-slider-demo-20 .owl-theme .owl-dots .owl-dot:hover span {
    background: #fff;
}
#home-content-slider-demo-20.owl-bottom-narrow .owl-controls {
    bottom: 50px;
}
.product-item-photo {
    padding: 0;
    border: 0;
}
.product.actions, .product-item .product-reviews-summary {
    display: none;
}
.product-item-name.product.name > a {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    color: #000;
}
.product-item-name.product.name > a:hover {
    text-decoration: none;
}
.page-header.type13 {
    background: transparent;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    border: 0;
}
@media (max-width: 767px) {
    h2.filterproduct-title {
        margin: 40px 0;
        font-size: 25px;
    }
    #home-content-slider-demo-20.owl-bottom-narrow .owl-controls {
        bottom: 5px;
    }
}
</style>

Then when it loads Magento puts all inside wrappers (retrosuperfuture.net/magento2)
Don't know if that helps you.
Thanks,
Juan

You need to invoke panelSnap on a scrolling element.

I've fixed your jsFiddle: https://fiddle.jshell.net/gwmtv2t7/4/

Changes needed to fix your code:
Changed the invocation to body and fixed the panelSelector to account for this change.

Thanks guidobouman!!!