toggleClass 用于执行两种不同的 scrollTop 方法,不起作用
toggleClass used to execute two different scrollTop methods, not working
所以我有以下功能 运行 并且效果很好。选中的div
用.slideToggle()
函数展开,页面用.animate()
和.scrollTop()
方法向下滑动body
$('.pfitem').click(function(){
$(this).toggleClass('minimized maximized');
$(this).next().toggleClass('minimized maximized');
$(this).next().slideToggle(1200);
});
$('.pfitem.minimized').click(function(){
$('html, body').animate({
scrollTop: $(this).next().offset().top
}, 1200);
});
现在,当我尝试添加以下代码时,根据我的理解,它应该将页面滑回 div
,id 为 #portfolio
,它什么也不做,即使现在 [= .click()
函数所针对的 div
的 54=] 已切换为 .pfitem.maximized
,因此之前的 .click()
函数不应干扰。
$(".pfitem.maximized").click(function() {
$('html, body').animate({
scrollTop: $('#portfolio').offset().top
}, 1200);
});
这是我的 HTML 的一个片段,我试图从中删除不相关的信息(我正在使用 bootstrap 并留下了一些 bootstrap classes在代码中)
<div class="page" id="portfolio">
<div class="content container">
<ul class="row npr">
<li class="container col-xs-12 col-sm-4 col-md-3 pfitem businesscards minimized">
<div class="orangeover">
<span>Business Cards</span>
</div>
</li>
<div class="container col-xs-12 maximizeitem minimized" id="businesscards">
<div class="maxicontent col-sm-4">
<h4>BUSINESS CARDS</h4>
<p>Some text goes here</p>
<p>Some text goes here</p>
</div><!-- maxicontent -->
<div class="maxiimages col-sm-8">
<button class="close"><span class="">X</span></button>
<img src="" class="">
</div><!-- maxiimages -->
</div><!-- container maximizeitem -->
</ul>
</div><!-- .content .container -->
</div><!-- #portfolio -->
这是我的第一个post,希望我提供了足够的信息。
谢谢
由于您希望动态评估选择器,因此您必须使用事件委托
$(document).on('click', '.pfitem', function () {
$(this).toggleClass('minimized maximized');
$(this).next().toggleClass('minimized maximized');
$(this).next().slideToggle(1200);
});
$(document).on('click', '.pfitem.minimized', function () {
$('html, body').animate({
scrollTop: $(this).next().offset().top
}, 1200);
});
所以我有以下功能 运行 并且效果很好。选中的div
用.slideToggle()
函数展开,页面用.animate()
和.scrollTop()
方法向下滑动body
$('.pfitem').click(function(){
$(this).toggleClass('minimized maximized');
$(this).next().toggleClass('minimized maximized');
$(this).next().slideToggle(1200);
});
$('.pfitem.minimized').click(function(){
$('html, body').animate({
scrollTop: $(this).next().offset().top
}, 1200);
});
现在,当我尝试添加以下代码时,根据我的理解,它应该将页面滑回 div
,id 为 #portfolio
,它什么也不做,即使现在 [= .click()
函数所针对的 div
的 54=] 已切换为 .pfitem.maximized
,因此之前的 .click()
函数不应干扰。
$(".pfitem.maximized").click(function() {
$('html, body').animate({
scrollTop: $('#portfolio').offset().top
}, 1200);
});
这是我的 HTML 的一个片段,我试图从中删除不相关的信息(我正在使用 bootstrap 并留下了一些 bootstrap classes在代码中)
<div class="page" id="portfolio">
<div class="content container">
<ul class="row npr">
<li class="container col-xs-12 col-sm-4 col-md-3 pfitem businesscards minimized">
<div class="orangeover">
<span>Business Cards</span>
</div>
</li>
<div class="container col-xs-12 maximizeitem minimized" id="businesscards">
<div class="maxicontent col-sm-4">
<h4>BUSINESS CARDS</h4>
<p>Some text goes here</p>
<p>Some text goes here</p>
</div><!-- maxicontent -->
<div class="maxiimages col-sm-8">
<button class="close"><span class="">X</span></button>
<img src="" class="">
</div><!-- maxiimages -->
</div><!-- container maximizeitem -->
</ul>
</div><!-- .content .container -->
</div><!-- #portfolio -->
这是我的第一个post,希望我提供了足够的信息。
谢谢
由于您希望动态评估选择器,因此您必须使用事件委托
$(document).on('click', '.pfitem', function () {
$(this).toggleClass('minimized maximized');
$(this).next().toggleClass('minimized maximized');
$(this).next().slideToggle(1200);
});
$(document).on('click', '.pfitem.minimized', function () {
$('html, body').animate({
scrollTop: $(this).next().offset().top
}, 1200);
});