选中文字,弹出层; 点击空白处,弹出层隐藏
知识点:判断触发源,判断用户选择内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{
padding: 0;
margin: 0;
}
.test{
margin-top: 50px;
width: 500px;
height: 200px;
position: relative;
}
.popup{
max-width: 80px;
background-color: pink;
position: absolute;
left: 0;
top: 0;
display: none;
}
.another{
margin-top: 50px;
width: 500px;
height: 200px;
}
</style>
</head>
<body>
<!-- 选中文字,弹出层; 点击空白处,弹出层隐藏 -->
<div class="test" id="test">
我是要复制的内容,知道吗?你要加油,知道吗》哈哈哈,加油!我是要复制的内容,知道吗?你要加油,知道吗》哈哈哈,加油我是要复制的内容,知道吗?你要加油,知道吗》哈哈哈,加油
</div>
<div class="popup" id="popup"></div>
<div class="another">
我是其他的内容,主要看看你的功能是不是完善,要时选我也能出来弹出层,就是你的问题了!我是其他的内容,主要看看你的功能是不是完善,要时选我也能出来弹出层,就是你的问题了!
</div>
<script type="text/javascript" src="jsutils.js"></script>
<script>
$('test').onmouseup = function(event) {
var event = event || window.event;
var x = event.clientX;
var y = event.clientY;
//判断是否选择了内容
var txt;
if(window.getSelection){
txt = window.getSelection().toString();
}else{
txt = document.selection.createRange().text;
}
if(txt){
setTimeout(showPopup(x,y,txt),100); //延迟100ms,再出现
}
}
function showPopup(mousex,mousey,content){
$('popup').style.display = "block";
$('popup').style.left = mousex + "px";
$('popup').style.top = mousey + "px";
$('popup').innerHTML = content;
}
document.onmousedown = function(event){
var event = event || window.event;
var targetId = event.target ? event.target.id : event.srcElement.id;
if(targetId != "popup"){
$('popup').style.display = "none";
}
}
</script>
</body>
</html>