javascript - Jquery淡出->滚动->淡入行为
问题描述
所以我试图在我的“.list”元素上实现这一点:list 平滑地淡出,然后 scrollTop 正在改变,然后它又平滑地淡入。我检查了几个类似的案例,似乎没有一个真正帮助我.
这是我的代码,我首先想到的是什么。
$(".list").fadeOut(300, function() {
$(".list").scrollTop(newPosition);
$(".list").fadeIn(300);
});
这件作品除了淡入淡出之外什么都不做。通过搜索答案,我已经实现了一些接近我的目标。
$(".list").fadeOut(300, function() {
$(".list").fadeIn(300);
}).delay(300).scrollTop(newPosition);
但似乎延迟在这里根本不起作用,我的列表只是立即更改滚动,然后淡出淡入。
我确实意识到我可能可以使用animate()
.
有人可以解释这种行为吗?有什么特别之处吗scrollTop()
,因为这东西完全符合我的要求
$(".list").fadeOut(300, function() {
$(".list").text("something").fadeIn(300);
});
虽然这根本不起作用,但会淡出并淡入
$(".list").fadeOut(300, function() {
$(".list").scrollTop(newPosition).fadeIn(300);
});
编辑:从评论中的人那里得到它,谢谢。fadeOut()
设置列表display: none
。
scrollTop()
元素display: none
始终为 0,并且一旦淡入,它就会恢复到淡出之前的状态。所以我想我应该animate()
改为不透明度并做我的事。
谢谢!
解决方案
你需要scrollTop
你的 body 或 html 元素(或另一个容器),而不是你的.list
元素这是一个工作示例:
$('.list').fadeOut(800, function(){
$("html").animate({
scrollTop: 180
}, 800, function() {
$('.list').fadeIn(800);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</p>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</p>
<ul class="list">
<li>My List</li>
<li>My List</li>
<li>My List</li>
<li>My List</li>
<li>My List</li>
<li>My List</li>
</ul>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</p>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</p>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</p>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</p>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
</p>
推荐阅读
- java - java.lang.UnsatisfiedLinkError:dlopen 失败:找不到库“../../lib/libopencv_core.so”
- android - 调试文件显示在生产构建的 Assets 文件夹中
- python - Tkinter 单击事件突出显示单击的标签?
- java - 如何查看安卓手机是否支持TEE?
- tableau-api - 如何创建这个复杂的用户过滤器?
- java - 在gradle中添加abmob依赖项后android应用程序崩溃
- javascript - Vue.js 自动更新计算
- python - 如何找到字典中的第一项?
- c - 我的程序创建了一个名为 date.in 的文件,但它没有插入所有数字
- javascript - 导出 node.js 的问题