gpt4 book ai didi

javascript - 如何防止我的平滑滚动 jquery 函数修改我的 div 元素的内容?

转载 作者:太空宇宙 更新时间:2023-11-04 06:37:21 25 4
gpt4 key购买 nike

我正在使用 jquery 来创建平滑滚动效果。当用户单击我页面上的“Person1”时,jquery 使用 anchor 链接成功向下滚动到页面底部的灰色 div。但是,它会修改所有绿色 div 的内容,以便将它们的内容向上推。这是为什么?如何在不影响绿色div内容的情况下让页面向下滚动?

<script src="https://code.jquery.com/jquery-1.9.0.min.js" integrity="sha256-f6DVw/U4x2+HjgEqw5BZf67Kq/5vudRZuRkljnbF344=" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://louisville.edu/artsandsciences/styles/experimental/flexslider.css" type="text/css" media="screen" />
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/flexslider/2.7.1/jquery.flexslider.js"></script>
<script defer src="https://gist.githubusercontent.com/bergantine/3868451/raw/a67f7e7989068013bfd0341cd523b843105c6d8d/gistfile1.js"></script> <!--referred to as modernizr.js in the flexslider package-->

<link href='https://fonts.googleapis.com/css?family=Comfortaa' rel='stylesheet'>


<script type="text/javascript">

$(window).load(function() {
$('#carousel').flexslider({
animation: "slide",
controlNav: false,
animationLoop: false,
slideshow: false,
itemWidth: 210,
itemMargin: 5,
asNavFor: '#slider'
});

$('#slider').flexslider({
animation: "slide",
controlNav: false,
animationLoop: false,
slideshow: false,
sync: "#carousel"
});
});

$(document).on('click', 'a[href^="#"]', function (event) {
event.preventDefault();
var scrollBottom = $(window).scrollTop() + $(window).height();
$('div').animate({
scrollTop: $($.attr(this, 'href')).offset().top
}, 500);
});

</script>

<style>

.flex-nav-prev, .flex-nav-next{display: none;} /*hide the left and right arrows*/

#BackgroundContainer{
background-color: white;
height: 1180px;
background-size: cover;
}

.flexslider{
margin-top: 4px;
border: none !important; /*overrides the flexslider.css file style*/
}

.flex-viewport{width: 820px;}
.flex-active-slide{width: 820px;}

#slider{
background: none;
margin-bottom: 20px; /*overrides the flexslider.css file style*/
min-height: 370px; /*no longer necessary? this reserves height for the slider and makes sure that the blurb at the bottom stays there as the page loads*/
}

#carousel{
height: 40px;
width: 910px;
margin-right: 10px;
margin-bottom: 0px;
background-color: transparent;
}

#carousel li{
text-align: center;
}

#carousel span{
font-family: comfortaa;
color: #165D7A;
font-size: 20px;
line-height: 37px;
text-align: center;
}

.Team_Container{margin-left: 10px;}

.grid_cell{
width: 144px;
height: 164px;
display: inline-block;
position: relative;
z-index: 0;
margin-right: 10px;
margin-bottom: 17px;
}

/*

.grid_cell:hover{z-index: 1;}

.grid_cell div:hover{
height: 346px;
background-color: rgba(176, 196, 222, 0.9) !important;
border-color: #7795BF !important;
box-shadow: 0px 8px 20px 1px grey;
}

.grid_cell div div:hover{height: 160px;}

*/

.profile_container{
position: absolute;
height: 163px;
width: 144px;
overflow: hidden;
display: inline-block;
vertical-align: top;
background-color: rgba(207, 232, 221, 0.6); /*light green almost transparent*/
border: 2px solid #99D1E0;
border-radius: 5px;
text-align: -webkit-center;
-webkit-transition: all .3s ease;
-moz-transition: all .3s ease;
-ms-transition: all .3s ease;
-o-transition: all .3s ease;
}

.profile_container span{
display: block;
width: 123px;
margin-bottom: 5px;
text-align: center;
font-family: 'Comfortaa' !important;
font-weight: bold;
margin-right: auto;
margin-left: auto;
font-size: 11px;
}

.profile_container .employee_name{
line-height: 18px;
color: #395880;
font-size: 14px !important;
word-spacing: 120px;
width: 130px;
}

.profile_container .job_title{
line-height: 17px;
}

.pic_container{
height: 130px;
width: 124px;
border-radius: 150px;
position: relative;
margin-left: auto;
margin-right: auto;
margin-bottom: 16px;
overflow: hidden;
-webkit-transition: all .3s ease;
-moz-transition: all .3s ease;
-ms-transition: all .3s ease;
-o-transition: all .3s ease;
}

.profile_pic{height: 160px;}

.department_description_container{
width: 780px;
min-height: 90px;
vertical-align: middle;
border-radius: 10px;
background: linear-gradient(#DAE0E3, #C1D3DB);
border: solid 2px #7F9AAD;
padding: 10px;
z-index: 0;
margin-bottom: 85px; /*so that the profiles above this container have room to expand downward and still be visible*/
}

.department_description{
font-family: comfortaa;
color: #304F5E;
font-size: 16px;
}

</style>


<div id="BackgroundContainer">

<br>

<div id="carousel" class="flexslider">
<ul class="slides">
<li><a href="#"><span>Department1</span></a></li>
<li><a href="#"><span>Department2</span></a></li>
</ul>
</div>

<div id="slider" class="flexslider">
<ul class="slides">
<li>
<div class="Team_Container">
<div class="grid_cell">
<a href="#department_description_container1">
<div class="profile_container">
<div class="pic_container"><img class="profile_pic" src="http://www.rhylcomicanddiscco.co.uk/wp-content/uploads/2016/04/generic-man-profile.jpg"></div>
<span class="employee_name">Person1 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</a>
</div>

<div class="grid_cell">
<div class="profile_container">
<div class="pic_container"></div>
<span class="employee_name">Person2 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container">
<div class="pic_container"></div>
<span class="employee_name">Person3 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>
<div class="grid_cell">
<div class="profile_container">
<div class="pic_container"></div>
<span class="employee_name">Person4 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container">
<div class="pic_container"></div>
<span class="employee_name">Person5 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container"><div class="pic_container"></div>
<span class="employee_name">Person6 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container"><div class="pic_container"></div>
<span class="employee_name">Person7 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container"><div class="pic_container"></div>
<span class="employee_name">Person8 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container"><div class="pic_container"></div>
<span class="employee_name">Person9 LastName</span> <br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container"><div class="pic_container"></div>
<span class="employee_name">Person10 LastName</span> <br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container"><div class="pic_container"></div>
<span class="employee_name">Person11 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container"><div class="pic_container"></div>
<span class="employee_name">Person12 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container"><div class="pic_container"></div>
<span class="employee_name">Person13 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container"><div class="pic_container"></div>
<span class="employee_name">Person14 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container"><div class="pic_container"></div>
<span class="employee_name">Person15 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container"><div class="pic_container"></div>
<span class="employee_name">Person16 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container"><div class="pic_container"></div>
<span class="employee_name">Person17 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div id="department_description_container1" class="department_description_container">
<span class="department_description">Department 1 does X, Y, and Z.</span>
</div>

</div>
</li>

<li>
<div class="Team_Container">
<div class="grid_cell">
<div class="profile_container">
<div class="pic_container"></div>
<span class="employee_name">Person1 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container">
<div class="pic_container"></div>
<span class="employee_name">Person2 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container">
<div class="pic_container"></div>
<span class="employee_name">Person3 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container">
<div class="pic_container"></div>
<span class="employee_name">Person4 LastName</span> <br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container">
<div class="pic_container"></div>
<span class="employee_name">Person5 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>

<div class="grid_cell">
<div class="profile_container"><div class="pic_container"></div>
<span class="employee_name">Person6 LastName</span><br>
<span class="job_title">Job Position</span>
<span>Department</span>
</div>
</div>



<div class="department_description_container">
<span class="department_description">Department 2 does U, V, and W.</span>
</div>

</div>
</li>

</ul>
</div>

</div>

最佳答案

您在此代码片段中使用的选择器过于笼统,您使用的是 div,这意味着当您单击链接时它将影响页面上的所有 div。

$('div').animate({
scrollTop: $($.attr(this, 'href')).offset().top
}, 500);

有两个您感兴趣的选择器,即 html 和 body 标记,代码如下所示:

$('html, body').animate({
scrollTop: $($.attr(this, 'href')).offset().top
}, 500);

关于javascript - 如何防止我的平滑滚动 jquery 函数修改我的 div 元素的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54102536/

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