Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在IE中处理JQuery/CSS错误_Javascript_Jquery_Css_Internet Explorer_Width - Fatal编程技术网

Javascript 在IE中处理JQuery/CSS错误

Javascript 在IE中处理JQuery/CSS错误,javascript,jquery,css,internet-explorer,width,Javascript,Jquery,Css,Internet Explorer,Width,我有一些代码可以在页面加载/调整大小时最大化视频面板。我正在使用jQuery1.4.4,在Chrome、Firefox和Safari中一切都很好。根据其他文章中的一些示例,我根据屏幕上其他元素的渲染大小和样式调整视频面板的大小 function maximizeVideo(){ var play_height = $(window).height()-42; var play_width = $PLAY.width() - $NAV.width(); play_width -= p

我有一些代码可以在页面加载/调整大小时最大化视频面板。我正在使用jQuery1.4.4,在Chrome、Firefox和Safari中一切都很好。根据其他文章中的一些示例,我根据屏幕上其他元素的渲染大小和样式调整视频面板的大小

function maximizeVideo(){
  var play_height = $(window).height()-42;
  var play_width = $PLAY.width() - $NAV.width();

  play_width -= parseInt($NAV.css("paddingLeft"), 10) + parseInt($NAV.css("paddingRight"), 10); 
  play_width -= parseInt($NAV.css("marginLeft"), 10) + parseInt($NAV.css("marginRight"), 10); 
  play_width -= parseInt($NAV.css("borderLeftWidth"), 10) + parseInt($NAV.css("borderRightWidth"), 10); 

  $NAV.css('height',play_height-16+"px");
  $VIDEO_PANEL.resize(play_width, play_height);
}
在IE中,css访问器有时返回NaN。是否有更好的方法来计算其他元素的渲染宽度?
如果没有,捕获这些错误的最佳方法是什么


谢谢

对于您的情况,我认为您应该查看函数,而不是
width
。使用
outerWidth(true)
,我们可以获得元素的宽度,包括其边框、填充和边距。因此,您可以替换此行:

var play_width = $PLAY.width() - $NAV.width();
$NAV.css('height',play_height-16+"px");
为此:

var play_width = $PLAY.width() - $NAV.outerWidth(true);
从而完全消除了接下来的三行计算


此外,
height
width
函数不仅是getter,而且是setter,因此此行:

var play_width = $PLAY.width() - $NAV.width();
$NAV.css('height',play_height-16+"px");
可以重写为

$NAV.height(play_height - 16);

$ALL_CAPS表示在此函数外部定义的jQuery对象。resize(w,h)函数具有处理调整视频div大小和放置视频控制元素、历史记录等的内部逻辑。AFAIK纯CSS解决方案是不可能的。