我正在尝试针对其当前旁边的元素实现top
属性增加。元素只需要在元素旁边滚动,并且在传递元素高度时应该停止。
我想要实现的目标:图像需要使用jQuery粘贴在右边的元素旁边,并停在元素的末尾。
var objectSelect = $(".article");
var objectPosition = objectSelect.offset().top;
//if (scroll > objectPosition) {
// objectSelect.find('article').addClass("fixable").find('figure').addClass("fixable");
//} else {
// objectSelect.find('article').removeClass("fixable").find('figure').removeClass("fixable");
//}

body{
height:1000px;
}
.article {
width: 100%;
display: block;
}
.wrapper {
position: relative;
}
figure {
position: absolute;
left: 0;
top: 0;
width: 50%;
padding: 0;
margin: 0;
overflow: hidden;
}
.other-content {
background-color: black;
float: right;
overflow: hidden;
display: block;
width: 50%;
height: 800px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="article">
<div class="wrapper">
<figure>
<img src="https://placeholdit.imgix.net/~text?txtsize=53&txt=566%C3%97780&w=566&h=500" />
</figure>
<div class="other-content">
</div>
</div>
</div>
&#13;
答案 0 :(得分:1)
您可以固定figure
元素,直到它的底部到达.other-content
的底部,然后使用bottom: 0
使其绝对定位,然后在您使用时删除绝对定位。已经滚动回到figure
元素的顶部。
var $figure = $('figure'),
$other = $('.other-content'),
other_bottom = $other.offset().top + $other.outerHeight();
$(window).on('scroll', function() {
var scroll = $(window).scrollTop(),
figure_top = $figure.offset().top,
figure_bottom = $figure.offset().top + $figure.outerHeight();
if (!$figure.hasClass('abs') && figure_bottom >= other_bottom) {
$figure.addClass('abs');
}
if ($figure.hasClass('abs') && scroll < figure_top) {
$figure.removeClass('abs');
}
});
&#13;
body {
height: 500vh;
margin: 0;
}
.article {
width: 100%;
display: block;
}
.wrapper {
position: relative;
overflow: auto;
}
figure {
position: fixed;
left: 0;
top: 0;
width: 50%;
padding: 0;
margin: 0;
overflow: hidden;
}
.abs {
position: absolute;
bottom: 0;
top: auto;
}
.other-content {
background-color: black;
float: right;
overflow: hidden;
display: block;
width: 50%;
height: 800px;
}
img {
display: block;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="article">
<div class="wrapper">
<figure>
<img src="https://placeholdit.imgix.net/~text?txtsize=53&txt=566%C3%97780&w=566&h=500" />
</figure>
<div class="other-content">
</div>
</div>
</div>
&#13;