每天学一个jquery插件-图片的标记2

每天学一个jquery插件-图片的标记2

图片的标记2

完善了昨天的功能,啊~

在这里插入图片描述
应该效果就是这个效果吧,代码如下js部分

var tpdbj = function(id,ops){
    
    
	var $id = $(id);
	var $dom = $("<div class='fz'><div>");
	$dom.css({
    
    
		"width":$id.width(),
		"height":$id.height(),
		"position":$id.css("position"),
		"left":$id.css("left"),
		"top":$id.css("top"),
		"right":$id.css("right"),
		"bottom":$id.css("bottom")
	})
	$dom.appendTo($id.parent())
	$id.appendTo($dom)
	ops.forEach(item=>{
    
    
		var $bj = $("<div class='bj' title='"+item.content+"'></div>")
		$bj.css({
    
    
			"left":item.left+"px",
			"top":item.top+"px"
		})
		$bj.appendTo($dom);
	})
	var $inputs = $("<input type='text' class='inputs' placeholder='输入,回车保存' />")
	$inputs.appendTo($dom)
	return{
    
    
		$dom:$dom,
		ops:ops,
		$inputs:$inputs,
		flag:false,
		bj:{
    
    },
		load:function(){
    
    
			var that = this;
			that.$dom.contextmenu(function(e){
    
    
				that.$inputs.show();
				that.$inputs.css({
    
    
					"left":e.offsetX,
					"top":e.offsetY
				})
				that.bj={
    
    left:e.offsetX,top:e.offsetY};
				that.flag=true;
				e.preventDefault();
				e.stopPropagation();
				return false;
			})
			that.$dom.click(function(e){
    
    
				that.$inputs.hide();
				that.flag=false;
				e.preventDefault();
			})
			that.$inputs.click(function(e){
    
    
				e.stopPropagation();
			})
			$(document).keydown(function(e){
    
    
				if(e.keyCode==13){
    
    
					var str = that.$inputs.val();
					if(that.flag&&str!=""){
    
    
						that.flag=false;
						that.$inputs.hide();
						that.bj.content = str;
						var $bj = $("<div class='bj' title='"+that.bj.content+"'></div>")
						$bj.css({
    
    
							"left":that.bj.left+"px",
							"top":that.bj.top+"px"
						})
						$bj.appendTo(that.$dom);
						that.ops.push(that.bj);
						that.$inputs.val("");
					}
				}
			})
		},
		val:function(){
    
    
			var that = this;
			return that.ops;
		}
	}
}

没搞那么花里胡哨的了,反正右键弹出一个输入框,拿到内容在目标上再渲染一个就行了,此外悬浮出现提示框的效果,图省事直接用title的默认效果展示一下效果就完事
完事,休息~

猜你喜欢

转载自blog.csdn.net/weixin_44142582/article/details/112724637
今日推荐