为容器中的非全宽图像创建视差效果
Creating a parallax effect for a non full width image in a container
我有 this section of my site 致力于活动中的行为。其中一幕的给定图片非常垂直,但提供的信息很少 none。所以我想我可以让图片垂直延伸到部分的限制之外,并给它一个视差滚动效果。
这是整个部分代码:
<section id="acts">
<div class="container-fluid">
<div class="row">
<div class="col-lg-4 col-lg-offset-2 kujopad">
<p>The Kujo Kings
Known for their Ska/Punk anthems and high energy packed out shows, this 20 something band has built a strong Australian-wide following since forming in 2010. The six-piece band are dedicated to entertaining fans with their catchy and humorous tunes, with dangerous amounts of energy, dancing, costumes and gratuitous fun being a consistent feature of their shows, the Kujo Kings are an act not to be missed!</p>
</div>
<div class="col-lg-4 kujoimgpos" data-scroll-speed="6">
<img style="height: 700px; width: auto;" src="img/Kujo%20Kings%20image.jpg">
</div>
</div>
</div>
</section>
我试图通过给保存图像的 div 一个负边距来实现效果,它用于隐藏部分上方和下方图像的顶部和底部的一部分,然后应用滚动速度到 div,这不起作用,然后是图像,这也不起作用。我知道所有 parallax.js 和等价物,但在所有演示中,它们都是针对全屏背景执行此操作的,我无法让它在我的用例中工作。
我已经可以看出我的效果逻辑中的缺陷,因为给 div 一个不同的滚动速度会从一开始就改变滚动速度,因此会使它消失或定位完全错误一旦用户滚动到该部分。希望你们能帮忙 :) 我不介意使用 js
我还给图像设置了 -10 的 z-index 以防万一这可能有助于视差效果,但正如我所说的逻辑存在缺陷..
.kujoimgpos {
margin-top: -50px;
margin-bottom: -50px;
z-index: -10;
}
而且我不能使用 position: fixed;因为我只希望图像在滚动过去时稍微滚动。不完全是,看起来不现实。
一般来说,您应该使用您的代码创建一个代码笔或一个 jsfiddle,以便人们更容易地帮助您。
这是我对 jQuery 的快速修复。我确实稍微编辑了 html 并添加了一些样式,请参阅 codepen 以获取工作示例。
这是使它起作用的jQuery
//get heigth of the article part
var pContainerHeight = $('.kujopad').height();
console.log(pContainerHeight);
// assign same height to image part
$('.kujoimgpos').css({'height' : pContainerHeight + 'px'});
$(window).scroll(function(){
var wScroll = $(this).scrollTop();
if (wScroll <= pContainerHeight) {
//pull bg image of kujoimgpos wScrill*1.6 pixels up
$('.kujoimgpos').css({
'background-position' : '0 -'+ wScroll *1.6 +'px'
});
}
});
http://codepen.io/antonk52/pen/YwzqQN
这家伙亲自为我的网站解决问题并开发了一个解决方案,您可以看到 here
的结果
他对 javascript 进行了一些更改,以包含滚动开始时间和高度确定方式的偏移量。
这是脚本和所有 类
$(document).ready(function(){
//get heigth of the article part
var pContainerHeight = $('#heightid').outerHeight(true);
console.log(pContainerHeight);
// assign same height to image part
$('.kujoimgpos').css({'height' : pContainerHeight + 'px'});
$(window).scroll(function(){
var wScroll = $(this).scrollTop();
console.log($(this).scrollTop());
if (wScroll => 1000) {
//pull bg image of kujoimgpos wScroll*1.6 pixels up
$('.kujoimgpos').css({
'background-position' : '0 -'+ wScroll *0.2 +'px'
});
}
});
});
.kujoimgpos {
background-image: url('/img/kujokings.jpg');
background-repeat: no-repeat;
}
.kujopad {
padding-top: 180px;
padding-bottom: 200px;
}
和html部分
<section id="acts" class="acts">
<div class="container-fluid" >
<div class="row">
<div class="col-sm-4 col-sm-offset-2 kujopad" id="heightid">
<h1>The Kujo Kings</h1>
<p>The Kujo Kings
Known for their Ska/Punk anthems and high energy packed out shows, this 20 something band has built a strong Australian-wide following since forming in 2010. The six-piece band are dedicated to entertaining fans with their catchy and humorous tunes, with dangerous amounts of energy, dancing, costumes and gratuitous fun being a consistent feature of their shows, the Kujo Kings are an act not to be missed!</p>
</div>
<div class="col-sm-4 kujoimgpos">
<! the image is here >
</div>
</div>
</div>
</section>
我有 this section of my site 致力于活动中的行为。其中一幕的给定图片非常垂直,但提供的信息很少 none。所以我想我可以让图片垂直延伸到部分的限制之外,并给它一个视差滚动效果。
这是整个部分代码:
<section id="acts">
<div class="container-fluid">
<div class="row">
<div class="col-lg-4 col-lg-offset-2 kujopad">
<p>The Kujo Kings
Known for their Ska/Punk anthems and high energy packed out shows, this 20 something band has built a strong Australian-wide following since forming in 2010. The six-piece band are dedicated to entertaining fans with their catchy and humorous tunes, with dangerous amounts of energy, dancing, costumes and gratuitous fun being a consistent feature of their shows, the Kujo Kings are an act not to be missed!</p>
</div>
<div class="col-lg-4 kujoimgpos" data-scroll-speed="6">
<img style="height: 700px; width: auto;" src="img/Kujo%20Kings%20image.jpg">
</div>
</div>
</div>
</section>
我试图通过给保存图像的 div 一个负边距来实现效果,它用于隐藏部分上方和下方图像的顶部和底部的一部分,然后应用滚动速度到 div,这不起作用,然后是图像,这也不起作用。我知道所有 parallax.js 和等价物,但在所有演示中,它们都是针对全屏背景执行此操作的,我无法让它在我的用例中工作。
我已经可以看出我的效果逻辑中的缺陷,因为给 div 一个不同的滚动速度会从一开始就改变滚动速度,因此会使它消失或定位完全错误一旦用户滚动到该部分。希望你们能帮忙 :) 我不介意使用 js
我还给图像设置了 -10 的 z-index 以防万一这可能有助于视差效果,但正如我所说的逻辑存在缺陷..
.kujoimgpos {
margin-top: -50px;
margin-bottom: -50px;
z-index: -10;
}
而且我不能使用 position: fixed;因为我只希望图像在滚动过去时稍微滚动。不完全是,看起来不现实。
一般来说,您应该使用您的代码创建一个代码笔或一个 jsfiddle,以便人们更容易地帮助您。
这是我对 jQuery 的快速修复。我确实稍微编辑了 html 并添加了一些样式,请参阅 codepen 以获取工作示例。
这是使它起作用的jQuery
//get heigth of the article part
var pContainerHeight = $('.kujopad').height();
console.log(pContainerHeight);
// assign same height to image part
$('.kujoimgpos').css({'height' : pContainerHeight + 'px'});
$(window).scroll(function(){
var wScroll = $(this).scrollTop();
if (wScroll <= pContainerHeight) {
//pull bg image of kujoimgpos wScrill*1.6 pixels up
$('.kujoimgpos').css({
'background-position' : '0 -'+ wScroll *1.6 +'px'
});
}
});
http://codepen.io/antonk52/pen/YwzqQN
这家伙亲自为我的网站解决问题并开发了一个解决方案,您可以看到 here
的结果他对 javascript 进行了一些更改,以包含滚动开始时间和高度确定方式的偏移量。
这是脚本和所有 类
$(document).ready(function(){
//get heigth of the article part
var pContainerHeight = $('#heightid').outerHeight(true);
console.log(pContainerHeight);
// assign same height to image part
$('.kujoimgpos').css({'height' : pContainerHeight + 'px'});
$(window).scroll(function(){
var wScroll = $(this).scrollTop();
console.log($(this).scrollTop());
if (wScroll => 1000) {
//pull bg image of kujoimgpos wScroll*1.6 pixels up
$('.kujoimgpos').css({
'background-position' : '0 -'+ wScroll *0.2 +'px'
});
}
});
});
.kujoimgpos {
background-image: url('/img/kujokings.jpg');
background-repeat: no-repeat;
}
.kujopad {
padding-top: 180px;
padding-bottom: 200px;
}
和html部分
<section id="acts" class="acts">
<div class="container-fluid" >
<div class="row">
<div class="col-sm-4 col-sm-offset-2 kujopad" id="heightid">
<h1>The Kujo Kings</h1>
<p>The Kujo Kings
Known for their Ska/Punk anthems and high energy packed out shows, this 20 something band has built a strong Australian-wide following since forming in 2010. The six-piece band are dedicated to entertaining fans with their catchy and humorous tunes, with dangerous amounts of energy, dancing, costumes and gratuitous fun being a consistent feature of their shows, the Kujo Kings are an act not to be missed!</p>
</div>
<div class="col-sm-4 kujoimgpos">
<! the image is here >
</div>
</div>
</div>
</section>