因此,我们正在为一个在Safari中的iOS7上完美运行的客户端构建此Web应用程序。但是当我们在iOS8中检查应用程序时,它有一些巨大的错误。
<section style="overlay-y: scroll;"></section>
中的内容会消失(重叠的部分)。<a href="">Lala</a>
)当我们从容器中移除-webkit-overflow-scrolling: touch;
(包含所有内容的div)时,一切都像过去一样完美无瑕......
关于它可能是什么的任何想法?
答案 0 :(得分:16)
我有同样的问题!到目前为止,我无法找到真正的解决方案,但有一个不太理想的解决方法:
假设#container设置了-webkit-overflow-scrolling: touch
属性,这个jQuery应该可以帮助你:
$('#container').css('-webkit-overflow-scrolling','auto');
或者对于javascript(未经测试):
document.getElementById('container').style.webkitOverflowScrolling = 'auto';
这将禁用页面上流畅的轮盘式滚动。所以它并不理想,但您的页面现在应该正确滚动。
进一步的研究使我们发现了一种更加黑客的解决方法,同时保持平滑的触摸滚动工作。假设你在css的某个地方-webkit-overflow-scrolling: touch
,你可以切换&#34;它在你的JS中。我不确定你有什么显示/隐藏菜单,但希望你能利用它。
function toggleMenu(){
$('#container').css('-webkit-overflow-scrolling','auto');
//...Existing code
setTimeout(function() {
$('#container').css('-webkit-overflow-scrolling','touch');
},500);
}
如果没有setTimeout,这对我没用。希望这可以帮助你或其他人。
答案 1 :(得分:0)
我在iOS8中遇到了这个问题,我所有按钮绑定到点击事件都无法正常工作。一般情况下,我们会延迟300毫秒,但在某些时候我需要按两次以上才能触发它。
所以我也发现这个解决方案适用于我的。点击添加touchend。
button.on('click touchend', function(event) {
// this fires twice on touch devices
});
你可以看到他们在这里讨论的论坛。
JavaScript touchend versus click dilemma
我希望这有帮助。
答案 2 :(得分:0)
您的侧边栏是否可以通过CSS动画进行动画制作?
我在Cordova网络应用程序中遇到了同样的错误。经过一些实验,我发现问题是由父<div>
(侧边栏)引起的,它通过css动画制作动画并具有属性animation-fill-mode: forwards;
删除此属性可解决此问题并恢复预期的-webkit-overflow-scrolling: touch
行为
答案 3 :(得分:-1)
我的回答是:
public abstract class Weapon { ... }
public abstract class WeaponProxy<T> : MonoBehaviour where T : Weapon
{
protected T weapon;
public virtual void Update()
{
...
holdingPlayer = player.getHUD().showPickup(player, this);
...
}
public abstract class GunProxy<T> : WeaponProxy<T> where T : Gun
{
}
public abstract class Weapon
{
private string weaponName;
private string weaponIdentifier;
private Player isHolding;
public string getWeaponName () { return weaponName; }
public Weapon(string weaponName, string weaponIdentifier)
{
this.weaponName = weaponName;
this.weaponIdentifier = weaponIdentifier;
}
public void playerPickedUp (Player player)
{
this.isHolding = player;
}
public void playerDropped ()
{
this.isHolding = null;
}
}
public class Gun : Weapon
{
...
}
public class HUD : MonoBehaviour
{
private WeaponProxy weapon; //C# Needs a type. Underlined in red as error
public PlayerProxy showPickup<T> (PlayerProxy player, WeaponProxy<T> weapon) where T : Weapon
{
this.weapon = weapon;
textPickupWeapon.text = "Hold '" + player.getPlayer().getControlScheme().getControlText(ControlScheme.CONTROLS.Interact) + "' to pick up " + weapon.getWeapon().getWeaponName();
...
}
}
以前的解决方案不起作用:
$('#container').css('-webkit-overflow-scrolling','auto');