【www.gdgbn.com--ios】
scrollDiv.style.width = displayWidth scrollDiv.style.height = displayHeight scrollDiv.style.overflow = "hidden" scrollDiv.setAttribute("state", "stop") scrollDiv.setAttribute("drag", drag ? drag : "horizontal") scrollDiv.setAttribute("direction", direction ? direction : "left") scrollDiv.setAttribute("zoom", zoom ? zoom : 1) scrollContent.style.zoom = scrollDiv.zoom var scroll_script = "var scrollDiv = " + scrollDiv.uniqueID +"n"+ "var scrollObj = " + scrollContent.uniqueID +"n"+ "var contentWidth = " + contentWidth + " * (scrollObj.runtimeStyle.zoom ? scrollObj.runtimeStyle.zoom : 1)" +"n"+ "var contentHeight = " + contentHeight + " * (scrollObj.runtimeStyle.zoom ? scrollObj.runtimeStyle.zoom : 1)" +"n"+ "var scrollx = scrollObj.runtimeStyle.pixelLeft" +"n"+ "var scrolly = scrollObj.runtimeStyle.pixelTop" +"n"+
"switch (scrollDiv.state.toLowerCase())" +"n"+ "{" +"n"+ "case ("scroll") :" +"n"+ "switch (scrollDiv.direction)" +"n"+ "{" +"n"+ "case ("left") :" +"n"+ "scrollx = (--scrollx) % contentWidth" +"n"+ "break" +"n"+ "case ("right") :" +"n"+ "scrollx = -contentWidth + (++scrollx) % contentWidth" +"n"+ "break" +"n"+ "case ("up") :" +"n"+ "scrolly = (--scrolly) % contentHeight" +"n"+ "break" +"n"+ "case ("down") :" +"n"+ "scrolly = -contentHeight + (++scrolly) % contentHeight" +"n"+ "break" +"n"+ "case ("left_up") :" +"n"+ "scrollx = (--scrollx) % contentWidth" +"n"+ "scrolly = (--scrolly) % contentHeight" +"n"+ "break" +"n"+ "case ("left_down") :" +"n"+ "scrollx = (--scrollx) % contentWidth" +"n"+ "scrolly = -contentHeight + (++scrolly) % contentHeight" +"n"+ "break" +"n"+ "case ("right_up") :" +"n"+ "scrollx = -contentWidth + (++scrollx) % contentWidth" +"n"+ "scrolly = (--scrolly) % contentHeight" +"n"+ "break" +"n"+ "case ("right_down") :" +"n"+ "scrollx = -contentWidth + (++scrollx) % contentWidth" +"n"+ "scrolly = -contentHeight + (++scrolly) % contentHeight" +"n"+ "break" +"n"+ "default :" +"n"+ "return" +"n"+ "}" +"n"+ "scrollObj.runtimeStyle.left = scrollx" +"n"+ "scrollObj.runtimeStyle.top = scrolly" +"n"+ "break" +"n"+ "case ("stop") :" +"n"+ "case ("drag") :" +"n"+ "default :" +"n"+ "return" +"n"+ "}" var contentNode = document.createElement("span") contentNode.runtimeStyle.position = "absolute" contentNode.runtimeStyle.width = contentWidth scrollContent.applyElement(contentNode, "inside") for (var i=0; i <= scrollXItems; i++) { for (var j=0; j <= scrollYItems ; j++) { if (i+j == 0) continue var tempNode = contentNode.cloneNode(true) var contentLeft, contentTop scrollContent.insertBefore(tempNode) contentLeft = contentWidth * i contentTop = contentHeight * j tempNode.runtimeStyle.left = contentLeft tempNode.runtimeStyle.top = contentTop } }
scrollDiv.onpropertychange = function() { var propertyName = window.event.propertyName var propertyValue = eval("this." + propertyName) switch(propertyName) { case "zoom" : var scrollObj = this.children[0] scrollObj.runtimeStyle.zoom = propertyValue var content_width = scrollObj.children[0].offsetWidth * propertyValue var content_height = scrollObj.children[0].offsetHeight * propertyValue scrollObj.runtimeStyle.left = -content_width + (scrollObj.runtimeStyle.pixelLeft % content_width) scrollObj.runtimeStyle.top = -content_height + (scrollObj.runtimeStyle.pixelTop % content_height) break } } scrollDiv.onlosecapture = function() { this.state = this.tempState ? this.tempState : this.state this.runtimeStyle.cursor = "" this.removeAttribute("tempState") this.removeAttribute("start_x") this.removeAttribute("start_y") this.removeAttribute("default_left") this.removeAttribute("default_top") } scrollDiv.onmousedown = function() { if (this.state != "drag") this.setAttribute("tempState", this.state) this.state = "drag" this.runtimeStyle.cursor = "default" this.setAttribute("start_x", event.clientX) this.setAttribute("start_y", event.clientY) this.setAttribute("default_left", this.children[0].style.pixelLeft) this.setAttribute("default_top", this.children[0].style.pixelTop) this.setCapture() } scrollDiv.onmousemove = function() { if (this.state != "drag") return var scrollx = scrolly = 0 var zoomValue = this.children[0].style.zoom ? this.children[0].style.zoom : 1 var content_width = this.children[0].children[0].offsetWidth * zoomValue var content_Height = this.children[0].children[0].offsetHeight * zoomValue if (this.drag == "horizontal" || this.drag == "both") { scrollx = this.default_left + event.clientX - this.start_x scrollx = -content_width + scrollx % content_width this.children[0].runtimeStyle.left = scrollx } if (this.drag == "vertical" || this.drag == "both") { scrolly = this.default_top + event.clientY - this.start_y scrolly = -content_Height + scrolly % content_Height this.children[0].runtimeStyle.top = scrolly } } scrollDiv.onmouseup = function() { this.releaseCapture() } scrollDiv.state = "scroll" setInterval(scroll_script, speed ? speed : 20) } </script> <script language="JScript"> window.onload = new Function("scroll(document.all["testDiv"], 325)") </script> 5向上 3向左 ;停止 8播放 4向右 6向下 缩放: 100% 200% 300% 托动范围: 随意 横向 纵向
本文来源:http://www.gdgbn.com/shoujikaifa/10657/