javascript - 如何捕捉 div 位置并稍后重新定位(在 MAC 上)

标签 javascript jquery html css

我正在创建一个应用程序,其中包含可供用户使用的可拖动元素。我想保存元素的位置以便稍后在同一个地方重新定位。我在 stackoverflow 上发现了一些类似的问题,但看起来任何人都因为我遇到的同样问题而通过了。所以,我想知道我是否没有正确理解。

基本上我的问题是:根据窗口的调整,元素位置的值可能会有所不同。

示例:如果我在将窗口调整为原始大小的 50%(更少)的情况下捕获元素的左侧位置,我的左侧位置将不同于 100% 大小。

因此,如果用户将窗口中的元素减少 50% 并在同一用户返回时保存它,则元素将变得一团糟(如果窗口的大小调整不同)。

我有这个例子http://jsfiddle.net/EV5JZ/1/

如果您转到您的控制台,您将看到(值):

console.log($('#section > li:eq(0)').find('.element:last()').position().left);

如果您调整窗口大小,您将获得不同的值。

那么,我遗漏了什么或者我应该使用特定的方法吗?

CSS:

 <style>
    body, html {
      height: 100%;
      overflow: hidden;
    }

    #section { 
        list-style-type: none; 
        padding: 0px; 
        margin: 0px;
    }
    #section li { 
        margin: 0px 0px 1px 0px; 
        width: 99.9%; 
        background-color:#ccc; 
        border: 0px solid red; 
        min-height: 100px; 
        float: left;
    }
    </style>

HTML:

<div id="central-panel">

  <div id="template">
      <ul id="section">
        <li>

          <div class="element">1</div>
          <div class="element">2</div>
          <div class="element">3</div>
          <div class="element">4</div>

        </li>
        <li><span>::</span>Item 2</li>
        <li><span>::</span>Item 3</li>
        <li><span>::</span>Item 4</li>
      </ul>
  </div>

</div>

更新:

好吧,我找到了如何在 Windows 上修复它,但我意识到最大的问题是在 MAC 上。

基本上,如果我将元素类上的 float:left 更改为无或将 id 模板从“%”更改为“px”,如下所示,我可以解决该问题,但在 MAC 上它会保持错误的行为。

.element { 
float: none; 
}

#template {
width: 1000px; 
}

有什么想法吗?

最佳答案

好吧,实际上我正试图以最糟糕的方式去做。

我的布局是流动的,所以一切都用“%”定义。当我尝试重新定位元素时,我需要减去为位于元素之前的布局元素的“宽度”保存的左侧位置,但问题是这些布局元素可以根据因此,分辨率也会产生影响。

我应该重新定位的元素位于用“px”定义的 DIV 元素内。所以,这种方式要容易得多。我只是从中取出“float:left”,得到了像 $.css('left') 这样的位置。

问题是我的方法。现在基本上我是这样得到和重新定位的:

获取

$('#section > li:first()').find('.element:last()').css('left')

重新定位

$('#section > li:first()').find('.element:last()').css('left', '536px');

关于javascript - 如何捕捉 div 位置并稍后重新定位(在 MAC 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22570942/

相关文章:

javascript - 进行不包含任何先前输入的选定选项的多个选择输入

javascript - 在 Bootstrap 的日期选择器上设置 'Start Date'

javascript - 提交表单后只刷新一次网页吗?

javascript - Chrome 没有加载我的 js 文件

html导航栏。 Logo 向左,元素向右。元素顺序相反。如何更改顺序?

javascript - 表单正在清除空白输入上一组数据

javascript - 获取单个子元素的总宽度(然后减半)

javascript - 防止在上一个输入为空时聚焦于下一个输入

javascript - 单击第三列中的按钮时无法从表的第二列获取数据

html - 使图像适合屏幕以避免滚动