Rumah >hujung hadapan web >tutorial js >Kaedah JQuery untuk mencapai effect_jquery gesaan tetikus hiperpautan

Kaedah JQuery untuk mencapai effect_jquery gesaan tetikus hiperpautan

WBOY
WBOYasal
2016-05-16 15:55:511404semak imbas

Contoh dalam artikel ini menerangkan cara JQuery melaksanakan kesan gesaan tetikus hiperpautan. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:

Pelayar sebenarnya sudah disertakan dengan gesaan hiperpautan Anda hanya perlu menambah atribut tajuk pada hiperpautan. Walau bagaimanapun, kelajuan tindak balas kesan segera ini sangat perlahan, dengan kelewatan kira-kira 1 saat. Apa yang kita perlukan sekarang ialah mendapatkan gesaan apabila tetikus bergerak ke hiperpautan. Pada masa ini, anda perlu mengalih keluar kesan gesaan tajuk dalam teg dan membuat gesaan dengan fungsi yang serupa sendiri.

Reka bentuk HTML adalah seperti berikut:

Salin kod Kod adalah seperti berikut:
e388a4556c0f65e1904146cc1a846bee749bb20a0f5119568baf149c837c4b5dSelamat Datang ke Rumah Skrip5db79b134e9f6b82c0b36e0489ee08ed94b3e26ee717c64999d7867364b1b4a3

Kemudian tambahkan acara alih tetikus dan keluar tetikus untuk hiperpautan dengan petua alat kelas:

$("a.tooltip").mouseover(function (){  
    //显示 title  
}).mouseout(function (){  
    //隐藏 title  
});

Idea khusus untuk mencapai kesan ini adalah seperti berikut:

1. Apabila tetikus meluncur ke hiperpautan, cipta elemen div dan kandungan elemen div ialah nilai atribut tajuk. Elemen yang dicipta kemudiannya dilampirkan pada dokumen. Tetapkan koordinat x dan y untuknya supaya ia dipaparkan bersebelahan dengan kedudukan tetikus.
2. Apabila tetikus meluncur keluar dari hiperpautan, keluarkan elemen div.

Mengikut idea analisis, tulis kod JQuery berikut:

$(function(){  
  var x = 10;   
  var y = 20;  
  $("a.tooltip").mouseover(function(e){  
    this.myTitle = this.title;  
    this.title = "";    
    var tooltip = "<div id='tooltip'>"+ this.myTitle +"<\/div>";
    //创建 div 元素  
    $("body").append(tooltip); //把它追加到文档中  
    $("#tooltip")  
      .css({  
        "top": (e.pageY + y) + "px",  
        "left": (e.pageX + x) + "px" 
      }).show("fast"); //设置x坐标和y坐标,并且显示  
  }).mouseout(function(){    
    this.title = this.myTitle;  
    $("#tooltip").remove(); //移除  
  });  
});

Terdapat dua masalah dengan kesan pada masa ini: pertama, apabila tetikus meluncur ke atas, gesaan atribut tajuk dalam teg juga akan muncul, kedua, masalah menetapkan koordinat x dan y, disebabkan kepada jarak antara gesaan yang dibuat sendiri dan tetikus Terlalu dekat kadangkala boleh menyebabkan masalah seperti tidak dapat menggesa (perubahan fokus tetikus menyebabkan peristiwa keluar tetikus).

Untuk mengalih keluar fungsi gesaan tajuk dalam teg, anda perlu melakukan langkah berikut:

1. Apabila tetikus meluncur masuk, tambahkan atribut baharu pada objek, hantarkan nilai tajuk kepada atribut ini, dan kemudian kosongkan nilai tajuk atribut.

this.myTitle = this.title;  
s.title = "";   
var tooltip = "<div id='tooltip'>"+ this.myTitle +"<\/div>";
//创建 div 元素

2. Apabila tetikus meluncur keluar, nilai atribut myTitle objek diberikan kepada tajuk atribut.

Salin kod Kod adalah seperti berikut:
this.title = this.myTitle;

Mengapakah nilai atribut harus diberikan kepada tajuk atribut apabila tetikus meluncur keluar? Kerana apabila tetikus meluncur keluar, nilai tajuk atribut semasa meluncur masuk semula perlu dipertimbangkan Jika nilai myTitle tidak ditetapkan semula kepada atribut tajuk, apabila tetikus meluncur masuk semula, nilai tajuk akan kosong.

Untuk menyelesaikan masalah kedua, anda perlu menetapkan semula nilai atas dan kiri unsur gesaan Kod adalah seperti berikut, menambah 10px ke atas dan 20px ke kiri:

var x = lO;  
var y = 20;  
$("#tooltip").css({  
    "top": (e.pageY+y) + "px",  
    "left": (e.pageX+x) + "px" 
});

OK, masalah diselesaikan di sini, dan kesan gesaan hiperpautan tetikus direalisasikan.

Saya harap artikel ini akan membantu pengaturcaraan jQuery semua orang.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn