如果我将使用某些条款,我会道歉。我不是专业人士。
我使用JavaScript将弹出窗口嵌入到网站中,我需要它从左边50%,从顶部50%。以下是代码的一些行:
var exepopuptop = jQuery(window).scrollTop()+50;
var exepopupleft = 50;
如果我写" 50%
",请告诉我" there is a syntax error
"。
我该如何解决这个问题?
答案 0 :(得分:0)
我用这种方式解决了我的问题:
var exepopupwindow = jQuery(window).height();
var exepopupdiv = jQuery("#exepopup").height();
var exepopuptop = (jQuery(window).scrollTop()+exepopupwindow-exepopupdiv) / 2;
var exepopupww = jQuery(window).width();
var exepopupwww = jQuery("#exepopup").width();
var exepopupleft = (exepopupww-exepopupwww)/2;
感谢您的回答。
答案 1 :(得分:0)
var $window = $(window),
winHeight = $window.height(),
winWidth = $window.width(),
$exepopup = $('#exepopup'),
exepopupHeight = $exepopup.height(),
exepopupWidth = $exepopup.width(),
scrollTop = $window.scrollTop(),
scrollLeft = $window.scrollLeft(),
offsetTop = (winHeight / 2) - (exepopupHeight / 2) + scrollTop,
offsetLeft = (winWidth / 2) - (exepopopWidth / 2) + scrollLeft;
if(offsetTop < 0) { offsetTop = 0; }
if(offsetLeft < 0) { offsetLeft = 0; }
$exepopup
.css('YOUR CSS PROP', offsetTop)
.css('YOUR CSS PROP', offsetLeft);
那为什么这个更清洁,更快?
首先是清洁工。将所有var
声明组合在一起以便它们形成一个很好的干净语句是一种常见的约定。另外,对于称为camelCase
的变量使用正确的套管。
现在为什么它更快?好的原始代码问题是你在jQuery中重写了窗口对象(需要时间),以及exepopup元素。这样你就可以获得对它们的引用,并根据需要从中获取它们。