【发布时间】:2015-07-18 11:22:18
【问题描述】:
我有一个高度设置为自动的幻灯片,因此可以显示任何高度的图像。在该幻灯片中,我有两个箭头,它们被包裹在一个带有 .center 类的 div 中。箭头位于固定位置,因此滚动时箭头会跟随。当您滚动 div .center 时,将显示分配给 div="center" 的功能。
我遇到的问题是,一旦我滚动过幻灯片 div,箭头仍然存在。但是当我向上滚动通过我的幻灯片放映 div 时,箭头被隐藏了。
当我向下滚动到具有 cs-slider 类的 div 2 或幻灯片结束时,如何设置我的脚本,中心将被隐藏?
$(window).scroll(function() {
$(".center").each( function() {
if( $(window).scrollTop() > $(this).offset().top - 150 ) {
$(this).css('opacity',1);
} else {
$(this).css('opacity',0);
}
});
});
HTML
<section class="cs-slider" style="margin-bottom: 80px;" >
<div class="center" id="box" >
<a href=# id="prev">Prev</a>
<a href=# id="next">Next</a>
</div>
<div class="slides cycle-slideshow"
data-cycle-fx="fade"
data-cycle-prev="#prev"
data-cycle-next="#next"
data-cycle-pager=".pager"
data-cycle-loader="wait"
data-cycle-swipe=true
data-cycle-swipe-fx=scrollHorz
data-cycle-auto-height=container
data-cycle-center-horz=true
data-cycle-timeout="0"
data-cycle-speed="500"
>
<div class="pager"></div>
</div>
</section><!-- slider -->
<section class="workContent fadeDown"><!-- Hide .center once you scroll over section -->
</section>
CSS
cs-slider .slides { margin:0 auto; max-width:800px; display:block; z-index:1}
.cs-slider { position:relative; text-align:center; padding:4em 0em 1em 0em;}
.center {opacity: 0; }
#prev, #next { position:fixed; top: 0%; width: 10%; height: 200px; cursor: pointer; text-indent:-9999px;}
#prev { left: 0; background: url(http://malsup.github.com/images/left.png) 50% 50% no-repeat; }
#next { right: 0; background: url(http://malsup.github.com/images/right.png) 50% 50% no-repeat;}
#prev:hover, #next:hover { opacity: .7; filter: alpha(opacity=70) }
.disabled { opacity: .5; filter:alpha(opacity=50); }
【问题讨论】:
-
我为此做了一个 jQuery 插件,也许你会发现它很有用:github.com/DebonairStudios/fromTop.js
-
我有点困惑,你不想显示任何溢出吗?如果是这样,请尝试 CSS overflow: none;
-
如果有点混乱,我很抱歉。我想要的是将 div 限制在 div 1 中。因此,当您滚动 div 1 时,一旦您滚动 div 1 和现在在 div 2 上,箭头就会显示,我希望箭头淡出。 @IanWise
-
我会看看你的插件@JacobGray
-
我忘记了那些链接 >.
标签: javascript jquery html css