gpt4 book ai didi

jquery - 如何避免
元素在展开时移位

转载 作者:太空宇宙 更新时间:2023-11-04 16:12:03 24 4
gpt4 key购买 nike

我正在使用 <div> 构建日历元素和CSS。

使用 jQuery,当点击日历上的某一天时,一个类将应用于 <div>元素。这会导致一天变长。

问题:

当一天扩大时,它会取代日历中的所有其他 div。见下图。

HTML

HTML 由 PHP for 循环创建,显示所选月份的每一天。

<div id="calender">
<div id="cal-day" class="1" onclick="expand(1)">
<div id="datenum"><p>1</p></div>
</div>
<div id="cal-day" class="2" onclick="expand(2)">
<div id="datenum"><p>2</p></div>
</div>
</div>

CSS - 为了便于阅读,我删除了美学样式代码。

#calender{
position: relative;
width: 1230px;
height: 800px;
}

#cal-day{
float: left;
width: 200px;
height: 200px;
margin: 2px;
overflow: hidden;
}

#datenum{
width: 30px;
height: 30px;
}
.dayselected{

overflow: scroll !important;
width: 400px !important;
height: 400px !important;

}
#content{
display: none;
}
#content.show{
display: block;
}

jQuery:

function expand(date){

if($("." + date).hasClass("dayselected")){

$("." + date).removeClass("dayselected");
$(".content" + date).removeClass("show");

}else{

$("." + selectedDay).removeClass("dayselected");
$("." + date).addClass("dayselected");
$(".content" + date).addClass("show");

}

selectedDay = date;

}

选择日期之前:

Before a day is selected:

选定一天后,与另一天<div>置换的元素:

After a day is selected:

是否可以让点击的日期覆盖其他 div 而不是取代它们?

这是一个 JSFiddle:https://jsfiddle.net/quucxwpy/

最佳答案

首先,您有几个重复的 id 属性,这意味着您的 HTML 无效。这些应该改为类。

要解决此问题,一种可能的解决方案是 clone() 原始 cal-day 元素并将其绝对定位在原始元素之上。这样就不会破坏其他同级 cal-day 元素的文档流。试试这个:

<div id="calender">
<div class="cal-day">
<div class="datenum">
<p>1</p>
</div>
</div>
<div class="cal-day">
<div class="datenum">
<p>2</p>
</div>
</div>
<!-- other days...
</div>
$('.cal-day').click(function() {
$('#dayselected').remove();
var $day = $(this);
var $dayClone = $day.clone(false)
.prop('id', 'dayselected')
.css({
top: $day.position().top,
left: $day.position().left
})
.appendTo('#calender');
});

$('#calender').on('click', '#dayselected', function() {
$(this).remove();
});

Working example

关于jquery - 如何避免 <div> 元素在展开时移位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34454668/

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