معلومات المنتج:
<نمط><!--
الجسم{الحشوة العلوية:50px;الحشوة اليسرى:100px;الحشوة اليمنى:150px;}
.fileDiv{float:left;width:100px;height:100px;text-align:center;line-height:100px;font-size:12px;border:1px Solid #cccccc;margin-right:10px;margin-bottom: 10 بكسل؛}
.seled{border:1px Solid #ff0000;background-color:#D6DFF7;}
--></style>
<script type="text/javascript">// <![CDATA[
Array.prototype.remove = الوظيفة(العنصر){
for( var i = 0 ; i < this.length ; i++ ){
إذا (العنصر == هذا[i])
استراحة؛
}
إذا (أنا == هذا الطول)
يعود؛
for( var j = i ; j < this.length - 1 ; j++ ){
هذا[ي] = هذا[ي + 1];
}
this.length--;
}
String.prototype.replaceAll = function (AFindText,ARepText){ raRegExp = new RegExp(AFindText,"g"); إرجاع this.replace(raRegExp,ARepText);}
الدالة getAllChildren(e) {
العودة e.all؟ e.all : e.getElementsByTagName('*');
}
document.getElementsBySelector = وظيفة(محدد) {
إذا (!document.getElementsByTagName) {
إرجاع صفيف جديد () ؛
}
var tokens = Selector.split(' ');
var currentContext = new Array(document);
لـ (var i = 0; i < tokens.length; i++) {
token = tokens[i].replace(/^/s+/,'').replace(//s+$/,'');;
إذا (token.indexOf('#') > -1) {
var bits = token.split('#');
var tagName = bits[0];
معرف فار = بت[1];
var element = document.getElementById(id);
إذا (tagName && element.nodeName.toLowerCase() != tagName) {
إرجاع صفيف جديد () ؛
}
currentContext = new Array(element);
يكمل؛
}
إذا (token.indexOf('.') > -1) {
var bits = token.split('.');
var tagName = bits[0];
var className = bits[1];
إذا (! اسم العلامة) {
اسم العلامة = '*';
}
تم العثور على var = مصفوفة جديدة؛
فار FoundCount = 0;
لـ (var h = 0; h <currentContext.length; h++) {
عناصر فار؛
إذا (اسم العلامة == '*') {
Elements = getAllChildren(currentContext[h]);
} آخر {
Elements = currentContext[h].getElementsByTagName(tagName);
}
لـ (var j = 0; j < Elements.length; j++) {
وجدت[foundCount++] = العناصر[j];
}
}
currentContext = new Array;
var currentContextIndex = 0;
لـ (var k = 0; k < Found. length; k++) {
if (found[k].className && Found[k].className.match(new RegExp('//b'+className+'//b'))) {
currentContext[currentContextIndex++] = Found[k];
}
}
يكمل؛
}
إذا (token.match(/^(/w*)/[(/w+)([=~/|/^/$/*]?)=؟"?([^/]"]*)"?/ ]$/)) {
var tagName = RegExp.$1;
var attrName = RegExp.$2;
var attrOperator = RegExp.$3;
var attrValue = RegExp.$4;
إذا (! اسم العلامة) {
اسم العلامة = '*';
}
تم العثور على var = مصفوفة جديدة؛
فار FoundCount = 0;
لـ (var h = 0; h <currentContext.length; h++) {
عناصر فار؛
إذا (اسم العلامة == '*') {
Elements = getAllChildren(currentContext[h]);
} آخر {
Elements = currentContext[h].getElementsByTagName(tagName);
}
لـ (var j = 0; j < Elements.length; j++) {
وجدت[foundCount++] = العناصر[j];
}
}
currentContext = new Array;
var currentContextIndex = 0;
فار checkFunction;
التبديل (attrOperator) {
الحالة '=':
checkFunction = function(e) { return (e.getAttribute(attrName) == attrValue); };
استراحة؛
الحالة '~':
checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('//b'+attrValue+'//b'))); };
استراحة؛
الحالة '|':
checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('^'+attrValue+'-?'))); };
استراحة؛
الحالة '^':
checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) == 0); };
استراحة؛
الحالة '$':
checkFunction = function(e) { return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length); };
استراحة؛
قضية '*':
checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) > -1); };
استراحة؛
تقصير :
checkFunction = function(e) { return e.getAttribute(attrName); };
}
currentContext = new Array;
var currentContextIndex = 0;
لـ (var k = 0; k < Found. length; k++) {
إذا (checkFunction(وجدت[ك])) {
currentContext[currentContextIndex++] = Found[k];
}
}
يكمل؛
}
tagName = token;
تم العثور على var = مصفوفة جديدة؛
فار FoundCount = 0;
لـ (var h = 0; h <currentContext.length; h++) {
var Elements = currentContext[h].getElementsByTagName(tagName);
لـ (var j = 0; j < Elements.length; j++) {
وجدت[foundCount++] = العناصر[j];
}
}
currentContext = Found;
}
إرجاع السياق الحالي؛
}
وظيفة addEvent(eventType,eventFunc,eventObj){
eventObj =eventObj || وثيقة؛
if(window.attachEvent) eventsObj.attachEvent("on"+eventType,eventFunc);
if(window.addEventListener) eventsObj.addEventListener(eventType,eventFunc,false);
}
وظيفة ClearEventBubble(evt){
إيفت = إيفت || window.event;
إذا (evt.stopPropagation) evt.stopPropagation(); else evt.cancelBubble = true;
إذا (evt.preventDefault) evt.preventDefault(); else evt.returnValue = false;
}
وظيفة بوإكسي (الحدث) {
حدث = حدث || window.event;
فار posX = events.pageX || (event.clientX +
(document.documentElement.scrollLeft || document.body.scrollLeft));
var posY = events.pageY || (event.clientY +
(document.documentElement.scrollTop || document.body.scrollTop));
إرجاع {x:posX، y:posY}؛
}
var _selectedRegions = [];
الدالة RegionSelect(selRegionProp){
this.regions =[];
var _regions = document.getElementsBySelector(selRegionProp["region"]);
إذا(_regions && _regions.length > 0){
var _self = this;
for(var i=0; i< _regions.length;i++){
_regions[i].onmousedown = function(){
فار evt = window.event || الحجج[0];
إذا(!evt.shiftKey && !evt.ctrlKey){
// اختر الخيار اختر الخيار
_self.clearSelections(_regions);
this.className += " "+_self.selectedClass;
// اختر الخيار المحدد، حدد الخيار المحدد
_selectedRegions = [];
_selectedRegions.push(this);
}آخر{
إذا (this.className.indexOf(_self.selectedClass) == -1){
this.className += " "+_self.selectedClass;
_selectedRegions.push(this);
}آخر{
this.className = this.className.replaceAll(_self.selectedClass,"");
_selectedRegions.remove(this);
}
}
ClearEventBubble(evt);
}
this.regions.push(_regions[i]);
}
}
this.selectedClass = selRegionProp["selectedClass"];
this.selectedRegion = [];
this.selectDiv = null;
this.startX = null;
this.startY = null;
}
RegionSelect.prototype.select = function(){
var _self = this;
addEvent("mousedown",function(){
فار evt = window.event || الحجج[0];
_self.onBeforeSelect(evt);
ClearEventBubble(evt);
}،وثيقة)؛
addEvent("mousemove",function(){
فار evt = window.event || الحجج[0];
_self.onSelect(evt);
ClearEventBubble(evt);
}،وثيقة)؛
addEvent("mouseup",function(){
_self.onEnd();
}،وثيقة)؛
}
RegionSelect.prototype.onBeforeSelect = function(evt){
إذا(!document.getElementById("selContainer")){
this.selectDiv = document.createElement("div");
this.selectDiv.style.cssText = "الموضع: مطلق؛ العرض: 0px؛ الارتفاع: 0px؛ حجم الخط: 0px؛ الهامش: 0px؛ الحشو: 0px؛ الحدود: 1 بكسل متقطع #0099FF;لون الخلفية:#C3D5ED;مؤشر z:1000;الفلتر:alpha(opacity:60);opacity:0.6;display:none;";
this.selectDiv.id = "selContainer";
document.body.appendChild(this.selectDiv);
}آخر{
this.selectDiv = document.getElementById("selContainer");
}
this.startX = posXY(evt).x;
this.startY = posXY(evt).y;
this.isSelect = true;
}
RegionSelect.prototype.onSelect = function(evt){
var _self = this;
إذا (_self.isSelect){
if(_self.selectDiv.style.display == "none") _self.selectDiv.style.display = "";
var posX = posXY(evt).x;
var poxY = posXY(evt).y;
_self.selectDiv.style.left = Math.min(posX, this.startX);
_self.selectDiv.style.top = Math.min(poxY, this.startY);
_self.selectDiv.style.width = Math.abs(posX - this.startX);
_self.selectDiv.style.height = Math.abs(poxY - this.startY);
var RegionList = _self.regions;
for(var i=0; i< RegionList.length; i++){
var r = RegionList[i], sr = _self.innerRegion(_self.selectDiv,r);
إذا (sr && r.className.indexOf(_self.selectedClass) == -1){
r.className = r.className + " "+_self.selectedClass;
_selectedRegions.push(r);
}else if(!sr && r.className.indexOf(_self.selectedClass) != -1){
r.className = r.className.replaceAll(_self.selectedClass,"");
_selectedRegions.remove(r);
}
}
}
}
RegionSelect.prototype.onEnd = function(){
إذا (هذا.selectDiv){
this.selectDiv.style.display = "none";
}
this.isSelect = false;
//_selectedRegions = this.selectedRegion;
}
// 判断一个区域是否在选择区内
RegionSelect.prototype.innerRegion = function(selDiv, Region){
var s_top = parseInt(selDiv.style.top);
var s_left = parseInt(selDiv.style.left);
var s_right = s_left + parseInt(selDiv.offsetWidth);
var s_bottom = s_top + parseInt(selDiv.offsetHeight);
var r_top = parseInt(region.offsetTop);
var r_left = parseInt(region.offsetLeft);
var r_right = r_left + parseInt(region.offsetWidth);
var r_bottom = r_top + parseInt(region.offsetHeight);
var t = Math.max(s_top, r_top);
فار r = Math.min(s_right, r_right);
var b = Math.min(s_bottom, r_bottom);
var l = Math.max(s_left, r_left);
إذا (ب > ر+5 && ص > ل+5) {
منطقة العودة؛
} آخر {
عودة فارغة؛
}
}
RegionSelect.prototype.clearSelections = function(regions){
for(var i=0; i<regions.length;i++){
المناطق[i].className = المناطق[i].className.replaceAll(this.selectedClass,"");
}
}
وظيفة getSelectedRegions(){
إرجاع _selectedRegions؛
}
وظيفة showSelDiv(){
var selInfo = "";
var arr = getSelectedRegions();
for(var i=0; i<arr.length;i++){
selInfo += arr[i].innerHTML+"/n";
}
تنبيه("共选择 "+arr. length+" 个文件، 分别是:/n"+selInfo);
}
// ]]></script>
<p><button onclick="showSelDiv();">getRegions</button></p>
<div>ملف1</div>
<div>ملف2</div>
<div>ملف3</div>
<div>ملف 4</div>
<div>الملف5</div>
<div>ملف6</div>
<div>الملف7</div>
<div>ملف 8</div>
<div style="float: left; width: 100%;"><button onclick="showSelDiv();">getRegions</button></div>
<script type="text/javascript">// <![CDATA[
تحديد منطقة جديدة({
المنطقة: 'div.fileDiv'،
فئة مختارة: "مختارة"
}).يختار()؛
// ]]></script>