gpt4 book ai didi

javascript - 需要页面上其他 ID 的动画,包括 jsfiddle

转载 作者:行者123 更新时间:2023-11-28 01:06:19 26 4
gpt4 key购买 nike

当我单击指向元素 ID 的链接时,我希望它具有动画效果,例如第一个 ID 淡出,而正在滚动的新 ID 淡入。

我想动画滚动到另一个。我在这里和其他网站上四处张望,包括谷歌搜索,但我没有找到任何适用于我的代码的东西。我知道我需要 jquery 等,我试过的一切都没有用,所以我删除了所有的 JS。

如果有人能提供帮助,将不胜感激,谢谢!

此外,如果有一个更简单的解决方案可以让内容位于中间且没有滚动条,这样每个部分加载速度更快但仍保持在中间,我很想知道。我对这一切都很陌生,这真的很令人困惑。我还没有太多关于 JavaScript 的线索。

谢谢。

CSS:

* {
margin:0;
padding:0;
text-decoration:none;
box-sizing:border-box;
font-family:tahoma;
overflow:hidden;
}

body {
background: url(http://www.visionpharmacy.org.uk/assets/img/main/22.jpg) no-repeat;
height:100vh;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}

.wrapper {
width:960px;
max-width:100%;
margin:0 auto;
position:relative;
height:100vh;
z-index:1;
}

.wrapper > #welcome, #contact {
background:rgba(250,250,250,0.8);
padding:40px;
margin-top:15vh;
height:80vh;
}

header {
position:fixed;
width:100%;
max-width:100%;
height:10vh;
background:white;
z-index:2;
}

header > h1 {
font-family:sans-serif;
font-size:2em;
padding:0 0 0 20px;
line-height:70px;
font-weight:600;
color:black;
float:left;
}

nav {
float:right;
line-height:10vh;
padding:0 20px 0 0;
}

a[name="backtotop"] {
font-size:1em;
color:black;
}

a[name="backtotop"]:hover {
color:lightseagreen;
transition:0.3s cubic-bezier(0.23, 1, 0.320, 1);
}

HTML:

<!doctype <!DOCTYPE html>
<html lang="en">
<head>
<title>Company Name</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="js/scroll.js"></script>
<meta charset="UTF-8">
<meta name="language" content="English">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="css/style.css" rel="stylesheet">
</head>
<body>

<header>

<h1>Company Name</h1>
<nav>
<a href="#first">Home</a> - <a href="#contact">Contact</a>
</nav>
</header>

<main>
<div id="first" class="wrapper">
<div id="welcome">
testing 1, 2

<a name="backtotop" href="#">Back to top</a>
</div>
</div>

<div class="wrapper">
<div id="contact">
More testing?

<a name="backtotop" href="#">Back to top</a>
</div>
</div>

</main>



</body>
</html>

JS fiddle :

https://jsfiddle.net/5nwudmhc/

最佳答案

试试这个:

$(document).ready(function(){
// Add smooth scrolling to all links
$("a").on('click', function(event) {

// Make sure this.hash has a value before overriding default behavior
if (this.hash !== "") {
// Prevent default anchor click behavior
event.preventDefault();

// Store hash
var hash = this.hash;

// Using jQuery's animate() method to add smooth page scroll
// The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area
$('html, body').animate({
scrollTop: $(hash).offset().top
}, 800, function(){

// Add hash (#) to URL when done scrolling (default click behavior)
window.location.hash = hash;
});
} // End if
});
});

然后您应该将 #contact(或任何 #IDhere)添加到您希望用户点击的链接。

然后将 id="contact"(或任何 id="IDhere")添加到您要滚动到的元素。

编辑:

好的,所以不滚动的部分是由于隐藏了溢出(overflow: hidden;),当你删除它时,它会起作用,但背景也会移动向上,所以在 CSS 的 body 元素中你需要添加 background-attachment: fixed;body 元素,现在问题来了就是页面顶部的内容因为导航栏的原因无法阅读,内容还在。但我想你可以自己解决这个问题。我将提供最后一个片段:https://jsfiddle.net/64vmo586/

关于javascript - 需要页面上其他 ID 的动画,包括 jsfiddle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39618446/

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