使用javascript编辑图像变换样式上的连续按钮点击
Using javascript to edit image transform style on consecutive button clicks
为了找出如何从我的javascript/css/html代码中获得此功能,我已经搜索了几个小时,但无济于事。
我有一张图片,我想让它在每次点击我创建的旋转按钮时旋转90度。
例如:点击1:90度旋转
点击2:180度旋转(在实现中我假设是90 + 90)
等等
然而,当我按照假设的方式编写代码时,它就不起作用了。我可以让图像旋转一次…那就别再这样了。
这是我正在使用的代码。
按钮:
<button id = "rotationRight" data-dojo-type="dijit.form.Button"
onclick = "rotateRight(90);" ></button>
然后这里有一些不同的javascript函数,我试图让这个工作:
<标题> 1function rotateRight(deg){
var total_rot;
total_rot += deg;
deg = total_rot;
document.getElementById("drag").style.transform = "rotate("+ deg +"deg)"
if(total_rot == 360){
total_rot = 0;
}
}
<标题> 2 h1> 3 (目前唯一一个做任何事情,但只旋转90次,即使连续点击按钮)
function rotateRight(deg){
document.getElementById("drag").style.transform = "rotate("+ deg +"deg)"
}
我试图在没有Jquery的情况下实现此功能。我目前仅限于DOJO, javascript, CSS3和HTML5。我觉得我很接近,但我不是一个有经验的javascript开发人员,我已经没有想法了。
标题>标题>A。确保初始变量(使用第一个示例)"var total_rot"在您正在调用的函数的作用域之外。所以
var total_rot = 0;
function rotateRight(ele,deg){
total_rot += deg;
deg = total_rot % 360;
ele.style.transform = "rotate("+ deg +"deg)";
}
B。请确保您添加正确的浏览器前缀,即。"ele.style。或者你可以写一个函数(@参见使用javascript检测css过渡(没有modernizr)?)
也,旋转一个正方形空div 90%....这在数学里叫什么来着…对称
您需要知道每次单击按钮时当前的旋转。我选择将其添加为数据属性,因为我不想解析转换字符串。但是,你也可以走那条路。
HTML<img id="rotate" src="http://www.placekitten.com/100/100" data-rotation='0' />
<button id="rotationRight" data-dojo-type="dijit.form.Button" onclick="rotateRight(90,'rotate');">Rotate Div</button>
Javascript function getsupportedprop(proparray) {
var root = document.documentElement //reference root element of document
for (var i = 0; i < proparray.length; i++) { //loop through possible properties
if (proparray[i] in root.style) { //if property exists on element (value will be string, empty string if not set)
return proparray[i] //return that string
}
}
}
function rotateRight(deg, rotate) {
var csstransform = getsupportedprop(['transform', 'MozTransform', 'WebkitTransform', 'msTransform', 'OTransform']);
var el = document.getElementById(rotate);
var rotation = parseInt(el.getAttribute("data-rotation")) + deg;
if (rotation >= 360) rotation -= 360;
el.style[csstransform] = 'rotate(' + rotation + 'deg)';
el.setAttribute("data-rotation", rotation);
}
小提琴:http://jsfiddle.net/ZYGn5/2/
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 同一按钮上的连续onclick事件触发单独的脚本
- 十月CMS-单选按钮Ajax连续点击两次导致内容消失
- 购物车加按钮连续点击
- 如何连续按下 2 个按钮时输出消息
- 连续循环单击按钮
- 如何在单击每个连续模态中的按钮时显示多个模态
- 在左右按钮上连续移动框
- 按钮在连续按下时不起作用
- 在jQuery中处理连续的按钮点击
- 如何在按下按钮并打洞时连续调用函数
- 一个HTML按钮可连续调用3个函数
- 创建小计,在连续单击单选按钮时将点相加,而不是一次全部单击
- Phaser,使按钮点击事件连续
- 如何在javascript中按下按钮时连续更改对象的属性值
- Java脚本:使用onclick按钮连续添加和减去变量
- 自定义按钮,以取代浏览器滚动-保持和连续滚动
- 使用Easyslider 1.7点击next按钮后的连续动画
- 使用javascript编辑图像变换样式上的连续按钮点击
- 模拟点击所有单选按钮并连续循环