如何改变页面大小的左属性(jQuery)
How to change the left attribute on page resize (jQuery)
我的代码有点问题。我要做的是使这些元素的css属性'left'更新根据它的当前左值的差异,和数额的页面调整大小。这样,当页面调整大小和背景移动时,元素也会移动。看看下面的代码,我将描述这个问题:
$(window).resize(function() {
var docWidth = $(window).width();
if (docWidth < 1000) {
var difference = 1000-docWidth;
$('#headNav a,#icons div').each(function() {
var left = $(this).position().left;
var newLeft = left - difference;
$(this).css({ 'left' : newLeft });
});
}
});
所以我得到的问题是元素被赋予了野数字的左值,而变量'newLeft'的值是合理的,期望的值。我认为每个函数是收集这些值的和,并为每个元素运行x次,找到的元素存在的次数(所以如果有5个元素,它运行5次,我的意思是。)我想要的是这段代码只对每个元素执行一次,但每个元素只执行一次,而不是每个元素执行10次!(这就是html中有多少个元素)。
所以我的问题是,如何做到这一点?我希望我解释得足够清楚,这是很难迭代的。非常感谢任何帮助。谢谢你!
这里有一个有趣的技巧:在.css()
调用中包含+=
:
$(this).css({left: "+=" + difference});
jQuery为您做数学计算以获得新值。
试试这个:
$(window).resize(function() {
var docWidth = $(window).width();
if (docWidth < 1000) {
var difference = 1000-docWidth;
$('#headNav a,#icons div').each(function(iconInst) {
var left = $("#" + iconInst).position().left;
var newLeft = left - difference;
$("#" + iconInst).css({ 'left' : newLeft });
});
}
});
相关文章:
- 变量属性jQuery
- 扫描具有相同命名和插入值的所有数据属性-jQuery
- 查找具有特定数据属性jQuery的元素
- 自定义属性jquery Datatables
- 在布尔属性JQuery之间切换
- 如何替换属性 JQuery 中的子字符串
- 如果我滚动并刷新我的网页,我的导航标题会失去其属性.JQuery
- 查找具有特定数据属性 jquery 的最接近的上一个元素
- 未捕获的类型错误:对象 [对象对象] 的属性“jQuery”不是函数
- 获取自定义属性 jQuery
- 来自输入属性 jQuery 的数组
- 使用名称属性jQuery从下拉列表中获取所选文本
- 筛选数据属性 jQuery
- 使用带有下拉选择的自定义属性jQuery选择器(取2)
- 使用带有下拉选择的自定义属性jQuery选择器
- 选择HTML<输入>缺少类型属性-jQuery的元素
- 数据属性 jQuery 的最高和最低
- 将数据属性设置为按钮并链接所述属性jquery的值
- 检查空属性jquery
- 变换属性jquery