2011-09-10 43 views
6

Tôi đã thực hiện một bản demo trên JSFIDDLE
CẬP NHẬTthis version công trình trong FF nhưng không chrome ..
UPDATE 2 này website dường như có một giải pháp làm việc.Làm thế nào để con trỏ chuột di chuyển chuột xuống?

Javascript của tôi là như sau

$("#click").live({ 
    mousedown: function() { 
      this.addClass("closed"); 
     }, 
    mouseup: function() { 
      this.removeClass("closed"); 
     } 
}); 

và CSS như sau

.closed { 
    cursor: url(https://mail.google.com/mail/images/2/closedhand.cur), default !important; 
} 

Nhưng tại sao không con trỏ trở thành một tay khép kín trên chuột xuống với mã jQuery này? Cảm ơn bạn rất nhiều! Bất kỳ trợ giúp nào sẽ được đánh giá cao!

+0

Tôi đã cập nhật câu hỏi và cũng là bản demo cho thấy jquery javascript không hoạt động. – Mohammad

+1

Một số trình duyệt hỗ trợ tính năng này ngay bây giờ: 'cursor: -webkit-grabbing; con trỏ: -moz-grabbing; '. –

Trả lời

3

2016 Cập nhật:

cần thiết để làm điều này trong một thanh trượt jQuery plugin Tôi đang làm việc trên. Những gì tôi đã làm là định nghĩa các con trỏ trong CSS, sau đó thêm/loại bỏ chúng trên các sự kiện touch/mouse với jQuery.

css:

.element:hover{ 
    cursor: move; 
    cursor: -webkit-grab; 
    cursor: grab; 
} 
.element.grabbing { 
    cursor: grabbing; 
    cursor: -webkit-grabbing; 
} 

JS:

$(".element").on("mousedown touchstart", function(e) { 
    $(this).addClass('grabbing') 
}) 

$(".element").on("mouseup touchend", function(e) { 
    $(this).removeClass('grabbing') 
}) 
+1

Điều này sẽ không có tác dụng khi tôi đã đặt câu hỏi, tôi vui vì nó hoạt động ngay bây giờ! – Mohammad

1

này hoạt động (trong FF ít nhất): http://jsfiddle.net/uZ377/21/

Tôi đã thay đổi trực tiếp để ràng buộc, dunno tại sao, nhưng sống không làm việc. Ngoài ra, tôi đã bọc this trong hàm jQuery.

0

Thực ra có vẻ như đã xảy ra sự cố với phương pháp trực tiếp để ràng buộc cả sự kiện biến cố và di chuột. Bằng cách tách hai yếu tố, nó có vẻ hoạt động tốt.

Dù sao phần URL của thuộc tính con trỏ không được hỗ trợ trong tất cả các trình duyệt. Kiểm tra với Chrome và Firefox chẳng hạn, nó hoạt động tốt với tôi, nhưng không phải trong Opera, vì tôi biết là không hỗ trợ nó.

+0

không sao đâu. "Uncaught TypeError: Object # không có phương thức 'split'" – genesis

+0

Trong ví dụ JSFIDDLE, tôi đã cung cấp hai div khác phía trên nó làm ví dụ để cho thấy rằng lớp đó cung cấp khả năng con trỏ tùy chỉnh. Điều đó làm việc trong trình duyệt của tôi "chrome". Cảm ơn bạn! – Mohammad

+0

@genesis: đúng, không nhận thấy vì bàn tay vẫn hoạt động bình thường với tôi cả trong Chrome và FF. –

0

cú pháp bạn đang sử dụng không được giới thiệu cho đến 1.4.3 (documented here), jsFiddle của bạn sử dụng 1.4.2. JsFiddle của bạn cũng thêm một lớp học vào this, thay vì $(this).

Nhưng tôi cũng không chắc chắn về cách CSS con trỏ phản ứng với chuột và chuột - tôi có cảm giác có thể bị giới hạn ở một số trình duyệt. lạ.

+0

Tôi chỉ thấy nó kỳ lạ là một con chuột đơn giản hoặc chuột lên thêm sự kiện lớp có thể rất khó khăn .. – Mohammad

1
$(document).ready(function() { 
    $(".surface").mouseup(function(){ 
     $(".surface").css("cursor","crosshair"); 
     }).mousedown(function(){ 
     $(".surface").css("cursor","wait"); 
     }); 
}); 

Make trong css .surface{cursor:crosshair;} Nếu bạn muốn có chuột xuống/lên chỉ cần thay đổi con trỏ đến tay lên/xuống biểu tượng. Hy vọng điều này sẽ hữu ích.

3

Bạn có thể lấy lấy con trỏ chuột chỉ với CSS:

/* Standard cursors */  
.element { cursor: grab; } 
.element:active { cursor: grabbing; } 

/* Custom cursors */ 
.element { cursor: url('open-hand.png'), auto; } 
.element:active { cursor: url('closed-hand.png'), auto; } 
Các vấn đề liên quan