建立一個滑鼠停留顯示懸浮二維碼效果
阿新 • • 發佈:2019-01-07
建立二維碼這個比較簡單,可以直接用jquery生成
然後想實現二維碼懸浮效果,可以用滑鼠事件來完成,具體的程式碼如下:
<script type="text/javascript"> $(function(){ var x=10; var y=20; $(".test").mouseover(function(e){ var code="<div id='code' style='position:absolute;border:1px solid #999; background:#ffffff;padding:10px;'></div>";//定義一個div為絕對佈局 $("body").append(code);//將上面定義的div新增到body裡,因為是絕對佈局,需要設定座標位置 $("#code").css(//設定css樣式並顯示 { "top": (e.pageY-y) + "px",//e.page就是滑鼠停留點的座標,這樣就可以確定code的具體位置 "left": (e.pageX+x) + "px" } ).show("fast");//設定成快速出現 }).mouseout(function(){ $("#code").remove(); //滑鼠移出時間,remove掉該div }).mousemove(function(e){//滑鼠移動事件,設定具體座標,這裡設定成向上,向下top改成e.pageY+y,如果想向左可以改left $("#code").css({ "top": (e.pageY-2*y-200) + "px", "left": (e.pageX+x) + "px" }).empty().qrcode({ //empty清除二維碼後qrcode重新顯示,不然會出現很多二維碼 render: "canvas",//這裡用table難以識別比較長的網址產生的二維碼 width: 200, height:200, text: this.title//this.title是.test中的屬性title的值 }); }); }); </script>
上面使用的正是通過滑鼠座標的絕對定位方式動態生成div層的效果,而在div層上新增想要的二維碼就可以了,然後滑鼠停留會顯示二維碼的div層,滑鼠移出就會先清除原有的div建立一個新的二維碼div層,另外別忘了在自己連結上新增class=”test"的class就可以了
最後在body裡在加上一個連結,裡面新增title屬性和class="test"就可以動態顯示了,例如:
1 |
<a href= "#" class = "btn btn-link test" title= >百度</a>
|