gpt4 book ai didi

javascript - 单击调整大小并返回原始位置

转载 作者:行者123 更新时间:2023-11-28 00:05:17 25 4
gpt4 key购买 nike

http://jsfiddle.net/fFs4B/

这让我难以自拔。我想要任何 div 单击以扩展到容器大小,然后缩小到大小。最后一部分让我尖叫亵渎。帮忙?

var margLeft = '0%';
var margTop = '0%';

JS:

$(document).ready(function() {    
$('.container div').click(function() {
if ($(this).hasClass('wide')) {
margLeft = '0%';
margTop = '0%';

var clickedElem = $(this);
clickedElem.removeClass('wide');
deflateThis(clickedElem);
}
else {
var clickedElem = $(this);
inflateThis(clickedElem);
}
});
});

function inflateThis(clickedElem) {
clickedElem.siblings().fadeOut(500, function() {
$('p').append(clickedElem.css('left'));
if (clickedElem.css('left') !== '0%') {
margLeft = '-50%';
}
if (clickedElem.css('top') !== '0%') {
margTop = '-50%';
}
clickedElem.animate({
'left': '0',
'top': '0',
'width': '100%',
'height': '100%'
}, function() {
clickedElem.addClass('wide');
});
});
}

function deflateThis(clickedElem) {
if (margLeft == '0%') {
margLeft = '0%';
}
else {
margLeft = '50%';
}
if (margTop == '0%') {
margTop = '0%';
}
else {
margTop = '50%';
}
clickedElem.animate({
'left': margLeft,
'top': margTop,
'width': '50%',
'height': '50%'
}, function() {
clickedElem.siblings().fadeIn(500);
});
}

最佳答案

问题与跟踪左侧和顶部偏移值有关。

这是修复它的一种方法:

var margLeft = '';
var margTop = '';

$(document).ready(function() {
$('.container div').click(function() {
if ($(this).hasClass('wide')) {
var clickedElem = $(this);
clickedElem.removeClass('wide');
deflateThis(clickedElem);
}
else {
var clickedElem = $(this);
inflateThis(clickedElem);
}
});
});

function inflateThis(clickedElem) {
margLeft = clickedElem.css('left');
margTop = clickedElem.css('top');
clickedElem.siblings().fadeOut(500, function() {
clickedElem.animate({
'left': '0px',
'top': '0px',
'width': '100%',
'height': '100%'
}, function() {
clickedElem.addClass('wide');
});
});
}

function deflateThis(clickedElem) {
clickedElem.animate({
'left': margLeft,
'top': margTop,
'width': '50%',
'height': '50%'
}, function() {
clickedElem.removeClass('wide');
clickedElem.siblings().fadeIn(500);
});
}

当您膨胀元素时,将左侧和顶部偏移量保存在 native 像素值中。

当你放气时,从全局变量中恢复它们,并从被放气的元素中删除 .wide 类。

参见演示:http://jsfiddle.net/audetwebdesign/yhDjt/

评论

我认为您的意思是颜色面板的大小和位置相对于 .container,所以我在 CSS 规则中添加了 position: relative

关于javascript - 单击调整大小并返回原始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18833272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com