【发布时间】:2017-08-28 12:15:24
【问题描述】:
我不知道为什么这里的代码在我的网站上运行时在这里不起作用,但你可以在http://www.bsrp.eu/tijdelijk/index.php 看到它。
基本上发生的情况是,如果您向下滚动一页,则会出现右上角的小徽标。从opacity:0 到opacity:1 只需 1 秒。
但是当它位于opacity:1 时,徽标会向右跳 1 或 2 个像素。
有没有办法解决这个问题?
$(function () {
$(window).bind('scroll', function () {
if ($(window).scrollTop() > (window.innerHeight*0.3)) {
$('.logo-klein').addClass('show').removeClass('fade');
}
else {
$('.logo-klein').removeClass('show').addClass('fade');
}
});
});
.for_extra_scroll{
height: 200vh;
}
.logo{
height: 250px;
padding: .25vh;
float: right;
position: fixed;
right: 20px;
opacity: 0;
-webkit-transition: all 1s ease;
-moz-transition: all 1s ease;
-o-transition: all 1s ease;
-ms-transition: all 1s ease;
transition: all 1s ease;
}
.show {
opacity: 1;
}
.fade{
opacity: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="for_extra_scroll">
<a href="#header"><img src="http://teachersjobworld.com/employer/upload_logo/sample_logo.png" class="logo"></a>
</div>
【问题讨论】:
-
我认为我没有看到它跳跃。但是,如果您将
transition中的all更改为opacity会怎样?一旦图像渲染,我确实看到它有点“流行”,但这是显示如此小的非常大的图像的副产品。 codepen.io/mcoker/pen/evXpPr -
还有什么元素有
.logo-klein class作为脚本中的目标? -
我同意迈克尔的建议。您在 70x68 左右显示 1210x1182 像素的图像。您应该缩小原始图像,因为这样可以节省更多带宽并减少加载时间。
-
是的,我总是在站点完成后更改大小,还有不做任何事情的类,因为我从我的原始代码中复制粘贴了它
标签: html css position css-transitions opacity