这里我发布了一个jquery代码,它可以工作,但有几行我不清楚。 js fiddle link .
完整代码
HTML:
CSS:
#UPSContainer{
vị trí: tuyệt đối;
hiển thị: không có;
nền: đỏ;
height:0;
width:0;
}
javascript:
$(document).ready(function () {
var $els = [];
dữ liệu var = {
"UPSContainer": {
"height" : 100,
"width" : 100
},
"isAnimating" : false
};
$els.window = $(window);
$els.form = $('#ctl00');
$els.toggleUPSButtons = $('.toggleUPSContainer');
function addUPSOverlay(){
$els.form.append('');
$els.UPSContainer = $('#UPSContainer');
}
function getNewWindowCorner(){
data.windowWidth = parseInt($els.window.width());
data.windowHeight = parseInt($els.window.height());
if($els.UPSContainer.is(':hidden')){
$els.UPSContainer.css({
top: data.windowHeight + 'px',
left: data.windowWidth + 'px'
});
}khác{
$els.UPSContainer.css({
left: ((data.windowWidth - data.UPSContainer.width) / 2) + 'px',
top: ((data.windowHeight - data.UPSContainer.height) / 2) + 'px'
});
}
}
function containerOpenComplete(){
// do what you want here when opening complete
}
function containerCloseComplete(){
// do what you want here when closing complete
}
function toggleUPSOverlay(e){
e.preventDefault();
if(!data.isAnimating){
if($els.UPSContainer.is(':hidden')){ // currently closed so open
$els.UPSContainer.show();
$els.UPSContainer.animate({
left: ((data.windowWidth - data.UPSContainer.width) / 2) + 'px',
top: ((data.windowHeight - data.UPSContainer.height) / 2) + 'px',
height: data.UPSContainer.height + 'px',
width: data.UPSContainer.width + 'px'
}, 200, function(){
containerOpenComplete();
});
}else{ // currently open so close
$els.UPSContainer.animate({
left: data.windowWidth + 'px',
top: data.windowHeight + 'px',
height: 0 + 'px',
width: 0 + 'px'
}, 200,
chức năng () {
$els.UPSContainer.hide();
containerCloseComplete();
});
}
}
}
function attachEvents(){
$els.window.on('resize', getNewWindowCorner);
$els.toggleUPSButtons.on('click', toggleUPSOverlay);
}
function initialize(){
addUPSOverlay();
getNewWindowCorner();
attachEvents();
}
initialize();
});
这个函数的代码不清楚
function getNewWindowCorner(){
data.windowWidth = parseInt($els.window.width());
data.windowHeight = parseInt($els.window.height());
}
只需查看windowWidth 和 windowHeight 部分
dữ liệu var = {
"UPSContainer": {
"height" : 100,
"width" : 100
},
"isAnimating" : false
};
data 已被声明为对象,并且它具有诸如 height、width 和 isAnimating 等属性
,但是我们如何向数据对象添加两个名为 windowWidth 和 windowHeight
的新属性? ?
仅看到下面的代码,我们似乎可以在运行时在 JavaScript 中向任何名称的任何对象添加任何属性,这里我们将值存储到 windowWidth 和 windowHeight
属性中。
data.windowWidth = parseInt($els.window.width());
data.windowHeight = parseInt($els.window.height());
所以只需查看我的整个代码并告诉我这两个属性来自哪里windowWidth 和 windowHeight ?Cảm ơn
编辑1
需要更多帮助。 js var $els = [];
中叫什么?它是数组还是对象? var $els = []; 和有什么区别和 var els = {};
?如果这是数组 var $els = [];
那么如何将任何东西插入数组,就像这样 $els.window = $(window);或 $els.body = $('body');
。请帮助我了解小样本的用法。谢谢
对于普通的,您可以即时添加它们。它们不必从对象开始就声明。如果是的话,它们只会被覆盖。
所以你可以从一开始就添加你想要的一切......
dữ liệu var = {
"UPSContainer": {
"height": 100,
"width": 100
},
"isAnimating": false
};
..或随心所欲地创建它
var data = {};
data.UPSContainer = {};
data.UPSContainer.height = 100;
data.UPSContainer.width = 100;
data.isAnimating = false;
data.windowWidth = parseInt($els.window.width());
data.windowHeight = parseInt($els.window.height());
Tôi là một lập trình viên xuất sắc, rất giỏi!