如何解决click方法导致Firefox屏幕问题
| 问题与Firefox在调用函数时将浏览器窗口刷新到100%有关。 如果浏览器视图表示75%,并且我在链接上使用.click方法-页面以100%刷新,然后函数执行。 Safari无需刷新窗口即可执行该功能。 现在的代码如下所示: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 );
}
});
}
在Firefox中,如果我的浏览器视图缩小到75%,并且我将.click()方法替换为.mouseenter,则div会设置动画,而不会重新绘制屏幕或调整mouseenter的大小。我不了解click()和mouseenter()实现之间的区别。
解决了。
这比我想的要简单得多。在click方法上正确使用\“ return false; \”参数
解决了我的问题。修改后的代码如下:
function hideFlag(){
$(\"#ftm\").click(function () {
var stageWidth = $(\"#window_div\").width();
if (stageWidth <= 1200){
$( \"#window_div\" ).animate({
width: 1250,1000 ); return false;
$( \"#flagDiv\" ).animate({
opacity: \"0\",1000 ); return false;
}
else{
$( \"#window_div\" ).animate({
width: 500,1000 );return false;
$( \"#flagDiv\" ).animate({
opacity: \"1\",1000 );return false;
}
});
}
谢谢大家的帮助。
解决方法
并不是说这是您问题的直接答案,而是要发表评论的时间很长。
您正在使用jQuery。我认为您正在丢失整个跨浏览器库的内容。更改
stageWidth = document.getElementById(\"window_div\").clientWidth
至
stageWidth = $(\"#window_div\").width()
不需要特定于浏览器的代码。使用jQuery时,也不需要该“ 4”功能。它照顾了浏览器之间的差异,因此您不必这样做。这意味着您可以将“ 5”功能更改为此:
function setUpClickHandler() {
$(\'#ftm\').click(hideFlag);
$(\'#ath\').click(showFlag);
}
并将ѭ7更改为:
function showFlag(e){
$(\'#flagDiv\').show();
}
并改变
addEventHandler(window,\"load\",setUpClickHandler,false);
至
$(window).load(setUpClickHandler);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。