Javascript 使用click()方法的firefox屏幕问题
这个问题与Firefox在调用函数时将浏览器窗口刷新到100%有关。 如果浏览器视图为75%,我使用链接上的.click方法-页面刷新为100%,则函数执行。Safari在不刷新窗口的情况下执行该函数 代码现在看起来像:Javascript 使用click()方法的firefox屏幕问题,javascript,jquery,Javascript,Jquery,这个问题与Firefox在调用函数时将浏览器窗口刷新到100%有关。 如果浏览器视图为75%,我使用链接上的.click方法-页面刷新为100%,则函数执行。Safari在不刷新窗口的情况下执行该函数 代码现在看起来像: function hideFlag(){ $("#ftm").click(function () { var stageWidth = $("#window_div").width(); if (stageWidth <= 1200){
function hideFlag(){
$("#ftm").click(function () {
var stageWidth = $("#window_div").width();
if (stageWidth <= 1200){
$( "#window_div" ).animate({
width: 1250,
opacity: ".8",
}, 1000 );
$( "#flagDiv" ).animate({
opacity: "0",
}, 1000 );
}
else{
$( "#window_div" ).animate({
width: 500,
opacity: ".6",
}, 1000 );
$( "#flagDiv" ).animate({
opacity: "1",
}, 1000 );
}
});
}
函数hideFlag(){
$(“#ftm”)。单击(函数(){
var stageWidth=$(“#window_div”).width();
如果(stageWidth不是说这是对你问题的直接回答,而是评论的时间太长了
您正在使用jQuery。我认为您忽略了整个跨浏览器库的要点。更改
stageWidth = document.getElementById("window_div").clientWidth
到
不需要特定于浏览器的代码。在使用jQuery时,也不需要使用addEventHandler
函数。它会处理浏览器之间的差异,因此您不必这样做。这意味着您可以将setUpClickHandler
函数更改为:
function setUpClickHandler() {
$('#ftm').click(hideFlag);
$('#ath').click(showFlag);
}
并将showFlag
更改为:
function showFlag(e){
$('#flagDiv').show();
}
改变
addEventHandler(window, "load", setUpClickHandler, false);
到
谢谢Matt。这非常有帮助,解决了我的style.pixelWidth vs clientWidth问题。不幸的是,这仍然让我对Firefox中出现的屏幕大小调整/缩放问题一无所知。谢谢你的帮助。你的额外代码更改比我以前的代码要简单得多。虽然Safari执行了完美的埃斯利。
function showFlag(e){
$('#flagDiv').show();
}
addEventHandler(window, "load", setUpClickHandler, false);
$(window).load(setUpClickHandler);