javascript - 通过 jquery 或 javascript 更改后检索 css 属性的第一个值

标签 javascript jquery

假设有一个 div 元素,并且宽度为 760px。当前 margin-top 作为 css 属性值将为 60px

CSS:

@media only screen and (min-width: 360px) {
    div.me {
        margin-top: 30px;
    }
}
@media only screen and (min-width: 760px) {
    div.me {
        margin-top: 60px;
    }
}

然后我通过 jquery 更改 margin-top 来执行更多操作。例如80px

Jquery
$("div.me").css("margin-top", "80px");
<小时/>

我正在寻找以下解决方案:当用户调整窗口大小时,将元素margin-top重置为第一个documnet Ready值取决于它的媒体查询。

假设用户将大小调整为 400px 宽度。因此该元素应重置为 margin-top: 30px

我想为所有元素设置自定义属性以保存其中的第一个值。

$(document).ready(function () { 
    var m = $("div.me").css("margin-top");
    $("div.me").attr("first-margin-top", m);
});

$(window).resize(function () {
    // some stuff to retrieve first value, not important...
});

但是页面上有很多这样的元素,每个元素都有很多媒体查询值。这里我只讨论了一个元素。

是否有更好的方法来检索和重置元素?有什么想法吗?

最佳答案

您内联设置 CSS 值,因此它胜过您的媒体查询。要么使用 jquery 执行此操作,要么将 !important 标签添加到您的 css 中:

@media only screen and (min-width: 760px) {
    div.me {
        margin-top: 60px !important;
    }
}

$(window).resize(function () {
    if($(window).width < 760){
      $("div.me").css("margin-top", "60px");
    }
});

关于javascript - 通过 jquery 或 javascript 更改后检索 css 属性的第一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18685752/

相关文章:

javascript - IE 不加载整个页面 HTML 源代码

javascript - 提交表单后计算所有动态项目的总数,包括复制的项目

javascript - 第一次渲染时数据返回为未定义

javascript - 排序 javascript 挂起

jquery - CSS 扩展菜单在 IE 11 中悬停时折叠

javascript - 如何将 div 标签放在 Canvas 上

javascript - CSS - 如果用户调整浏览器大小并水平滚动,如何防止内容 div 在固定位置左侧菜单上重叠?

Javascript:不插入右索引行表

JavaScript endsWith 在 IEv10 中不起作用?

javascript - 如何动态更新网页的不同部分?