Android 上的神经质行为
Jumpy behavior on Android
在我网站的部分背景图像上使用全宽和全高,但我在 Android 上遇到了一些跳动行为。我正在使用 modernizr 来检测触摸事件并将背景附件从固定更改为本地。 Here is the site 以下是我正在使用的 css:
.intro, .behind-the-scenes, .the-scene, .the-stage, .contact {
height: 100vh;
min-width: 100%;
color: $white;
display: table;
background-attachment: fixed;
background-position: center;
background-size: cover;
background-repeat: no-repeat;
}
// if a touchevent is detected
.touchevents {
.intro, .behind-the-scenes, .the-scene, .the-stage, .contact {
background-attachment: local;
}
}
问题是由这两个属性和 Android 浏览器行为的 Chrome 引起的:
CSS:
.intro,
.behind-the-scenes,
.the-scene,
.the-stage,
.contact {
height: 100vh;
background-size: cover;
}
随着用户向下滚动浏览器的顶部工具栏将消失,因此五个元素将增加高度。因为 background-size
设置为 cover
图像也必须快速拉伸。
解决方案
我无法在移动设备上测试它,但将 transition 添加到 height
属性 可能会解决问题。
.intro,
.behind-the-scenes,
.the-scene,
.the-stage,
.contact {
-webkit-transition: height 0.2s linear;
transition: height 0.2s linear;
}
如果它没有帮助,有一个 jQuery 解决方案可以在 page-load 和 window 上调整这些元素的高度,这样背景就不会跳动顶部工具栏消失的时间。
jQuery:
(function($) {
var elements = $('.full-height');
function elementHeightFix() {
var windowHeight = $(window).height();
elements.each(function() {
$(this).css('height', windowHeight);
});
}
$(window).resize(function() {
elementHeightFix();
});
elementHeightFix();
}(jQuery));
为了简单起见,我使用了单个选择器,您可以将选择器存储在一个对象中并遍历它们。请注意,我主要使用 CoffeeScript 和 TypeScript,所以我的纯 jQuery 代码可能会很乱。
在我网站的部分背景图像上使用全宽和全高,但我在 Android 上遇到了一些跳动行为。我正在使用 modernizr 来检测触摸事件并将背景附件从固定更改为本地。 Here is the site 以下是我正在使用的 css:
.intro, .behind-the-scenes, .the-scene, .the-stage, .contact {
height: 100vh;
min-width: 100%;
color: $white;
display: table;
background-attachment: fixed;
background-position: center;
background-size: cover;
background-repeat: no-repeat;
}
// if a touchevent is detected
.touchevents {
.intro, .behind-the-scenes, .the-scene, .the-stage, .contact {
background-attachment: local;
}
}
问题是由这两个属性和 Android 浏览器行为的 Chrome 引起的:
CSS:
.intro,
.behind-the-scenes,
.the-scene,
.the-stage,
.contact {
height: 100vh;
background-size: cover;
}
随着用户向下滚动浏览器的顶部工具栏将消失,因此五个元素将增加高度。因为 background-size
设置为 cover
图像也必须快速拉伸。
解决方案
我无法在移动设备上测试它,但将 transition 添加到 height
属性 可能会解决问题。
.intro,
.behind-the-scenes,
.the-scene,
.the-stage,
.contact {
-webkit-transition: height 0.2s linear;
transition: height 0.2s linear;
}
如果它没有帮助,有一个 jQuery 解决方案可以在 page-load 和 window 上调整这些元素的高度,这样背景就不会跳动顶部工具栏消失的时间。
jQuery:
(function($) {
var elements = $('.full-height');
function elementHeightFix() {
var windowHeight = $(window).height();
elements.each(function() {
$(this).css('height', windowHeight);
});
}
$(window).resize(function() {
elementHeightFix();
});
elementHeightFix();
}(jQuery));
为了简单起见,我使用了单个选择器,您可以将选择器存储在一个对象中并遍历它们。请注意,我主要使用 CoffeeScript 和 TypeScript,所以我的纯 jQuery 代码可能会很乱。