您可以輕鬆地做到這一點,創造性地使用.css()
方法。如果獲得元素的.css("top")
,則返回px
,因此您必須replace("px","")
才能夠使用數值,然後除以2,然後再在末尾添加"px"
。
將其封裝在一個函數中,並在頁面加載時調用它。然後添加一個$window.resize()
處理程序,以便在加載窗口後每次調整窗口大小時運行該函數。
這裏有一個完整的例子:
function updatePageImageLeft() {
var calculatedLeft = $(".pageimage").css("top").replace("px", "")/2 + "px";
// console.log(calculatedLeft);
$(".pageimage").css("left", calculatedLeft);
}
// Called when the page loads
updatePageImageLeft();
// Page has been resized, call it again
$(window).resize(function() {
updatePageImageLeft();
});
.pageimage {
width: 80%;
height: 60%;
margin: 0 auto;
background: #0FF;
position: absolute;
/*left: ;*/
top: 20%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="pageimage"></div>
注:您可能還需要尋找到CSS calc()
function,因爲它可以幫助你避免先寫任何JavaScript/jQuery代碼(尤其是將它與CSS自定義屬性結合使用時)。
什麼做的INT-價值你的意思是「從該值減去50%」?是「top/2」還是「calc(top-50%)」? –
如果您發現任何提交的答案有用,請記住點擊旁邊的勾號即可接受答案。這將有助於向未來的訪問者提供最佳/最有用的解決方案。祝你今天愉快! –