jQuery .position() 我可以得到 calc() 值而不是 px 值吗?

标签 jquery css position

我有一个按钮可以将 div 的大小从 200px 调整到 290px

在这个 div 中存在使用 calc(50% - 25px); 定位的元素 25px = child 的一半宽度 - 所以它们居中放置。

我正在使用 jQuery 的 ui.swappable 来交换元素,但你的问题是它们似乎在交换后永久地采用它们的计算值

预交换 left:calc(50% - 25px); 交换后 left:74px

有没有办法交换 calc(50% - 25px);而不是计算后的值?

$(this).position()

最佳答案

解决了这个问题。

我没有交换元素的位置,而是使用以下方法从可拖放的 div 中提取子 html,然后将其附加到各自的 div 中,从而保持 calc() 值。

$( ".ClassofSwappableElement" ).draggable({
    stack: ".ClassofSwappableElement",
    distance: 0,
    revert: "invalid", 
    opacity: 0.5, 
    helper: "clone" 
});

$( ".ClassofSwappableElement" ).droppable({
    accept: ".ClassofSwappableElement",
    drop: function( evt, ui ) {

var draggable = ui.draggable,
    draggablebgc = ui.draggable.children().css('background-color'),
    draggablevalue = ui.draggable.attr('value'),
    droppable = $(this),
    droppablebgc = $(this).children().css('backgroundColor'),
    droppablevalue = $(this).attr('value');

draggable.attr('value', droppablevalue );
droppable.children('.ClassofChildYouWanttoChangeBgColorof').css({ backgroundColor: draggablebgc });
droppable.attr('value', draggablevalue );
draggable.children('.ClassofChildYouWanttoChangeBgColorof').css({ backgroundColor: droppablebgc });

var drophtml = droppable.html(),
    draghtml = draggable.html();

droppable.empty();
draggable.empty();
droppable.append(draghtml);
draggable.append(drophtml);

注意:需要 jQueryUI

关于jQuery .position() 我可以得到 calc() 值而不是 px 值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42834428/

相关文章:

jquery - 如何在点击下拉菜单时制作 CSS 下拉菜单

php - javascript 预订系统,签到结账日期与已预订日期

css - 如何让这个设计响应?

html - 禁用文本输入不样式

php - Wordpress - 在菜单和内容之间添加一个小部件

CSS 边框 : Distance from Object Edge?

javascript - 从内容可编辑的 div 中移除焦点

javascript - 使用 jQuery/AJAX 获取并显示 PHP 结果

javascript - 在没有 jQuery 的情况下获取 Canvas 中的光标位置

c - 我想要位置,但我得到数组的 ncols 和 nrows