Stephanie, đây chỉ là để làm rõ những gì jAndy đã chứng minh, với một chút câu trả lời của riêng tôi. Nhưng, vẫn còn tương đối mới đối với jQuery, tôi có thể liên quan đến sự nhầm lẫn của bạn. Hãy lấy mã của jAndy ra và trả lời các bình luận của bạn.
Tôi cũng bối rối về cách kết hợp này vào mã trên của mình, tôi đặt nó ở đâu và là $ elem. và #someelement_id
Trong mã của jAndy, $ elem là thành phần bạn đang cố định vị trí. Ông đang sử dụng #someelement_id
chỉ để làm ví dụ chung chung của mình. Vì vậy, cụ thể đối với mã của bạn, mình
var $elem = $('#someelement_id');
sẽ trở thành
var $elem = $('#sm');
trong mã của bạn. Tất cả những gì anh ta làm là lưu trữ tham chiếu phần tử (đối tượng) vào biến $elem
. Không có gì ưa thích ở đó tôi không nghĩ. Bạn không chắc chắn lý do tại sao anh ta thêm $
vào tên biến ...? Tôi tin rằng var elem = $('#sm');
sẽ hoạt động tương tự, trừ khi tôi thiếu điều gì đó. Vì vậy, điều đó giúp bạn trở thành yếu tố bạn muốn làm việc.
Tôi có đặt giá trị bên trong các phần tử position() không? Ví dụ: vị trí (10px) .top
No. Không phải nếu mục tiêu của bạn là giữ nguyên tố hoàn toàn ở vị trí hiện tại. Nếu chúng ta tách rời dòng mã đó, $elem.position()
sẽ trả về một đối tượng có chứa các thuộc tính top
và left
. Bạn có thể đọc về phương pháp vị trí ở đây jQuery API position (Kiểm tra jQuery API offset cũng vì nó cung cấp thông tin khác nhau và cho phép bạn cung cấp tọa độ cho vị trí mới cho phần tử). Vì vậy, như xa như tôi có thể nói, như jAndy nói trong câu trả lời của mình, mã của ông sẽ thiết lập vị trí tuyệt đối của các yếu tố đến vị trí hiện tại của nó, do đó giữ nó tại chỗ.
Tôi không nghĩ rằng đây sẽ là những gì bạn muốn nếu bạn thực sự muốn di chuyển một phần tử từ vị trí hiện tại của nó đến một vị trí khác. Cho rằng bạn sẽ thiết lập trên cùng và bên trái như được trả lời bởi Matt Asbury, hoặc bạn có thể sử dụng một số kết hợp của hai câu trả lời nếu bạn muốn di chuyển phần tử đến một vị trí mới liên quan đến vị trí hiện tại của nó.Ví dụ,
$elem.css({
position: 'absolute',
top: $elem.position().top + 10,
left: $elem.position().left + 10
});
Hoặc, với jQuery API offset, và kết hợp hai, tôi tin rằng bạn có thể làm một cái gì đó như:
var newCoords = {
top: $elem.position().top + 10,
left: $elem.position().left + 10
};
$elem.offset(newCoords);
Không chắc đó là cách tiếp cận "tốt hơn".
Liên kết được cung cấp bởi Nikkelman cũng tốt, nhưng có thể có rất nhiều điều để tìm hiểu ở đó nếu bạn mới sử dụng jQuery.
Một điều khác tôi nhận thấy, và có lẽ bạn lại những điều này ra vì họ có vẻ hiển nhiên, nhưng chỉ trong trường hợp:
- Bạn cần phải bao gồm jQuery.js từ nơi nào đó, như bạn đã bao gồm của bạn slidemenu js.
- Và thông thường bạn sẽ có mã jQuery của mình được bao bọc trong khối
$(document).ready(function() {...});
, nhưng điều này không phải lúc nào cũng cần thiết.
Hy vọng điều này sẽ giúp và tôi đã không chỉ làm ngập nước cho bạn!
Tại sao bạn cần để tạo kiểu phần tử của bạn với jQuery ? Tại sao không phải CSS? '#sm {position: cố định; trên cùng: 10px; trái: 10px; } ' –