zoukankan      html  css  js  c++  java
  • 页面选中文字弹出层,点击层中文字或者图片触发事件

    其实这个功能十分简单,好多种实现方式,现在摘录两种实现方法:一种是使用原生js实现,一种是使用jquery实现。在实际项目中是使用kissy实现的,不过方法都差不多。本文参考了网上部分资料,如有侵权请多多原谅。

    第一种使用原生js的方式:思路大体是首先将一个图片元素进行隐藏,然后获得选中文字事件,最后当鼠标位于选中文字上方时显示图片或者特定文字提示,点击提示就触发事件。

    var hideImage = document.getElementById("hideImage");
    
    var $selectFx = function(hideImage, eleContainer) {
    	eleContainer = eleContainer || document;
    	var getSelectTxt = function() {
    		var txt = "";
    		if(document.selection) {
    			txt = document.selection.createRange().text;	// IE
    		} else {
    			txt = document.getSelection();
    		}
    		return txt.toString();
    	};
    	eleContainer.onmouseup = function(e) {
    		e = e || window.event;
    		var txt = getSelectTxt(), sh = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
    		var left = (e.clientX - 40 < 0) ? e.clientX + 20 : e.clientX - 40, top = (e.clientY - 40 < 0) ? e.clientY + sh + 20 : e.clientY + sh - 40;
    		if (txt) {
    			hideImage.style.display = "inline";
    			hideImage.style.left = left + "px";
    			hideImage.style.top = top + "px";
    		} else {
    			hideImage.style.display = "none";
    		}
    	};
    	hideImage.onclick = function() {
    		var txt = getSelectTxt();
    		alert(txt);//此处你可以添加你想要的实现
    	};
    }(hideImage);
    第二种是使用jquery实现的,思路基本一致,实现难度也差不多,使用jquery实现优雅一些
    $(function () {
    	$("#content").mouseup(function (e) {
    		var x = 10;
    		var y = 10;
    		var text = "";
    		if (document.selection) {
    			text = document.selection.createRange().text;
    		}
    		else if (window.getSelection()) {
    			text = window.getSelection();
    		}
    		if (text!= "") {
    			var tip = "有能耐你点我一下啊";
    			var tooltip = "<div id='tooltip' class='tooltip'><a onclick=doit('"+r+"')>" + tip + "</a></div>";
    			$("body").append(tooltip);
    			$("#tooltip").css({
    				"top": (e.pageY + y) + "px",
    				"left": (e.pageX + x) + "px",
    				"position": "absolute"
    			}).show("fast");
    		}
    	}).mousedown(function () {
    		$("#tooltip").remove();
    	});
    })
    
    function doit(text) {
    	if (text != "") {
    		alert(text);//此处你可以添加你想要的实现
    	}
    }
  • 相关阅读:
    2020CCPC秦皇岛 K 【Kindom's Power】(树上贪心dp)
    对于树上状态机dp问题的一些总结与思考
    PTA_L3题解集
    PTA_L2题解集
    树上dp_学习笔记
    2020牛客国庆集训派对day2 B【Cheap Delivers】(最短路+状压dp)
    2020牛客国庆集训派对day1
    Codeforces 1426F【Number of Subsequences】(dp)
    2019icpc陕西省赛
    CF1281E【Jeremy Bearimy】(树上点对最大值/最小值和)
  • 原文地址:https://www.cnblogs.com/luckyliu/p/2398242.html
Copyright © 2011-2022 走看看