如何让我的箭头小部件在第二次单击时向后旋转以开始
How do I get my arrow widget to rotate back to start on second click
在看了两节YouTube课程后,我现在有一个漂亮的箭头小部件,可以通过一个按钮淡入,旋转到180度并淡出控制。 我不知道如何在第二次单击此按钮时使箭头旋转回 0。
可能不是最优雅的代码,但我们在这里:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Fade In and Out</title>
<style type="text/css">
div.contentbox {
width: 50px;
height: 50px;
padding: 20px;
opacity: 0;
}
</style>
<script type="text/javascript">
var fade_in_from = 0;
var fade_out_from = 10;
function fadeIn(element) {
var target = document.getElementById(element)
target.style.display = "block";
var newSetting = fade_in_from / 10;
target.style.opacity = newSetting;
fade_in_from++;
if(fade_in_from == 10) {
target.style.opacity = 1;
clearTimeout(loopTimer);
fade_in_from = 0;
return false;
}
var loopTimer = setTimeout('fadeIn('''+element+''')', 50);
}
function fadeOut(element) {
var target = document.getElementById(element)
var newSetting = fade_out_from / 10;
target.style.opacity = newSetting;
fade_out_from--;
if(fade_out_from == 0) {
target.style.opacity = 0;
clearTimeout(loopTimer);
fade_out_from = 10;
return false;
}
var loopTimer = setTimeout('fadeOut('''+element+''')', 50);
}
var looper;
var degrees = 0;
function rotateAnimation(el,speed)
{
var elem = document.getElementById(el);
if(navigator.userAgent.match("Chrome")){
elem.style.WebkitTransform = "rotate("+degrees+"deg)";
} else if(navigator.userAgent.match("Firefox")){
elem.style.MozTransform = "rotate("+degrees+"deg)";
} else if(navigator.userAgent.match("MSIE")){
elem.style.msTransform = "rotate("+degrees+"deg)";
} else if(navigator.userAgent.match("Opera")){
elem.style.OTransform = "rotate("+degrees+"deg)";
} else {
elem.style.transform = "rotate("+degrees+"deg)";
}
looper = setTimeout ('rotateAnimation('''+el+''','+speed+')',speed);
degrees++;
if(degrees > 179){
clearTimeout(looper)
}
}
</script>
</head>
<body>
<button onmouseover="fadeIn('arrow_box')": onmouseout="fadeOut('arrow_box')": onclick="rotateAnimation('arrow',5)">fade in/out</button>
<div id="arrow_box" class="contentbox"><img id="arrow" img src="images/Arrow.png" width="50" height="50" alt="Arrow" /></div>
</body>
</html>
请帮忙。
创建一个新变量来记住方向,然后根据要去的方向递增或递减度数。
这是一个工作解决方案的 JSfiddle 链接。
var looper;
var degrees = 0;
var direction = 0;
function rotateAnimation(el,speed){
var elem = document.getElementById(el);
if(navigator.userAgent.match("Chrome")){
elem.style.WebkitTransform = "rotate("+degrees+"deg)";
}else if(navigator.userAgent.match("Firefox")){
elem.style.MozTransform = "rotate("+degrees+"deg)";
}else if(navigator.userAgent.match("MSIE")){
elem.style.msTransform = "rotate("+degrees+"deg)";
}else if(navigator.userAgent.match("Opera")){
elem.style.OTransform = "rotate("+degrees+"deg)";
}else {
elem.style.transform = "rotate("+degrees+"deg)";
}
looper = setTimeout
('rotateAnimation('''+el+''','+speed+')',speed);
if(direction === 0){
degrees++;
if(degrees > 179){
direction = 1;
clearTimeout(looper);
}
}else {
degrees--;
if(degrees < 1){
direction = 0;
clearTimeout(looper);
}
}
}
相关文章:
- 单击链接时如何将引导程序转盘旋转到特定位置
- 每次单击JQuery时旋转图像
- 旋转和取消旋转图像单击与 javascript
- Jquery 旋转在单击时旋转 img
- 单击three.js中的链接旋转球体
- 如何在单击时进行多次旋转
- 如何更改此翻转卡以在单击时自行旋转
- 单击旋转木马外部返回主页
- 如何停止多次单击下一个以破坏我的图像旋转器
- 停止 3 个图像旋转只需单击一个按钮
- 高图表单击旋转 -90
- 单击后如何重置旋转时间
- 使图像横幅在单击时自动旋转
- 单击时旋转地球并居中
- 高图表 js 单击旋转并展开弧线
- 动态观察控件.js导致模型在单击旋转时消失
- 如何使用 Raphael.js 在每次单击鼠标时触发旋转动画
- NG 单击图像未调用猫头鹰旋转木马滑块中的温泉模板页面
- jQuery 旋转函数 - 在图像单击时指定 20% 的旋转
- 单击旋转木马图示符时如何获取数据id