我正在尝试使用floor函数自动生成舍入值,但它保持静态。你能帮我解决一下如何改进我的代码吗?非常感谢你。
jQuery的:
$(document).ready(function() {
width_split = $(document).width();
width_split = Math.floor(width_split / 2);
$(document).resize(function() {
width_split = $(document).width();
width_split = Math.floor(width_split / 2);
});
});
HTML:
<p style="position:absolute; right:"+width_split+"px;">
.content
</p>
答案 0 :(得分:1)
您必须在JS中设置right
值,而不是在HTML DOM中
尝试:
HTML:
<p id="mypar" style="position:absolute;">
.content
</p>
JS:
$(document).ready(function(){
width_split = $(document).width();
width_split = Math.floor(width_split / 2);
$(document).resize(function(){
width_split = $(document).width();
width_split = Math.floor(width_split / 2);
$('#mypar').css("right", width_split+'px');//ADD THIS
});
$('#mypar').css("right", width_split+'px');//ADD THIS
});
答案 1 :(得分:0)
通过jquery为width_split
标记应用<p>
,您在内联width_split
标记中应用p
的方式是错误的。应该是
<强> HTML 强>
<p id="para" style="position:absolute"; >
.content
</p>
<强> JS 强>
$("#para").css("right", width_split + "px");
而不是
<p style="position:absolute; right:"+width_split+"px;">
///--------------------------this is wrong---^
答案 2 :(得分:0)
您还应该更新HTML标记
$('pID').css('right', width_split.toString()+'px');
在document.resize函数中。
答案 3 :(得分:0)
选择您要调整的每个元素并直接应用样式
$('.your-selector').css({theProperty: halfWidth});
但是这样你就必须修改你添加到html的每个新元素的js。
在“反应”对象上放置一个标记(MRK)类,并在标记中包含您要设置为宽度/ 2的css属性(例如,MRK-left,或MRK-margin-left)
然后在窗口调整大小时,搜索包含标记的元素,提取css属性,并在其上设置它。
$(window).on('resize', function () {
var halfWidth = $(window).width() / 2;
$('*[class*=MRK-]').each(function(){ // selects all elements having a class
var cls = $(this).attr('class') // property that contains MRK
var cssPropName = /MRK-([\w-]+)/.exec(cls)[1]; // extracts the info MRK
var css = {};
css[cssPropName] = halfWidth; // creates the styleobject with the info
$(this).css(css);
});
});
在html中你会写:
<div class="MRK-left"></div>
或
<p class="MRK-margin-left"></p>
800px宽度的结果将是:
<div class="MRK-left" style="left: 400px"></div>
或
<p class="MRK-margin-left" style="margin-left: 400px"></div>
你可以在不改变js逻辑的情况下改变任何属性