svg图案可以随着div层缩小放大?
[code=javascript<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>可以拖拽鼠标来改变DIV层的大小
http://www.51xuediannao.com</title>
<head>
<style>
{box-sizing: border-box;
moz-box-sizing: border-box;
}
#testDiv{
background-color: buttonface;
background-repeat: repeat;
background-attachment: scroll;
color: #3969A5;
height: 300px;
left: 30px;
overflow: hidden;
width: 500;
z-index: 2;
border: 2px outset white;
margin: 0px; padding: 2px;
background-position: 0% 50% }
body{ font-family: Verdana;
font-size: 9pt }
#innerNice{
background-color: white;
background-repeat: repeat;
background-attachment: scroll;
color: #3969A5;
height: 100%;
overflow: auto;
width: 100%;
border: 2px inset white;
padding: 8px;
background-position: 0% 50% }
</style>
<SCRIPT language=javascript>
var theobject = null; //This gets a value as soon as a resize start
function resizeObject() {
this.el = null; //pointer to the object
this.dir = ""; //type of current resize (n, s, e, w, ne, nw, se, sw)
this.grabx = null; //Some useful values
this.graby = null;
this.width = null;
this.height = null;
this.left = null;
this.top = null;
}
//Find out what kind of resize! Return a string inlcluding the directions
function getDirection(el) {
var xPos, yPos, offset, dir;
dir = "";
xPos = window.event.offsetX;
yPos = window.event.offsetY;
offset = 8; //The distance from the edge in pixels
if (yPos<offset) dir += "n";
else if (yPos > el.offsetHeight-offset) dir += "s";
if (xPos<offset) dir += "w";
else if (xPos > el.offsetWidth-offset) dir += "e";
return dir;
}
function doDown() {
var el = getReal(event.srcElement, "className", "resizeMe");
if (el == null) {
theobject = null;
return;
}
dir = getDirection(el);
if (dir == "") return;
theobject = new resizeObject();
theobject.el = el;
theobject.dir = dir;
theobject.grabx = window.event.clientX;
theobject.graby = window.event.clientY;
theobject.width = el.offsetWidth;
theobject.height = el.offsetHeight;
theobject.left = el.offsetLeft;
theobject.top = el.offsetTop;
window.event.returnValue = false;
window.event.cancelBubble = true;
}
function doUp() {
if (theobject != null) {
theobject = null;
}
}
function doMove() {
var el, xPos, yPos, str, xMin, yMin;
xMin = 8; //The smallest width possible
yMin = 8; // height
el = getReal(event.srcElement, "className", "resizeMe");
if (el.className == "resizeMe") {
str = getDirection(el);
//Fix the cursor
if (str == "") str = "default";
else str += "-resize";
el.style.cursor = str;
}
//Dragging starts here
if(theobject != null) {
if (dir.indexOf("e") != -1)
theobject.el.style.width = Math.max(xMin, theobject.width +
window.event.clientX - theobject.grabx) + "px";
if (dir.indexOf("s") != -1)
theobject.el.style.height = Math.max(yMin, theobject.height +
window.event.clientY - theobject.graby) + "px";
if (dir.indexOf("w") != -1) {
theobject.el.style.left = Math.min(theobject.left +
window.event.clientX - theobject.grabx, theobject.left + theobject.width - xMin) +
"px";
theobject.el.style.width = Math.max(xMin, theobject.width -
window.event.clientX + theobject.grabx) + "px";
}
if (dir.indexOf("n") != -1) {
theobject.el.style.top = Math.min(theobject.top +
window.event.clientY - theobject.graby, theobject.top + theobject.height - yMin) +
"px";
theobject.el.style.height = Math.max(yMin, theobject.height -
window.event.clientY + theobject.graby) + "px";
}
window.event.returnValue = false;
window.event.cancelBubble = true;
}
}
function getReal(el, type, value) {
temp = el;
while ((temp != null) && (temp.tagName != "BODY")) {
if (eval("temp." + type) == value) {
el = temp;
return el;
}
temp = temp.parentElement;
}
return el;
}
document.onmousedown = doDown;
document.onmouseup = doUp;
document.onmousemove = doMove;
</SCRIPT>
</head>
<body>
<div class="resizeMe" id="testDiv">
<div id="innerNice">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"width:100%; height="100%">
<polygon points="100,10 40,180 190,60 10,60 160,180"
style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
</svg> </div>
</div>
</body>
][/code]
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>可以拖拽鼠标来改变DIV层的大小
http://www.51xuediannao.com</title>
<head>
<style>
{box-sizing: border-box;
moz-box-sizing: border-box;
}
#testDiv{
background-color: buttonface;
background-repeat: repeat;
background-attachment: scroll;
color: #3969A5;
height: 300px;
left: 30px;
overflow: hidden;
width: 500;
z-index: 2;
border: 2px outset white;
margin: 0px; padding: 2px;
background-position: 0% 50% }
body{ font-family: Verdana;
font-size: 9pt }
#innerNice{
background-color: white;
background-repeat: repeat;
background-attachment: scroll;
color: #3969A5;
height: 100%;
overflow: auto;
width: 100%;
border: 2px inset white;
padding: 8px;
background-position: 0% 50% }
</style>
<SCRIPT language=javascript>
var theobject = null; //This gets a value as soon as a resize start
function resizeObject() {
this.el = null; //pointer to the object
this.dir = ""; //type of current resize (n, s, e, w, ne, nw, se, sw)
this.grabx = null; //Some useful values
this.graby = null;
this.width = null;
this.height = null;
this.left = null;
this.top = null;
}
//Find out what kind of resize! Return a string inlcluding the directions
function getDirection(el) {
var xPos, yPos, offset, dir;
dir = "";
xPos = window.event.offsetX;
yPos = window.event.offsetY;
offset = 8; //The distance from the edge in pixels
if (yPos<offset) dir += "n";
else if (yPos > el.offsetHeight-offset) dir += "s";
if (xPos<offset) dir += "w";
else if (xPos > el.offsetWidth-offset) dir += "e";
return dir;
}
function doDown() {
var el = getReal(event.srcElement, "className", "resizeMe");
if (el == null) {
theobject = null;
return;
}
dir = getDirection(el);
if (dir == "") return;
theobject = new resizeObject();
theobject.el = el;
theobject.dir = dir;
theobject.grabx = window.event.clientX;
theobject.graby = window.event.clientY;
theobject.width = el.offsetWidth;
theobject.height = el.offsetHeight;
theobject.left = el.offsetLeft;
theobject.top = el.offsetTop;
window.event.returnValue = false;
window.event.cancelBubble = true;
}
function doUp() {
if (theobject != null) {
theobject = null;
}
}
function doMove() {
var el, xPos, yPos, str, xMin, yMin;
xMin = 8; //The smallest width possible
yMin = 8; // height
el = getReal(event.srcElement, "className", "resizeMe");
if (el.className == "resizeMe") {
str = getDirection(el);
//Fix the cursor
if (str == "") str = "default";
else str += "-resize";
el.style.cursor = str;
}
//Dragging starts here
if(theobject != null) {
if (dir.indexOf("e") != -1)
theobject.el.style.width = Math.max(xMin, theobject.width +
window.event.clientX - theobject.grabx) + "px";
if (dir.indexOf("s") != -1)
theobject.el.style.height = Math.max(yMin, theobject.height +
window.event.clientY - theobject.graby) + "px";
if (dir.indexOf("w") != -1) {
theobject.el.style.left = Math.min(theobject.left +
window.event.clientX - theobject.grabx, theobject.left + theobject.width - xMin) +
"px";
theobject.el.style.width = Math.max(xMin, theobject.width -
window.event.clientX + theobject.grabx) + "px";
}
if (dir.indexOf("n") != -1) {
theobject.el.style.top = Math.min(theobject.top +
window.event.clientY - theobject.graby, theobject.top + theobject.height - yMin) +
"px";
theobject.el.style.height = Math.max(yMin, theobject.height -
window.event.clientY + theobject.graby) + "px";
}
window.event.returnValue = false;
window.event.cancelBubble = true;
}
}
function getReal(el, type, value) {
temp = el;
while ((temp != null) && (temp.tagName != "BODY")) {
if (eval("temp." + type) == value) {
el = temp;
return el;
}
temp = temp.parentElement;
}
return el;
}
document.onmousedown = doDown;
document.onmouseup = doUp;
document.onmousemove = doMove;
</SCRIPT>
</head>
<body>
<div class="resizeMe" id="testDiv">
<div id="innerNice">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"width:100%; height="100%">
<polygon points="100,10 40,180 190,60 10,60 160,180"
style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
</svg> </div>
</div>
</body>
][/code]
...全文
相关推荐
图片 svg 放大缩小 鼠标拖动功能
支持 图片 svg div 等的拖动,放大 ,缩小,代码都写好了,直接可以跑
CSS3与SVG结合实现六边形图案特效
使用@keyframes规则可以详细定义动画的每一帧,从而创造连贯且动态的视觉效果。@keyframes可以定义不同的百分比帧来控制动画的进度。举个例子,下面的代码展示了如何定义一个简单的淡入淡出效果:-- HTML结构 -->-- SVG图形内容 --></svg>在这个例子中,fade动画定义了从完全透明(opacity: 0)到完全不透明(opacity: 1),然后再次回到透明的动画序列。动画的总时长为5秒,并且是无限循环的(infinite。
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
主要介绍了vue使用svg文件补充-svg放大缩小操作(使用d3.js),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
实现SVG图片放大缩小及拖动功能
实现SVG图片的Pan and Zoom 功能
svg在移动端的应用-手势图片拖动,手势放大缩小
svg在移动端的应用-手势图片拖动,手势放大缩小,比较方便


