在-jQuery/Javascript之后将元素返回到原始CSS
我在web应用程序的页面上有一个固定的元素(菜单选项卡),这样当iPhone键盘打开时,菜单就会重新定位在滚动窗口中。当键盘关闭时,我希望元素根据页面加载CSS返回其原始位置 如何删除在焦点上添加的滚动事件?这似乎是问题所在,我下面的代码不起作用 此外,有没有一种方法可以保持元素的位置,并使页面在其后面平滑滚动?我的代码在滚动发生后将元素捕捉到位 谢谢 固定元素的我的CSS:在-jQuery/Javascript之后将元素返回到原始CSS,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我在web应用程序的页面上有一个固定的元素(菜单选项卡),这样当iPhone键盘打开时,菜单就会重新定位在滚动窗口中。当键盘关闭时,我希望元素根据页面加载CSS返回其原始位置 如何删除在焦点上添加的滚动事件?这似乎是问题所在,我下面的代码不起作用 此外,有没有一种方法可以保持元素的位置,并使页面在其后面平滑滚动?我的代码在滚动发生后将元素捕捉到位 谢谢 固定元素的我的CSS: #fixed-floating-menu { position: fixed; right: 0; top:
#fixed-floating-menu {
position: fixed;
right: 0;
top: 103px;
z-index: 9999;
background-color: @navy;
border: @gray;
text-align: center;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
border-color: @box-border-color;
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 3px 10px 0 rgba(0, 0, 0, 0.19);
opacity: 0.7;
tr td {
padding: 10px;
}
.icon-popover-menu-side {
color: @white;
}
}
MY JS处理元素的键盘打开/重新定位:
// Adjust scrolling behaviour if iPhone
var iOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent);
if (iOS) {
$("body").mobileFix({ // Pass parent to apply to
inputElements: "input, textarea, select", // Pass activation child elements
addClass: "fixfixed" // Pass class name
});
}
// iPhone scroll fix with keyboard open
$.fn.mobileFix = function (options) {
var $parent = $(this);
$(document)
.on('focus', options.inputElements, function(e) {
$parent.addClass(options.addClass);
setTimeout(function() {
var handPosition = window.pageYOffset - 7;
$("#fixed-floating-menu").css("position", "absolute").css("top", handPosition).css("right", -10);
}, 1);
$(window).scroll(function(e) {
var handPosition = window.pageYOffset - 7;
$("#fixed-floating-menu").css("position", "absolute").css("top", handPosition).css("right", -10);
});
})
.on('blur', options.inputElements, function(e) {
$parent.removeClass(options.addClass);
// Fix for some scenarios where you need to start scrolling
setTimeout(function() {
$(document).scrollTop($(document).scrollTop());
}, 1);
$(window).off('scroll', function(e) {
$("#fixed-floating-menu").css("position", "fixed").css("top", -7).css("right", -10);
return true;
});
});
return this; // Allowing chaining
};
试着改变你的习惯
$(窗口)。滚动(功能(e){
var handPosition=window.pageYOffset-7;
$(“#固定浮动菜单”).css(“位置”、“绝对”).css(“顶部”、“手位置”).css(“右侧”、-10);
});
到
$(窗口)。打开(“滚动”,功能(e){
var handPosition=window.pageYOffset-7;
$(“#固定浮动菜单”).css(“位置”、“绝对”).css(“顶部”、“手位置”).css(“右侧”、-10);
});
据我所知,.off()方法删除了与.on()方法连接的事件处理程序。.css()方法添加了内联样式。因此,您可以使用.attr('style','')或.removeAttr('style')重置它们;我不知道你发布了什么,但它不是简单的CSS。它很可能是一个预处理器
$('elementSelector').removeAttr('style');