<header>
<h2>My Header</h2>
<div class="console"></div>
</header>
<div class="container">
<div class="product">
<div class="woocommerce-product-gallery">
<img src="https://source.unsplash.com/random/600x600" alt="">
</div>
<div class="summary">
<h1 class="product_title entry-title">Product Title</h1>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem explicabo ea quis ipsum placeat ab omnis laudantium deleniti dolorem nemo molestias earum autem repudiandae, optio et deserunt, non eligendi eaque.</p>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem explicabo ea quis ipsum placeat ab omnis laudantium deleniti dolorem nemo molestias earum autem repudiandae, optio et deserunt, non eligendi eaque.</p>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem explicabo ea quis ipsum placeat ab omnis laudantium deleniti dolorem nemo molestias earum autem repudiandae, optio et deserunt, non eligendi eaque.</p>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem explicabo ea quis ipsum placeat ab omnis laudantium deleniti dolorem nemo molestias earum autem repudiandae, optio et deserunt, non eligendi eaque.</p>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem explicabo ea quis ipsum placeat ab omnis laudantium deleniti dolorem nemo molestias earum autem repudiandae, optio et deserunt, non eligendi eaque.</p>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem explicabo ea quis ipsum placeat ab omnis laudantium deleniti dolorem nemo molestias earum autem repudiandae, optio et deserunt, non eligendi eaque.</p>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem explicabo ea quis ipsum placeat ab omnis laudantium deleniti dolorem nemo molestias earum autem repudiandae, optio et deserunt, non eligendi eaque.</p>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem explicabo ea quis ipsum placeat ab omnis laudantium deleniti dolorem nemo molestias earum autem repudiandae, optio et deserunt, non eligendi eaque.</p>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem explicabo ea quis ipsum placeat ab omnis laudantium deleniti dolorem nemo molestias earum autem repudiandae, optio et deserunt, non eligendi eaque.</p>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem explicabo ea quis ipsum placeat ab omnis laudantium deleniti dolorem nemo molestias earum autem repudiandae, optio et deserunt, non eligendi eaque.</p>
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Exercitationem explicabo ea quis ipsum placeat ab omnis laudantium deleniti dolorem nemo molestias earum autem repudiandae, optio et deserunt, non eligendi eaque.</p>
<button class="btn btn-primary">Buy now</button>
</div>
<div class="woocommerce-tabs"></div>
</div>
</div>
<footer>
<h2><strike>My footer</strike>
<small>Not really, Woocommerce tabs</small>
</h2>
</footer>
/*Wordpress simulation - Unnecesary to copy*/
header, footer{
h2{
text-align: center;
padding: 20vh;
background: #dadada;
}
}
.clearfix{
display: table;
clear: both;
width:100%;
}
.product{
margin: 20vh 0;
@media (min-width: 992px){
.woocommerce-product-gallery {
float: left;
width: 54%;
margin-right: 3rem;
margin-bottom: 0;
&.fixed{
position: fixed;
top: 5px;
}
}
.summary {
width: calc(46% - 3rem);
float: right;
}
}
.woocommerce-tabs {
display: inline-block;
width: 100%;
margin-top: 2rem;
clear: both;
overflow: hidden;
}
}
View Compiled
function fixingImage() {
let image = document.querySelector(".woocommerce-product-gallery");
let wootabs = document.querySelector(".woocommerce-tabs");
let iniImageTop = image.offsetTop;
let iniWootabsTop = wootabs.offsetTop;
window.addEventListener("scroll", function(){
var tabDistance = (window.scrollY + image.offsetHeight) - wootabs.offsetTop;
if( window.scrollY <= iniImageTop || tabDistance > 0){
image.classList.remove("fixed");
}else if( window.scrollY >= iniImageTop ){
image.classList.add("fixed");
}
});
}
fixingImage();
This Pen doesn't use any external JavaScript resources.