gpt4 book ai didi

javascript - 检测 Bootstrap Modal 内的滚动并为滚动上的每个元素设置动画

转载 作者:行者123 更新时间:2023-11-28 04:55:41 25 4
gpt4 key购买 nike

我正在尝试编写一段代码,其中当打开 Bootstrap 模式时,会在滚动到每个元素时触发放大动画。

jsFiddle 链接 - https://jsfiddle.net/nwxLq2zg/1/

这是示例代码 -

<!-- Button trigger modal -->
<button type="button" class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Launch demo modal
</button>

<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">

<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>
...

</div>
</div>
</div>
</div>

jQuery

$('#myModal').on('show.bs.modal', function () {

$(".modal-body").unbind("scroll");

$(".modal-body").scroll(function(){

var mScroll = $(this).scrollTop();

$('.modal-body p').each(function(){

var eTop = $(this).offset().top;
console.log('Modal:'+mScroll+'| Element:'+eTop);

if(eTop > mScroll) {
$(this).addClass('animated zoomIn');
}

});
});
});

问题是 addClass 被触发到所有元素而不考虑滚动值。我怀疑这是因为我的代码无法识别单个“

”标签。如果有人能找到答案,那将非常有帮助。

实际代码可以在这个 jsFiddle - https://jsfiddle.net/nwxLq2zg/1/ 中找到

最佳答案

我尝试使用 <=滚动并添加 -50 on top offset检查这个 fiddle 。

https://jsfiddle.net/nwxLq2zg/5/

$('#myModal').on('show.bs.modal', function () {

$(".modal-body").unbind("scroll");

$(".modal-body").scroll(function(){
var mScroll = $(this).scrollTop();

$('.modal-body p').each(function(){
var eTop = $(this).offset().top - 50;

if(eTop <= mScroll) {
$(this).addClass('animated zoomIn');
}

});
});
});

关于javascript - 检测 Bootstrap Modal 内的滚动并为滚动上的每个元素设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40416505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com