FloatHelper
function FloatHelper() {
} FloatHelper.prototype.showFloater = function (Target, Title, Action, ActionCallback, Callback, IsNeedTemplete) {
this.hideFloater();
var FloaterID = "Float_" + Title;
var Floater = $("#" + FloaterID);
if (Floater.length == 0) {
var newFloater = $("<div>");
newFloater.addClass("Absolute FloatDiv");
newFloater.attr("id", FloaterID);
Floater = newFloater; if (IsNeedTemplete == undefined || IsNeedTemplete == null || IsNeedTemplete) {
var newDiv = $("<div>");
newDiv.addClass("Template_HoverHead");
var newSpan = $("<span>");
newSpan.addClass("title");
newSpan.html(Title);
newDiv.append(newSpan); var newActionDiv = $("<div>");
newActionDiv.addClass("HoverHead_Buttons Right");
var newInput = $("<input>");
newInput.attr({
"type": "button",
"value": Action
}); if (ActionCallback != undefined && ActionCallback != null) {
newActionDiv.on("click", ActionCallback);
newFloater.css("cursor", "pointer").click(ActionCallback);
$("[data-name=" + Title + "]").css("cursor", "pointer").click(function (event) {
event.preventDefault ? event.preventDefault() : event.returnvalue = false;
ActionCallback();
});
} newInput.addClass("Action");
newActionDiv.append(newInput);
newDiv.append(newActionDiv);
newFloater.append(newDiv);
}
$(doc.body).append(newFloater);
} else {
Floater.show();
} var top, left, TargetTop, width; if (Target != null) {
width = Target.width();
TargetTop = Target.offset().top;
top = Math.ceil(TargetTop - Floater.height());
left = Target.offset().left;
Floater.css({
"top": top + "px",
"left": left + "px",
"width": width + "px"
});
this.showOutLine(Title);
if (Callback != undefined && Callback != null) {
Callback();
}
}
}; FloatHelper.prototype.hideFloater = function (Callback) {
var FloatDiv = $(".FloatDiv");
if (FloatDiv.is(":visible")) {
FloatDiv.remove();
this.hideOutline();
if (Callback != undefined && Callback != null) {
Callback();
}
}
}; FloatHelper.prototype.resize = function (Callback) {
var FloatDiv = $(".FloatDiv:visible");
if (FloatDiv.length > 0) {
var name = FloatDiv.attr("id").replace("Float_", "");
var Target = $("[data-name = " + name + "]");
var width, top, left;
if (FloatDiv.is(":visible")) {
top = Target.offset().top;
left = Target.offset().left;
width = Target.width();
if (width < 180) {
width = 180;
}
FloatDiv.css({
"width": width,
"top": top,
"left": left
});
if (Callback != undefined && Callback != null) {
Callback();
}
}
}
}; FloatHelper.prototype.showOutLine = function (name) {
var target = $(".FloatDiv:visible");
var Floater;
if (target.length > 0) {
name = name || target.attr("id").replace("Float_", "");
var editableDiv = $("[data-name =" + name + " ]");
try {
this.hideOutline();
} catch (e) { }
editableDiv.css("outline", "solid 6px #fdc666");
Floater = $("#Float_" + name);
var w = editableDiv.width() + 12 + Math.round(editableDiv.css("padding-left").match(/^[0-9]*/g)[0]) + Math.round(editableDiv.css("padding-right").match(/^[0-9]*/g)[0]);
if (w <= 180) {
w = 180;
editableDiv.css("width", w - 12);
editableDiv.find("ul").addClass("Right Less180");
} else {
editableDiv.find("ul.Right.Less180").removeClass("Right");
}
Floater.css({
"width": w,
"left": editableDiv.offset().left - 6,
"top": Math.ceil(editableDiv.offset().top - Floater.height())
});
if (name == "Background") {
Floater.css("top", editableDiv.offset().top);
}
}
}; FloatHelper.prototype.hideOutline = function () {
_.each($("[data-editable = True]"), function (item) {
if (item) {
$(item).css("outline", "none");
}
});
};
可视化建站这个项目中的Js,除了DialogHelper,其他的都是自己完成的,感觉自己真厉害啊,虽然写的不是那么完善,可能还会有各种bug,但是很高兴,自己终于完成了,赞自己一次。
下班回家喽!
FloatHelper的更多相关文章
随机推荐
- 「UVA557」 Burger(概率
本题征求翻译.如果你能提供翻译或者题意简述,请 提交翻译 ,感谢你的贡献. 题目描述 PDF 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 复制 3 6 10 256 输出样例# ...
- ACM学习历程—FZU 2144 Shooting Game(计算几何 && 贪心 && 排序)
Description Fat brother and Maze are playing a kind of special (hentai) game in the playground. (May ...
- 【Lintcode】003.Digit Counts
题目: Count the number of k's between 0 and n. k can be 0 - 9. Example if n = 12, k = 1 in [0, 1, 2, 3 ...
- 【LeetCode】017. Letter Combinations of a Phone Number
题目: Given a digit string, return all possible letter combinations that the number could represent. A ...
- javaCV入门指南:调用FFmpeg原生API和JavaCV是如何封装了FFmpeg的音视频操作?
通过"javaCV入门指南:序章 "大家知道了处理音视频流媒体的前置基本知识,基本知识包含了像素格式.编解码格式.封装格式.网络协议以及一些音视频专业名词,专业名词不会赘述,自行搜 ...
- bzoj 4319 Suffix reconstruction —— 贪心构造
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4319 思维还是不行...这样的构造都没思路... 首先,我们可以按 rank 的顺序从小到大 ...
- C# Json库 和 xml 序列化反序列化 存在的问题
json 正常情况下不会对私有成员进行序列化和反序列化, 因此在用json做深拷贝时, 就会丢失数据. 解决办法: 声明成公有成员. json在序列化和反序列化时, 如果类中有IComma ...
- css 中visibility:hidden和display:none有什么区别呢
<div style="width:100px;height:100px;background:red;visibility:hidden"></div>/ ...
- Behave + Selenium(Python) 三
来自T先生 通过之前的2篇文章,大家都了解了如果利用behave和selenium打开网页和进行基本的操作,但是这些对于项目来说,却是往往不够的. 如果对junit或者TestNG熟悉的人都知道有@B ...
- matlab函数 bwperim
功能:查找二值图像的边缘. 用法: BW2 = bwperim(BW1) BW2 = bwperim(BW1,conn) BW2 = bwperim(BW1,conn)表示从输入图像BW1中返回只包括 ...