gpt4 book ai didi

javascript - 缩小效果问题

转载 作者:太空宇宙 更新时间:2023-11-03 23:13:31 24 4
gpt4 key购买 nike

我试图获得一个完整的页面(导航在顶部,但我不介意背景在它下面)缩小效果。 但是,我希望它在加载所有 Assets 后执行,因为这是加载页面时看到的第一件事。所以我不希望它被提前执行,否则它甚至可能看不到,或者只是它的结尾会被捕获。

我看过几个例子,但我遇到了问题:

  • 动画(使用 jQuery)背景大小属性 - 这使得动画“断断续续”,我在某处读到这可能是因为它在 CPU 而不是 GPU 上运行。

演示: https://jsfiddle.net/njj43kz4/

HTML

<body>
<div id="front"></div>
</body>

CSS

html {
width: 100%;
height: 100%;
}

body {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px;
}

#front {
position: relative;
top: 0;
width: 100%;
height: 100%;
opacity: 1;
background: #222 url("http://melleum.com/data/uploads/1/262040-1920x1080-wallpaper.jpg") no-repeat center center;
background-size: 110%;
}

JavaScript

$('#front').animate({ backgroundSize: '100%' }, 1000);
  • 使用 setTimeout,如前一个问题的答案所示:Slight background zoom on DOM load? - 这工作顺利,但是当我将宽度和高度值更改为 100% 时,我无法让它工作。图像在缩小之前开始超大,但显示超大 View 。我想要固定的 100%x100% View ,并且没有额外的缩放可见。我试过 overflow: hidden 但这并没有 overflow hidden 。当滚动条出现并破坏效果时,您可以看到这种情况正在发生。

演示: http://jsfiddle.net/eHAuh/15/

HTML

<body>
<div id="front" class="scaled"></div>
</body>

CSS

html {
width: 100%;
height: 100%;
}

body {
width: 100%;
height: 100%;
}

#front {
position: relative;
top: 0;
width: 100%;
height: 100%;
opacity: 1;
background: #222 url("http://melleum.com/data/uploads/1/262040-1920x1080-wallpaper.jpg") no-repeat center center;
background-position: 50% 50%;
overflow: hidden;
}

.animatable {
-webkit-transition:all 750ms ease-out;
transition:all 750ms ease-out;
}

.scaled {
-webkit-transform:scale(1.2);
transform:scale(1.2);
}

JavaScript

$(document).ready(function () {
$('#front').attr('class', 'animatable');
setTimeout(function () {
$('#front').removeClass('animatable');
}, 1000)
});

任何帮助都会很棒,我希望这个问题的布局没问题。我不知道如何在不将段落缩进为代码缩进的情况下缩进段落。感谢阅读,祝您有愉快的一天。

编辑 1:加载时执行的方式是因为 jQuery/JavaScript 在 $(window).load 中。

编辑 2:有一个答案建议使用关键帧,但是这些不支持 IE9,这会更好。

最佳答案

如果你想使用 scale,你可以使用 css @keyframes 来完成它

  • 我使用了伪类来添加背景

/** after page has loaded*/
$(window).bind('load', function() {
$('#front').addClass('active')
})
html {
width: 100%;
height: 100%;
}
body {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px;
}
#front {
position: relative;
top: 0;
width: 100%;
height: 100%;
opacity: 1;
overflow: hidden;
}
#front:after {
content: '';
width: 100%;
height: 100%;
position: absolute;
background: #222 url("http://melleum.com/data/uploads/1/262040-1920x1080-wallpaper.jpg") no-repeat center center;
background-size: cover;
transform: scale(2);
}
#front.active:after {
animation: animation 5s;
/* change the value 5s to what you want */
animation-fill-mode: forwards;
/* added so that it doesn't return to its original state which is scale(2)*/
}
@keyframes animation {
0% {
transform: scale(2);
}
100% {
transform: scale(1)
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="front"></div>

根据您的要求,您似乎需要这个

/** after page has loaded*/
$(window).bind('load', function() {
$('#front').animate({
width: '100%',
height: '100%'
}, 5000);
})
html {
width: 100%;
height: 100%;
}
body {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px;
overflow: hidden;
}
#front {
position: relative;
top: 0;
width: 200%;
height: 200%;
opacity: 1;
background: #222 url("http://melleum.com/data/uploads/1/262040-1920x1080-wallpaper.jpg") no-repeat center center;
background-size: cover;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="front"></div>

关于javascript - 缩小效果问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31661066/

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