video-template-3
This commit is contained in:
666
code/public/template/videoboku/js/jquery.autocomplete.js
Normal file
666
code/public/template/videoboku/js/jquery.autocomplete.js
Normal file
@@ -0,0 +1,666 @@
|
||||
/*
|
||||
* jQuery Autocomplete plugin 1.1
|
||||
*
|
||||
* Copyright (c) 2009 Jörn Zaefferer
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
* Revision: $Id: jquery.autocomplete.js 15 2009-08-22 10:30:27Z joern.zaefferer $
|
||||
*/;
|
||||
|
||||
$.browser = navigator.userAgent;
|
||||
(function($) {
|
||||
$.fn.extend({
|
||||
autocomplete: function(urlOrData, options) {
|
||||
var isUrl = typeof urlOrData == "string";
|
||||
options = $.extend({}, $.Autocompleter.defaults, {
|
||||
url: isUrl ? urlOrData : null,
|
||||
data: isUrl ? null : urlOrData,
|
||||
delay: isUrl ? $.Autocompleter.defaults.delay : 10,
|
||||
max: options && !options.scroll ? 10 : 150
|
||||
}, options);
|
||||
options.highlight = options.highlight ||
|
||||
function(value) {
|
||||
return value;
|
||||
};
|
||||
options.formatMatch = options.formatMatch || options.formatItem;
|
||||
return this.each(function() {
|
||||
new $.Autocompleter(this, options);
|
||||
});
|
||||
},
|
||||
result: function(handler) {
|
||||
return this.bind("result", handler);
|
||||
},
|
||||
search: function(handler) {
|
||||
return this.trigger("search", [handler]);
|
||||
},
|
||||
flushCache: function() {
|
||||
return this.trigger("flushCache");
|
||||
},
|
||||
setOptions: function(options) {
|
||||
return this.trigger("setOptions", [options]);
|
||||
},
|
||||
unautocomplete: function() {
|
||||
return this.trigger("unautocomplete");
|
||||
}
|
||||
});
|
||||
$.Autocompleter = function(input, options) {
|
||||
var KEY = {
|
||||
UP: 38,
|
||||
DOWN: 40,
|
||||
DEL: 46,
|
||||
TAB: 9,
|
||||
RETURN: 13,
|
||||
ESC: 27,
|
||||
COMMA: 188,
|
||||
PAGEUP: 33,
|
||||
PAGEDOWN: 34,
|
||||
BACKSPACE: 8
|
||||
};
|
||||
var $input = $(input).attr("autocomplete", "off").addClass(options.inputClass);
|
||||
var timeout;
|
||||
var previousValue = "";
|
||||
var cache = $.Autocompleter.Cache(options);
|
||||
var hasFocus = 0;
|
||||
var lastKeyPressCode;
|
||||
var config = {
|
||||
mouseDownOnSelect: false
|
||||
};
|
||||
var select = $.Autocompleter.Select(options, input, selectCurrent, config);
|
||||
var blockSubmit;
|
||||
$.browser.opera && $(input.form).bind("submit.autocomplete", function() {
|
||||
if (blockSubmit) {
|
||||
blockSubmit = false;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
$input.bind(($.browser.opera ? "keypress" : "keydown") + ".autocomplete", function(event) {
|
||||
hasFocus = 1;
|
||||
lastKeyPressCode = event.keyCode;
|
||||
switch (event.keyCode) {
|
||||
case KEY.UP:
|
||||
event.preventDefault();
|
||||
if (select.visible()) {
|
||||
select.prev();
|
||||
} else {
|
||||
onChange(0, true);
|
||||
}
|
||||
break;
|
||||
case KEY.DOWN:
|
||||
event.preventDefault();
|
||||
if (select.visible()) {
|
||||
select.next();
|
||||
} else {
|
||||
onChange(0, true);
|
||||
}
|
||||
break;
|
||||
case KEY.PAGEUP:
|
||||
event.preventDefault();
|
||||
if (select.visible()) {
|
||||
select.pageUp();
|
||||
} else {
|
||||
onChange(0, true);
|
||||
}
|
||||
break;
|
||||
case KEY.PAGEDOWN:
|
||||
event.preventDefault();
|
||||
if (select.visible()) {
|
||||
select.pageDown();
|
||||
} else {
|
||||
onChange(0, true);
|
||||
}
|
||||
break;
|
||||
case options.multiple && $.trim(options.multipleSeparator) == "," && KEY.COMMA:
|
||||
|
||||
case KEY.TAB:
|
||||
if( selectCurrent() ) {
|
||||
// stop default to prevent a form submit, Opera needs special handling
|
||||
event.preventDefault();
|
||||
blockSubmit = true;
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case KEY.RETURN:
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(onChange, options.delay);
|
||||
break;
|
||||
case KEY.ESC:
|
||||
select.hide();
|
||||
break;
|
||||
default:
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(onChange, options.delay);
|
||||
break;
|
||||
}
|
||||
}).focus(function() {
|
||||
hasFocus++;
|
||||
}).blur(function() {
|
||||
hasFocus = 0;
|
||||
if (!config.mouseDownOnSelect) {
|
||||
hideResults();
|
||||
}
|
||||
}).click(function() {
|
||||
if (hasFocus++ > 1 && !select.visible()) {
|
||||
onChange(0, true);
|
||||
}
|
||||
}).bind("search", function() {
|
||||
var fn = (arguments.length > 1) ? arguments[1] : null;
|
||||
|
||||
function findValueCallback(q, data) {
|
||||
var result;
|
||||
if (data && data.length) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
if (data[i].result.toLowerCase() == q.toLowerCase()) {
|
||||
result = data[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (typeof fn == "function") fn(result);
|
||||
else $input.trigger("result", result && [result.data, result.value]);
|
||||
}
|
||||
$.each(trimWords($input.val()), function(i, value) {
|
||||
request(value, findValueCallback, findValueCallback);
|
||||
});
|
||||
}).bind("flushCache", function() {
|
||||
cache.flush();
|
||||
}).bind("setOptions", function() {
|
||||
$.extend(options, arguments[1]);
|
||||
if ("data" in arguments[1]) cache.populate();
|
||||
}).bind("unautocomplete", function() {
|
||||
select.unbind();
|
||||
$input.unbind();
|
||||
$(input.form).unbind(".autocomplete");
|
||||
});
|
||||
|
||||
function selectCurrent() {
|
||||
var selected = select.selected();
|
||||
if (!selected) return false;
|
||||
var v = selected.result;
|
||||
previousValue = v;
|
||||
if (options.multiple) {
|
||||
var words = trimWords($input.val());
|
||||
if (words.length > 1) {
|
||||
var seperator = options.multipleSeparator.length;
|
||||
var cursorAt = $(input).selection().start;
|
||||
var wordAt, progress = 0;
|
||||
$.each(words, function(i, word) {
|
||||
progress += word.length;
|
||||
if (cursorAt <= progress) {
|
||||
wordAt = i;
|
||||
return false;
|
||||
}
|
||||
progress += seperator;
|
||||
});
|
||||
words[wordAt] = v;
|
||||
v = words.join(options.multipleSeparator);
|
||||
}
|
||||
v += options.multipleSeparator;
|
||||
}
|
||||
$input.val(v);
|
||||
hideResultsNow();
|
||||
$input.trigger("result", [selected.data, selected.value]);
|
||||
return true;
|
||||
}
|
||||
function onChange(crap, skipPrevCheck) {
|
||||
if (lastKeyPressCode == KEY.DEL) {
|
||||
select.hide();
|
||||
return;
|
||||
}
|
||||
var currentValue = $input.val();
|
||||
if (!skipPrevCheck && currentValue == previousValue) return;
|
||||
previousValue = currentValue;
|
||||
currentValue = lastWord(currentValue);
|
||||
if (currentValue.length >= options.minChars) {
|
||||
$input.addClass(options.loadingClass);
|
||||
if (!options.matchCase) currentValue = currentValue.toLowerCase();
|
||||
request(currentValue, receiveData, hideResultsNow);
|
||||
} else {
|
||||
stopLoading();
|
||||
select.hide();
|
||||
}
|
||||
};
|
||||
|
||||
function trimWords(value) {
|
||||
if (!value) return [""];
|
||||
if (!options.multiple) return [$.trim(value)];
|
||||
return $.map(value.split(options.multipleSeparator), function(word) {
|
||||
return $.trim(value).length ? $.trim(word) : null;
|
||||
});
|
||||
}
|
||||
function lastWord(value) {
|
||||
if (!options.multiple) return value;
|
||||
var words = trimWords(value);
|
||||
if (words.length == 1) return words[0];
|
||||
var cursorAt = $(input).selection().start;
|
||||
if (cursorAt == value.length) {
|
||||
words = trimWords(value)
|
||||
} else {
|
||||
words = trimWords(value.replace(value.substring(cursorAt), ""));
|
||||
}
|
||||
return words[words.length - 1];
|
||||
}
|
||||
function autoFill(q, sValue) {
|
||||
if (options.autoFill && (lastWord($input.val()).toLowerCase() == q.toLowerCase()) && lastKeyPressCode != KEY.BACKSPACE) {
|
||||
$input.val($input.val() + sValue.substring(lastWord(previousValue).length));
|
||||
$(input).selection(previousValue.length, previousValue.length + sValue.length);
|
||||
}
|
||||
};
|
||||
|
||||
function hideResults() {
|
||||
clearTimeout(timeout);
|
||||
timeout = setTimeout(hideResultsNow, 200);
|
||||
};
|
||||
|
||||
function hideResultsNow() {
|
||||
var wasVisible = select.visible();
|
||||
select.hide();
|
||||
clearTimeout(timeout);
|
||||
stopLoading();
|
||||
if (options.mustMatch) {
|
||||
$input.search(function(result) {
|
||||
if (!result) {
|
||||
if (options.multiple) {
|
||||
var words = trimWords($input.val()).slice(0, -1);
|
||||
$input.val(words.join(options.multipleSeparator) + (words.length ? options.multipleSeparator : ""));
|
||||
} else {
|
||||
$input.val("");
|
||||
$input.trigger("result", null);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
function receiveData(q, data) {
|
||||
if (data && data.length && hasFocus) {
|
||||
stopLoading();
|
||||
select.display(data, q);
|
||||
autoFill(q, data[0].value);
|
||||
select.show();
|
||||
} else {
|
||||
hideResultsNow();
|
||||
}
|
||||
};
|
||||
|
||||
function request(term, success, failure) {
|
||||
if (!options.matchCase) term = term.toLowerCase();
|
||||
var data = cache.load(term);
|
||||
if (data && data.length) {
|
||||
success(term, data);
|
||||
} else if ((typeof options.url == "string") && (options.url.length > 0)) {
|
||||
var extraParams = {
|
||||
timestamp: +new Date()
|
||||
};
|
||||
$.each(options.extraParams, function(key, param) {
|
||||
extraParams[key] = typeof param == "function" ? param() : param;
|
||||
});
|
||||
$.ajax({
|
||||
mode: "abort",
|
||||
port: "autocomplete" + input.name,
|
||||
dataType: options.dataType,
|
||||
url: options.url,
|
||||
data: $.extend({
|
||||
wd: lastWord(term),
|
||||
limit: options.max
|
||||
}, extraParams),
|
||||
success: function(data) {
|
||||
var parsed = options.parse && options.parse(data) || parse(data);
|
||||
cache.add(term, parsed);
|
||||
success(term, parsed);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
select.emptyList();
|
||||
failure(term);
|
||||
}
|
||||
};
|
||||
|
||||
function parse(data) {
|
||||
var parsed = [];
|
||||
var rows = data.split("\n");
|
||||
for (var i = 0; i < rows.length; i++) {
|
||||
var row = $.trim(rows[i]);
|
||||
if (row) {
|
||||
row = row.split("|");
|
||||
parsed[parsed.length] = {
|
||||
data: row,
|
||||
value: row[0],
|
||||
result: options.formatResult && options.formatResult(row, row[0]) || row[0]
|
||||
};
|
||||
}
|
||||
}
|
||||
return parsed;
|
||||
};
|
||||
|
||||
function stopLoading() {
|
||||
$input.removeClass(options.loadingClass);
|
||||
};
|
||||
};
|
||||
$.Autocompleter.defaults = {
|
||||
inputClass: "ac_input",
|
||||
resultsClass: "ac_results",
|
||||
loadingClass: "ac_loading",
|
||||
minChars: 1,
|
||||
delay: 400,
|
||||
matchCase: false,
|
||||
matchSubset: true,
|
||||
matchContains: false,
|
||||
cacheLength: 10,
|
||||
max: 100,
|
||||
mustMatch: false,
|
||||
extraParams: {},
|
||||
selectFirst: true,
|
||||
formatItem: function(row) {
|
||||
return row[0];
|
||||
},
|
||||
formatMatch: null,
|
||||
autoFill: false,
|
||||
width: 0,
|
||||
multiple: false,
|
||||
multipleSeparator: ", ",
|
||||
highlight: function(value, term) {
|
||||
return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
|
||||
},
|
||||
scroll: true,
|
||||
scrollHeight: 180
|
||||
};
|
||||
$.Autocompleter.Cache = function(options) {
|
||||
var data = {};
|
||||
var length = 0;
|
||||
|
||||
function matchSubset(s, sub) {
|
||||
if (!options.matchCase) s = s.toLowerCase();
|
||||
var i = s.indexOf(sub);
|
||||
if (options.matchContains == "word") {
|
||||
i = s.toLowerCase().search("\\b" + sub.toLowerCase());
|
||||
}
|
||||
if (i == -1) return false;
|
||||
return i == 0 || options.matchContains;
|
||||
};
|
||||
|
||||
function add(q, value) {
|
||||
if (length > options.cacheLength) {
|
||||
flush();
|
||||
}
|
||||
if (!data[q]) {
|
||||
length++;
|
||||
}
|
||||
data[q] = value;
|
||||
}
|
||||
function populate() {
|
||||
if (!options.data) return false;
|
||||
var stMatchSets = {},
|
||||
nullData = 0;
|
||||
if (!options.url) options.cacheLength = 1;
|
||||
stMatchSets[""] = [];
|
||||
for (var i = 0, ol = options.data.length; i < ol; i++) {
|
||||
var rawValue = options.data[i];
|
||||
rawValue = (typeof rawValue == "string") ? [rawValue] : rawValue;
|
||||
var value = options.formatMatch(rawValue, i + 1, options.data.length);
|
||||
if (value === false) continue;
|
||||
var firstChar = value.charAt(0).toLowerCase();
|
||||
if (!stMatchSets[firstChar]) stMatchSets[firstChar] = [];
|
||||
var row = {
|
||||
value: value,
|
||||
data: rawValue,
|
||||
result: options.formatResult && options.formatResult(rawValue) || value
|
||||
};
|
||||
stMatchSets[firstChar].push(row);
|
||||
if (nullData++ < options.max) {
|
||||
stMatchSets[""].push(row);
|
||||
}
|
||||
};
|
||||
$.each(stMatchSets, function(i, value) {
|
||||
options.cacheLength++;
|
||||
add(i, value);
|
||||
});
|
||||
}
|
||||
setTimeout(populate, 25);
|
||||
|
||||
function flush() {
|
||||
data = {};
|
||||
length = 0;
|
||||
}
|
||||
return {
|
||||
flush: flush,
|
||||
add: add,
|
||||
populate: populate,
|
||||
load: function(q) {
|
||||
if (!options.cacheLength || !length) return null;
|
||||
if (!options.url && options.matchContains) {
|
||||
var csub = [];
|
||||
for (var k in data) {
|
||||
if (k.length > 0) {
|
||||
var c = data[k];
|
||||
$.each(c, function(i, x) {
|
||||
if (matchSubset(x.value, q)) {
|
||||
csub.push(x);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
return csub;
|
||||
} else if (data[q]) {
|
||||
return data[q];
|
||||
} else if (options.matchSubset) {
|
||||
for (var i = q.length - 1; i >= options.minChars; i--) {
|
||||
var c = data[q.substr(0, i)];
|
||||
if (c) {
|
||||
var csub = [];
|
||||
$.each(c, function(i, x) {
|
||||
if (matchSubset(x.value, q)) {
|
||||
csub[csub.length] = x;
|
||||
}
|
||||
});
|
||||
return csub;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
};
|
||||
};
|
||||
$.Autocompleter.Select = function(options, input, select, config) {
|
||||
var CLASSES = {
|
||||
ACTIVE: "ac_over"
|
||||
};
|
||||
var listItems, active = -1,
|
||||
data, term = "",
|
||||
needsInit = true,
|
||||
element, list;
|
||||
|
||||
function init() {
|
||||
if (!needsInit) return;
|
||||
element = $("<div/>").hide().addClass(options.resultsClass).css("position", "absolute").appendTo(document.body);
|
||||
list = $("<ul/>").appendTo(element).mouseover(function(event) {
|
||||
if (target(event).nodeName && target(event).nodeName.toUpperCase() == 'LI') {
|
||||
active = $("li", list).removeClass(CLASSES.ACTIVE).index(target(event));
|
||||
$(target(event)).addClass(CLASSES.ACTIVE);
|
||||
}
|
||||
}).click(function(event) {
|
||||
$(target(event)).addClass(CLASSES.ACTIVE);
|
||||
select();
|
||||
input.focus();
|
||||
return false;
|
||||
}).mousedown(function() {
|
||||
config.mouseDownOnSelect = true;
|
||||
}).mouseup(function() {
|
||||
config.mouseDownOnSelect = false;
|
||||
});
|
||||
if (options.width > 0) element.css("width", options.width);
|
||||
needsInit = false;
|
||||
}
|
||||
function target(event) {
|
||||
var element = event.target;
|
||||
while (element && element.tagName != "LI") element = element.parentNode;
|
||||
if (!element) return [];
|
||||
return element;
|
||||
}
|
||||
function moveSelect(step) {
|
||||
listItems.slice(active, active + 1).removeClass(CLASSES.ACTIVE);
|
||||
movePosition(step);
|
||||
var activeItem = listItems.slice(active, active + 1).addClass(CLASSES.ACTIVE);
|
||||
if (options.scroll) {
|
||||
var offset = 0;
|
||||
listItems.slice(0, active).each(function() {
|
||||
offset += this.offsetHeight;
|
||||
});
|
||||
if ((offset + activeItem[0].offsetHeight - list.scrollTop()) > list[0].clientHeight) {
|
||||
list.scrollTop(offset + activeItem[0].offsetHeight - list.innerHeight());
|
||||
} else if (offset < list.scrollTop()) {
|
||||
list.scrollTop(offset);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
function movePosition(step) {
|
||||
active += step;
|
||||
if (active < 0) {
|
||||
active = listItems.size() - 1;
|
||||
} else if (active >= listItems.size()) {
|
||||
active = 0;
|
||||
}
|
||||
}
|
||||
function limitNumberOfItems(available) {
|
||||
return options.max && options.max < available ? options.max : available;
|
||||
}
|
||||
function fillList() {
|
||||
list.empty();
|
||||
var max = limitNumberOfItems(data.length);
|
||||
for (var i = 0; i < max; i++) {
|
||||
if (!data[i]) continue;
|
||||
var formatted = options.formatItem(data[i].data, i + 1, max, data[i].value, term);
|
||||
if (formatted === false) continue;
|
||||
var li = $("<li/>").html(options.highlight(formatted, term)).addClass(i % 2 == 0 ? "ac_even" : "ac_odd").appendTo(list)[0];
|
||||
$.data(li, "ac_data", data[i]);
|
||||
}
|
||||
listItems = list.find("li");
|
||||
if (options.selectFirst) {
|
||||
listItems.slice(0, 1).addClass(CLASSES.ACTIVE);
|
||||
active = 0;
|
||||
}
|
||||
if ($.fn.bgiframe) list.bgiframe();
|
||||
}
|
||||
return {
|
||||
display: function(d, q) {
|
||||
init();
|
||||
data = d;
|
||||
term = q;
|
||||
fillList();
|
||||
},
|
||||
next: function() {
|
||||
moveSelect(1);
|
||||
},
|
||||
prev: function() {
|
||||
moveSelect(-1);
|
||||
},
|
||||
pageUp: function() {
|
||||
if (active != 0 && active - 8 < 0) {
|
||||
moveSelect(-active);
|
||||
} else {
|
||||
moveSelect(-8);
|
||||
}
|
||||
},
|
||||
pageDown: function() {
|
||||
if (active != listItems.size() - 1 && active + 8 > listItems.size()) {
|
||||
moveSelect(listItems.size() - 1 - active);
|
||||
} else {
|
||||
moveSelect(8);
|
||||
}
|
||||
},
|
||||
hide: function() {
|
||||
element && element.hide();
|
||||
listItems && listItems.removeClass(CLASSES.ACTIVE);
|
||||
active = -1;
|
||||
},
|
||||
visible: function() {
|
||||
return element && element.is(":visible");
|
||||
},
|
||||
current: function() {
|
||||
return this.visible() && (listItems.filter("." + CLASSES.ACTIVE)[0] || options.selectFirst && listItems[0]);
|
||||
},
|
||||
show: function() {
|
||||
var offset = $(input).offset();
|
||||
element.css({
|
||||
width: typeof options.width == "string" || options.width > 0 ? options.width : $(input).width(),
|
||||
top: offset.top + input.offsetHeight,
|
||||
left: offset.left
|
||||
}).show();
|
||||
if (options.scroll) {
|
||||
list.scrollTop(0);
|
||||
list.css({
|
||||
maxHeight: options.scrollHeight,
|
||||
overflow: 'auto'
|
||||
});
|
||||
if ($.browser.msie && typeof document.body.style.maxHeight === "undefined") {
|
||||
var listHeight = 0;
|
||||
listItems.each(function() {
|
||||
listHeight += this.offsetHeight;
|
||||
});
|
||||
var scrollbarsVisible = listHeight > options.scrollHeight;
|
||||
list.css('height', scrollbarsVisible ? options.scrollHeight : listHeight);
|
||||
if (!scrollbarsVisible) {
|
||||
listItems.width(list.width() - parseInt(listItems.css("padding-left")) - parseInt(listItems.css("padding-right")));
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
selected: function() {
|
||||
var selected = listItems && listItems.filter("." + CLASSES.ACTIVE).removeClass(CLASSES.ACTIVE);
|
||||
return selected && selected.length && $.data(selected[0], "ac_data");
|
||||
},
|
||||
emptyList: function() {
|
||||
list && list.empty();
|
||||
},
|
||||
unbind: function() {
|
||||
element && element.remove();
|
||||
}
|
||||
};
|
||||
};
|
||||
$.fn.selection = function(start, end) {
|
||||
if (start !== undefined) {
|
||||
return this.each(function() {
|
||||
if (this.createTextRange) {
|
||||
var selRange = this.createTextRange();
|
||||
if (end === undefined || start == end) {
|
||||
selRange.move("character", start);
|
||||
selRange.select();
|
||||
} else {
|
||||
selRange.collapse(true);
|
||||
selRange.moveStart("character", start);
|
||||
selRange.moveEnd("character", end);
|
||||
selRange.select();
|
||||
}
|
||||
} else if (this.setSelectionRange) {
|
||||
this.setSelectionRange(start, end);
|
||||
} else if (this.selectionStart) {
|
||||
this.selectionStart = start;
|
||||
this.selectionEnd = end;
|
||||
}
|
||||
});
|
||||
}
|
||||
var field = this[0];
|
||||
if (field.createTextRange) {
|
||||
var range = document.selection.createRange(),
|
||||
orig = field.value,
|
||||
teststring = "<->",
|
||||
textLength = range.text.length;
|
||||
range.text = teststring;
|
||||
var caretAt = field.value.indexOf(teststring);
|
||||
field.value = orig;
|
||||
this.selection(caretAt, caretAt + textLength);
|
||||
return {
|
||||
start: caretAt,
|
||||
end: caretAt + textLength
|
||||
}
|
||||
} else if (field.selectionStart !== undefined) {
|
||||
return {
|
||||
start: field.selectionStart,
|
||||
end: field.selectionEnd
|
||||
}
|
||||
}
|
||||
};
|
||||
})(jQuery);
|
||||
2
code/public/template/videoboku/js/jquery.min.js
vendored
Normal file
2
code/public/template/videoboku/js/jquery.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
code/public/template/videoboku/js/layer/layer.js
Normal file
2
code/public/template/videoboku/js/layer/layer.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
234
code/public/template/videoboku/js/mytheme-cms.js
Normal file
234
code/public/template/videoboku/js/mytheme-cms.js
Normal file
@@ -0,0 +1,234 @@
|
||||
/*!
|
||||
* 版本:MYUI Copyright © 2020
|
||||
* 官网:https://www.uzhanw.com
|
||||
*/
|
||||
|
||||
var Myui = {
|
||||
'Comment': {
|
||||
'Init':function(){
|
||||
$('body').on('click', '.my_comment_submit', function(e){
|
||||
if($(this).parent().parent().parent().find(".comment_data").val() == ''){
|
||||
layer.msg("请输入评论内容");
|
||||
return false;
|
||||
}
|
||||
Myui.Comment.Submit();
|
||||
});
|
||||
$('body').on('click', '.my_comment_report', function(e){
|
||||
var $that = $(this);
|
||||
if($(this).attr("data-id")){
|
||||
MyTheme.Ajax(maccms.path + '/index.php/comment/report.html?id='+$that.attr("data-id"),'get','json','',function(r){
|
||||
$that.addClass('disabled');
|
||||
layer.msg(r.msg);
|
||||
});
|
||||
}
|
||||
});
|
||||
$('body').on('click', '.my_comment_reply', function(e){
|
||||
var $that = $(this);
|
||||
if($that.attr("data-id")){
|
||||
var str = $that.html();
|
||||
$('.comment_reply_form').remove();
|
||||
if (str == '取消回复') {
|
||||
$that.html('回复');
|
||||
return false;
|
||||
}
|
||||
if (str == '回复') {
|
||||
$('.my_comment_reply').html('回复');
|
||||
}
|
||||
var html = $('.comment_form').prop("outerHTML");
|
||||
|
||||
var oo = $(html);
|
||||
oo.addClass('comment_reply_form');
|
||||
oo.find('input[name="comment_pid"]').val( $that.attr("data-id") );
|
||||
|
||||
$that.parent().after(oo);
|
||||
$that.html('取消回复');
|
||||
}
|
||||
});
|
||||
$('body').on('click', '.my_comment_report', function(e){
|
||||
var $that = $(this);
|
||||
if($(this).attr("data-id")){
|
||||
MyTheme.Ajax(maccms.path + '/index.php/comment/report.html?id='+$that.attr("data-id"),'get','json','',function(r){
|
||||
$that.addClass('disabled');
|
||||
layer.msg(r.msg);
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
'Show':function($page){
|
||||
MyTheme.Ajax(maccms.path + '/index.php/comment/ajax.html?rid='+$('.myui_comment').attr('data-id')+'&mid='+ $('.myui_comment').attr('data-mid') +'&page='+$page,'get','json','',function(r){
|
||||
$(".myui_comment").html(r);
|
||||
},function(){
|
||||
$(".myui_comment").html('<p class="text-center"><a href="javascript:void(0)" onclick="Myui.Comment.Show('+$page+');">评论加载失败,点击我刷新...</a></p>');
|
||||
});
|
||||
},
|
||||
'Submit':function(){
|
||||
MyTheme.Ajax(maccms.path + '/index.php/comment/saveData','post','json',$(".comment_form").serialize() + '&comment_mid='+ $('.myui_comment').attr('data-mid') + '&comment_rid=' + $('.myui_comment').attr('data-id'),function(r){
|
||||
if(r.code==1){
|
||||
layer.msg(r.msg,{anim:5},function(){
|
||||
Myui.Comment.Show(1);
|
||||
});
|
||||
} else {
|
||||
if(MAC.Gbook.Verify==1){
|
||||
$('#verify_img').click();
|
||||
}
|
||||
layer.msg(r.msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
'Gbook': {
|
||||
'Init':function(){
|
||||
$('body').on('click', '.gbook_submit', function(e){
|
||||
if($(".gbook_data").val() == ''){
|
||||
layer.msg("请输入留言内容");
|
||||
return false;
|
||||
}
|
||||
Myui.Gbook.Submit();
|
||||
});
|
||||
},
|
||||
'Submit':function(){
|
||||
MyTheme.Ajax(maccms.path + '/index.php/gbook/saveData','post','json',$("#myform").serialize(),function(r){
|
||||
if(r.code==1){
|
||||
layer.msg(r.msg,{anim:5},function(){
|
||||
location.reload();
|
||||
});
|
||||
} else {
|
||||
if(MAC.Gbook.Verify==1){
|
||||
$('#verify_img').click();
|
||||
}
|
||||
layer.msg(r.msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
'Score':function(){
|
||||
var hadpingfen = 0;
|
||||
$("ul.rating li").each(function(i) {
|
||||
var $title = $(this).attr("title");
|
||||
var $lis = $("ul.rating li");
|
||||
var num = $(this).index();
|
||||
var n = num + 1;
|
||||
$(this).click(function () {
|
||||
if (hadpingfen > 0) {
|
||||
layer.msg('已经评分,请务重复评分');
|
||||
}
|
||||
else {
|
||||
$lis.removeClass("active");
|
||||
$("ul.rating li:lt(" + n + ")").find(".fa").addClass("fa-star").removeClass("fa-star-o");
|
||||
$("#ratewords").html($title);
|
||||
$.getJSON(maccms.path+'/index.php/ajax/score?mid='+$('#rating').attr('data-mid')+'&id='+$('#rating').attr('data-id')+'&score='+($(this).attr('val')*2), function (r) {
|
||||
if (parseInt(r.code) == 1) {
|
||||
layer.msg(r.msg);
|
||||
hadpingfen = 1;
|
||||
}
|
||||
else {
|
||||
hadpingfen = 1;
|
||||
layer.msg(r.msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
).hover(function () {
|
||||
this.myTitle = this.title;
|
||||
this.title = "";
|
||||
$(this).nextAll().find(".fa").addClass("fa-star-o").removeClass("fa-star");
|
||||
$(this).prevAll().find(".fa").addClass("fa-star").removeClass("fa-star-o");
|
||||
$(this).find(".fa").addClass("fa-star").removeClass("fa-star-o");
|
||||
$("#ratewords").html($title);
|
||||
}, function () {
|
||||
this.title = this.myTitle;
|
||||
$("ul.rating li:lt(" + n + ")").removeClass("hover");
|
||||
});
|
||||
});
|
||||
},
|
||||
'Autocomplete': function() {
|
||||
var searchWidth= $('#search').width();
|
||||
try {
|
||||
$('.search_wd').autocomplete(maccms.path + '/index.php/ajax/suggest?mid=1', {
|
||||
resultsClass: "autocomplete-suggestions",
|
||||
width: searchWidth, scrollHeight: 410, minChars: 1, matchSubset: 0, cacheLength: 10, multiple: false, matchContains: true, autoFill: false,
|
||||
dataType: "json",
|
||||
parse: function (r) {
|
||||
if (r.code == 1) {
|
||||
$(".head-dropdown").hide();
|
||||
var parsed = [];
|
||||
$.each(r['list'], function (index, row) {
|
||||
row.url = r.url;
|
||||
parsed[index] = {
|
||||
data: row
|
||||
};
|
||||
});
|
||||
return parsed;
|
||||
} else {
|
||||
return {data: ''};
|
||||
}
|
||||
},
|
||||
formatItem: function (row, i, max) {
|
||||
return row.name;
|
||||
},
|
||||
formatResult: function (row, i, max) {
|
||||
return row.text;
|
||||
}
|
||||
}).result(function (event, data, formatted) {
|
||||
$(this).val(data.name);
|
||||
location.href = data.url.replace('mac_wd', encodeURIComponent(data.name));
|
||||
});
|
||||
}
|
||||
catch(e){}
|
||||
},
|
||||
'Favorite': function() {
|
||||
if($('.favorite').length>0){
|
||||
$('body').on('click', 'a.favorite', function(e){
|
||||
var $that = $(this);
|
||||
if($that.attr("data-id")){
|
||||
$.ajax({
|
||||
url: maccms.path+'/index.php/user/ajax_ulog/?ac=set&mid='+$that.attr("data-mid")+'&id='+$that.attr("data-id")+'&type='+$that.attr("data-type"),
|
||||
cache: false,
|
||||
dataType: 'json',
|
||||
success: function($r){
|
||||
layer.msg($r.msg);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
'User': {
|
||||
'BuyPopedom':function(o){
|
||||
var $that = $(o);
|
||||
if($that.attr("data-id")){
|
||||
if (confirm('您确认购买此条数据访问权限吗?')) {
|
||||
MyTheme.Ajax(maccms.path + '/index.php/user/ajax_buy_popedom.html?id=' + $that.attr("data-id") + '&mid=' + $that.attr("data-mid") + '&sid=' + $that.attr("data-sid") + '&nid=' + $that.attr("data-nid") + '&type=' + $that.attr("data-type"),'get','json','',function(r){
|
||||
$that.addClass('disabled');
|
||||
layer.msg($r.msg);
|
||||
if (r.code == 1) {
|
||||
top.location.reload();
|
||||
}
|
||||
$that.removeClass('disabled');
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
'Login':function(){
|
||||
MyTheme.Layer.Div('.ajax_login');
|
||||
$('body').on('click', '.login_form_submit', function(e){
|
||||
$(this).unbind('click');
|
||||
MyTheme.Ajax(maccms.path + '/index.php/user/login','post','json',$('.mac_login_form').serialize(),function(r){
|
||||
layer.msg(r.msg);
|
||||
if(r.code == 1){
|
||||
layer.msg(r.msg,{anim:5},function(){
|
||||
location.reload();
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$(function(){
|
||||
// Myui.Comment.Init();
|
||||
// Myui.Gbook.Init();
|
||||
// Myui.Autocomplete();
|
||||
// Myui.Favorite();
|
||||
});
|
||||
260
code/public/template/videoboku/js/mytheme-site.js
Normal file
260
code/public/template/videoboku/js/mytheme-site.js
Normal file
File diff suppressed because one or more lines are too long
514
code/public/template/videoboku/js/mytheme-ui.js
Normal file
514
code/public/template/videoboku/js/mytheme-ui.js
Normal file
@@ -0,0 +1,514 @@
|
||||
/*!
|
||||
* 版本:MYUI Copyright © 2020
|
||||
* 官网:https://www.uzhanw.com
|
||||
*/
|
||||
|
||||
var MyTheme = {
|
||||
'Browser': {
|
||||
url: document.URL,
|
||||
domain: document.domain,
|
||||
title: document.title,
|
||||
language: (navigator.browserLanguage || navigator.language).toLowerCase(),
|
||||
canvas: function() {
|
||||
return !!document.createElement("canvas").getContext
|
||||
}(),
|
||||
useragent: function() {
|
||||
var a = navigator.userAgent;
|
||||
return {
|
||||
mobile: !! a.match(/AppleWebKit.*Mobile.*/),
|
||||
ios: !! a.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
|
||||
android: -1 < a.indexOf("Android") || -1 < a.indexOf("Linux"),
|
||||
iPhone: -1 < a.indexOf("iPhone") || -1 < a.indexOf("Mac"),
|
||||
iPad: -1 < a.indexOf("iPad"),
|
||||
trident: -1 < a.indexOf("Trident"),
|
||||
presto: -1 < a.indexOf("Presto"),
|
||||
webKit: -1 < a.indexOf("AppleWebKit"),
|
||||
gecko: -1 < a.indexOf("Gecko") && -1 == a.indexOf("KHTML"),
|
||||
weixin: -1 < a.indexOf("MicroMessenger")
|
||||
}
|
||||
}()
|
||||
},
|
||||
'Cookie': {
|
||||
'Set':function(name,value,days){
|
||||
var expires;
|
||||
if (days) {
|
||||
expires = days;
|
||||
} else{
|
||||
expires = "";
|
||||
}
|
||||
$.cookie(name,value,{expires:expires,path:'/'});
|
||||
},
|
||||
'Get':function(name){
|
||||
var styles = $.cookie(name);
|
||||
return styles;
|
||||
},
|
||||
'Del':function(name,tips){
|
||||
if(window.confirm(tips)){
|
||||
$.cookie(name,null,{expires:-1,path: '/'});
|
||||
location.reload();
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
'Ajax':function(url,type,dataType,data,sfun,efun,cfun){
|
||||
type=type||'get';
|
||||
dataType=dataType||'json';
|
||||
data=data||'';
|
||||
efun=efun||'';
|
||||
cfun=cfun||'';
|
||||
|
||||
$.ajax({
|
||||
url:url,
|
||||
type:type,
|
||||
dataType:dataType,
|
||||
data:data,
|
||||
timeout: 5000,
|
||||
beforeSend:function(XHR){
|
||||
},
|
||||
error:function(XHR,textStatus,errorThrown){
|
||||
if(efun) efun(XHR,textStatus,errorThrown);
|
||||
},
|
||||
success:function(data){
|
||||
sfun(data);
|
||||
},
|
||||
complete:function(XHR, TS){
|
||||
if(cfun) cfun(XHR, TS);
|
||||
}
|
||||
})
|
||||
},
|
||||
'Mobile': {
|
||||
'Nav': {
|
||||
'Init': function() {
|
||||
if($(".nav-slide").length){
|
||||
$(".nav-slide").each(function(){
|
||||
var $that = $(this);
|
||||
MyTheme.Mobile.Nav.Set($that,$that.attr('data-align'));
|
||||
});
|
||||
}
|
||||
},
|
||||
'Set': function(id,align) {
|
||||
$index = id.find('.active').index()*1;
|
||||
if($index > 3){
|
||||
$index = $index-3;
|
||||
}else{
|
||||
$index = 0;
|
||||
}
|
||||
id.flickity({
|
||||
cellAlign: align,
|
||||
freeScroll: true,
|
||||
contain: true,
|
||||
prevNextButtons: false,
|
||||
pageDots: false,
|
||||
percentPosition: true,
|
||||
initialIndex: $index
|
||||
});
|
||||
}
|
||||
},
|
||||
'Mshare': function() {
|
||||
$(".open-share").click(function() {
|
||||
MyTheme.Browser.useragent.weixin ? $("body").append('<div class="mobile-share share-weixin"></div>') : $("body").append('<div class="mobile-share share-other"></div>');
|
||||
$(".mobile-share").click(function() {
|
||||
$(".mobile-share").remove();
|
||||
$("body").removeClass("modal-open");
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
'Images': {
|
||||
'Lazyload': function() {
|
||||
$(".lazyload").lazyload({
|
||||
effect: "fadeIn",
|
||||
threshold: 200,
|
||||
failure_limit : 1,
|
||||
skip_invisible : false,
|
||||
});
|
||||
},
|
||||
'Qrcode': {
|
||||
'Init': function() {
|
||||
if($("#qrcode").length){
|
||||
var $that = $("#qrcode");
|
||||
MyTheme.Images.Qrcode.Set($that.attr('data-link'),$that.attr('data-dark'),$that.attr('data-light'));
|
||||
$that.attr("class","img-responsive");
|
||||
}
|
||||
},
|
||||
'Set': function(url,dark,light) {
|
||||
url=0||location.href;
|
||||
var qrcode = new QRCode('qrcode', {
|
||||
text: url,
|
||||
width: 120,
|
||||
height: 120,
|
||||
colorDark : dark,
|
||||
colorLight : light,
|
||||
correctLevel : QRCode.CorrectLevel.H
|
||||
});
|
||||
}
|
||||
},
|
||||
'Flickity': {
|
||||
'Init': function() {
|
||||
if($(".flickity").length){
|
||||
$(".flickity").each(function(){
|
||||
var $that = $(this);
|
||||
MyTheme.Images.Flickity.Set($that,$that.attr('data-align'),$that.attr('data-dots'),$that.attr('data-next'));
|
||||
});
|
||||
}
|
||||
},
|
||||
'Set': function(id,align,dots,next) {
|
||||
dots=dots||false;
|
||||
next=next||false;
|
||||
id.flickity({
|
||||
cellAlign: align,
|
||||
wrapAround: true,
|
||||
contain: true,
|
||||
pageDots: dots,
|
||||
percentPosition: true,
|
||||
prevNextButtons: next
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
'Link': {
|
||||
'Copy': function(){
|
||||
if($(".copy-link").length){
|
||||
var clipboard = new Clipboard('.copy-link', {
|
||||
text: function() {
|
||||
return $(".my-link").html();
|
||||
}
|
||||
});
|
||||
clipboard.on('success', function(e) {
|
||||
layer.msg('链接复制成功');
|
||||
});
|
||||
clipboard.on("error",function(e){
|
||||
layer.msg('复制失败,请手动复制');
|
||||
});
|
||||
}
|
||||
},
|
||||
'Short': function(){
|
||||
if($(".short").length){
|
||||
var shortId = $(".short");
|
||||
var shortUrl = shortId.attr("href");
|
||||
$.ajax({
|
||||
type : 'GET',
|
||||
url : myui.shortapi+encodeURIComponent(shortUrl),
|
||||
dataType : 'json',
|
||||
success : function(data) {
|
||||
url_short = data.urls[0].url_short;
|
||||
shortId.html(url_short);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
'Layer': {
|
||||
'Img': function(title,src,text) {
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: title,
|
||||
skin: 'layui-layer-rim',
|
||||
content: '<div class="col-pd"><p><img src="'+src+'" width="240" /></p><p class="text-center">'+text+'</p></div>'
|
||||
});
|
||||
},
|
||||
'Html': function(title,html) {
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: title,
|
||||
skin: 'layui-layer-rim',
|
||||
content: '<div class="col-pd">'+html+'</div>'
|
||||
});
|
||||
},
|
||||
'Div': function(id) {
|
||||
layer.open({
|
||||
type: 1,
|
||||
title:false,
|
||||
skin: 'layui-layer-rim',
|
||||
content: $(id)
|
||||
});
|
||||
},
|
||||
'Popbody': function(name,title,html,day,wide,high) {
|
||||
var pop_is = MyTheme.Cookie.Get(name);
|
||||
var html = $(html).html();
|
||||
if(!pop_is){
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: title,
|
||||
skin: 'layui-layer-rim',
|
||||
content: html,
|
||||
area: [wide+'px', high+'px'],
|
||||
cancel: function(){
|
||||
MyTheme.Cookie.Set(name,1,day);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
'Other': {
|
||||
'Headroom': function() {
|
||||
if($("#header-top").length){
|
||||
var header = document.querySelector("#header-top");
|
||||
var headroom = new Headroom(header, {
|
||||
tolerance: 5,
|
||||
offset: 205,
|
||||
classes: {
|
||||
initial: "top-fixed",
|
||||
pinned: "top-fixed-up",
|
||||
unpinned: "top-fixed-down"
|
||||
}
|
||||
});
|
||||
headroom.init();
|
||||
}
|
||||
$(".dropdown-hover").click(function(){
|
||||
$(this).find(".dropdown-box").toggle();
|
||||
});
|
||||
},
|
||||
'Popup': function(id) {
|
||||
$(id).addClass("popup-visible");
|
||||
$("body").append('<div class="mask"></div>').addClass("hidden");
|
||||
$(".close-popup").click(function() {
|
||||
$(id).removeClass("popup-visible");
|
||||
$(".mask").remove();
|
||||
$("body").removeClass("hidden");
|
||||
});
|
||||
$(".mask").click(function() {
|
||||
$(id).removeClass("popup-visible");
|
||||
$(this).remove();
|
||||
$("body").removeClass("hidden");
|
||||
});
|
||||
},
|
||||
'Bootstrap': function() {
|
||||
$('a[data-toggle="tab"]').on("shown.bs.tab", function(a) {
|
||||
var b = $(a.target).text();
|
||||
$(a.relatedTarget).text();
|
||||
$("span.active-tab").html(b);
|
||||
});
|
||||
},
|
||||
'Skin': function() {
|
||||
var skinnum = 0,act;
|
||||
var lengths = $("link[name='skin']").length;
|
||||
$('.btnskin').click(function() {
|
||||
skinnum+=1;
|
||||
if(skinnum==lengths){skinnum=0;}
|
||||
var skin = $("link[name='skin']").eq(skinnum).attr("href");
|
||||
layer.msg("正在切换皮肤,请稍后...",{anim:5,time: 2000},function(){
|
||||
$("link[name='default']").attr({href:skin});
|
||||
});
|
||||
MyTheme.Cookie.Set('skinColor',skin,365);
|
||||
});
|
||||
var color = MyTheme.Cookie.Get('skinColor');
|
||||
if(color){
|
||||
$("link[name='default']").attr({href:color});
|
||||
}
|
||||
},
|
||||
'Sort': function() {
|
||||
$(".sort-button").each(function(){
|
||||
$(this).on("click",function(e){
|
||||
e.preventDefault();
|
||||
$(this).parent().parent().parent().find(".sort-list").each(function(){
|
||||
var playlist=$(this).find("li");
|
||||
for(let i=0,j=playlist.length-1;i<j;){
|
||||
var l=playlist.eq(i).clone(true);
|
||||
var r=playlist.eq(j).replaceWith(l);
|
||||
playlist.eq(i).replaceWith(r);
|
||||
++i;
|
||||
--j;
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
'Search': function() {
|
||||
$(".search-select li").click(function() {
|
||||
var action =$(this).attr("data-action");
|
||||
$("#search").attr("action",action);
|
||||
$(".search-select .text").text($(this).html());
|
||||
});
|
||||
$(".search_submit").click(function() {
|
||||
var value=$(".search_wd").val();
|
||||
if (!value) {
|
||||
var wd=$(".search_wd").attr("placeholder");
|
||||
$(".search_wd").val(wd);
|
||||
}
|
||||
});
|
||||
$(".search_wd").click(function() {
|
||||
$(this).parent().parent().find(".search-dropdown-hot").toggle();
|
||||
});
|
||||
$(".open-search").click(function(){
|
||||
var seacrhBox=$(".search-box");
|
||||
seacrhBox.addClass("active").siblings().hide();
|
||||
seacrhBox.find(".form-control").focus();
|
||||
seacrhBox.find(".head-dropdown").toggle();
|
||||
$(".search-close").click(function(){
|
||||
seacrhBox.removeClass("active").siblings().show();
|
||||
seacrhBox.find(".dropdown-box").hide();
|
||||
});
|
||||
});
|
||||
},
|
||||
'Collapse': function() {
|
||||
$(".text-collapse").each(function(){
|
||||
$(this).find(".details").on("click",function(){
|
||||
$(this).parent().find(".sketch").addClass("hide");
|
||||
$(this).parent().find(".data").css("display","");
|
||||
$(this).remove();
|
||||
});
|
||||
});
|
||||
},
|
||||
'Scrolltop': function() {
|
||||
var a = $(window);
|
||||
$scrollTopLink = $("a.backtop");
|
||||
a.scroll(function() {
|
||||
500 < $(this).scrollTop() ? $scrollTopLink.css("display", "") : $scrollTopLink.css("display", "none");
|
||||
});
|
||||
$scrollTopLink.on("click", function() {
|
||||
$("html, body").animate({
|
||||
scrollTop: 0
|
||||
}, 400);
|
||||
return true;
|
||||
});
|
||||
},
|
||||
'Slidedown': function() {
|
||||
var display = $('.slideDown-box');
|
||||
$(".slideDown-btn").click(function() {
|
||||
if(display.css('display') == 'block'){
|
||||
display.slideUp("slow");
|
||||
$(this).html('展开 <i class="fa fa-angle-down"></i>');
|
||||
}else{
|
||||
display.slideDown("slow");
|
||||
$(this).html('收起 <i class="fa fa-angle-up"></i>');
|
||||
}
|
||||
});
|
||||
},
|
||||
'History': {
|
||||
'Init':function(){
|
||||
if($(".vod_history").length){
|
||||
var $that = $(".vod_history");
|
||||
MyTheme.Other.History.Set($that.attr('data-name'),$that.attr('data-link'),$that.attr('data-pic'),$that.attr('data-part'),$that.attr('data-limit'));
|
||||
}
|
||||
},
|
||||
'Set':function(name,link,pic,part,limit){
|
||||
if(!link){ link = document.URL;}
|
||||
var history = MyTheme.Cookie.Get("history");
|
||||
var len=0;
|
||||
var canadd=true;
|
||||
if(history){
|
||||
history = eval("("+history+")");
|
||||
len=history.length;
|
||||
$(history).each(function(){
|
||||
if(name==this.name){
|
||||
canadd=false;
|
||||
var json="[";
|
||||
$(history).each(function(i){
|
||||
var temp_name,temp_img,temp_url,temp_part;
|
||||
if(this.name==name){
|
||||
temp_name=name;temp_img=pic;temp_url=link;temp_part=part;
|
||||
}else{
|
||||
temp_name=this.name;temp_img=this.pic;temp_url=this.link;temp_part=this.part;
|
||||
}
|
||||
json+="{\"name\":\""+temp_name+"\",\"pic\":\""+temp_img+"\",\"link\":\""+temp_url+"\",\"part\":\""+temp_part+"\"}";
|
||||
if(i!=len-1)
|
||||
json+=",";
|
||||
})
|
||||
json+="]";
|
||||
MyTheme.Cookie.Set('history',json,365);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
if(canadd){
|
||||
var json="[";
|
||||
var start=0;
|
||||
var isfirst="]";
|
||||
isfirst=!len?"]":",";
|
||||
json+="{\"name\":\""+name+"\",\"pic\":\""+pic+"\",\"link\":\""+link+"\",\"part\":\""+part+"\"}"+isfirst;
|
||||
if(len>limit-1)
|
||||
len-=1;
|
||||
for(i=0;i<len-1;i++){
|
||||
json+="{\"name\":\""+history[i].name+"\",\"pic\":\""+history[i].pic+"\",\"link\":\""+history[i].link+"\",\"part\":\""+history[i].part+"\"},";
|
||||
}
|
||||
if(len>0){
|
||||
json+="{\"name\":\""+history[len-1].name+"\",\"pic\":\""+history[len-1].pic+"\",\"link\":\""+history[len-1].link+"\",\"part\":\""+history[len-1].part+"\"}]";
|
||||
}
|
||||
MyTheme.Cookie.Set('history',json,365);
|
||||
}
|
||||
}
|
||||
},
|
||||
'Player': function() {
|
||||
if($("#player-left").length){
|
||||
var PlayerLeft = $("#player-left");
|
||||
var PlayerSide = $("#player-sidebar");
|
||||
var LeftHeight = PlayerLeft.outerHeight();
|
||||
var Position = $("#playlist li.active").position().top;
|
||||
$("#player-sidebar-is").click(function() {
|
||||
PlayerSide.toggle();
|
||||
if(PlayerSide.css("display")==='none') {
|
||||
PlayerLeft.css("width","100%");
|
||||
$(this).html("<i class='fa fa-angle-left'></i>");
|
||||
}
|
||||
if(PlayerSide.css("display")==='block') {
|
||||
PlayerLeft.css("width","");
|
||||
$(this).html("<i class='fa fa-angle-right'></i>");
|
||||
}
|
||||
});
|
||||
if(!MyTheme.Browser.useragent.mobile){
|
||||
PlayerSide.css({"height":LeftHeight,"overflow":"auto"});
|
||||
PlayerSide.scrollTop(Position);
|
||||
if($(".player-fixed").length){
|
||||
$(window).scroll(function(){
|
||||
if($(window).scrollTop()>window.outerHeight){
|
||||
$(".player-fixed").addClass("fixed fadeInDown");
|
||||
$(".player-fixed-off").show();
|
||||
|
||||
}else if($(window).scrollTop()<window.outerHeight){
|
||||
$(".player-fixed").removeClass("fixed fadeInDown");
|
||||
$(".player-fixed-off").hide();
|
||||
}
|
||||
});
|
||||
}
|
||||
$(".player-fixed-off").click(function() {
|
||||
$(".player-fixed").removeClass("fixed fadeInDown");
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
'Close': function() {
|
||||
$(".close-btn").on("click",function(){
|
||||
$(this).parents(".close-box").remove();
|
||||
});
|
||||
},
|
||||
'Share': function(){
|
||||
if(".bdshare".length){
|
||||
window._bd_share_config = {
|
||||
common: {
|
||||
bdText: '',
|
||||
bdDesc: '',
|
||||
bdUrl: '',
|
||||
bdPic: ''
|
||||
},
|
||||
share: [{
|
||||
"bdSize": 24,
|
||||
}]
|
||||
}
|
||||
//with(document)0[(getElementsByTagName("head")[0]||body).appendChild(createElement('script')).src=''+myui.bdapi+'?cdnversion='+~(-new Date()/36e5)];
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$(function(){
|
||||
if(MyTheme.Browser.useragent.mobile){
|
||||
MyTheme.Mobile.Nav.Init();
|
||||
MyTheme.Mobile.Mshare();
|
||||
}
|
||||
MyTheme.Images.Lazyload();
|
||||
MyTheme.Images.Flickity.Init();
|
||||
MyTheme.Link.Copy();
|
||||
MyTheme.Other.Bootstrap();
|
||||
MyTheme.Other.Sort();
|
||||
MyTheme.Other.Headroom();
|
||||
MyTheme.Other.Search();
|
||||
MyTheme.Other.Collapse();
|
||||
MyTheme.Other.Slidedown();
|
||||
MyTheme.Other.Scrolltop();
|
||||
MyTheme.Other.History.Init();
|
||||
MyTheme.Other.Player();
|
||||
MyTheme.Other.Close();
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user