我是Javascript和Jquery的新手,并且正在写一个脚本,当鼠标在浏览器窗口中移动以更改图像视角时,它将更改CSS“变换”值。Javascript/jquery for循环数组
一切都很好!我只想简化我的javascript/jquery以减少代码量(因为我是CSS定位-webkit- -moz- -ms-等),并且还可以更轻松地调整脚本。
好了,所以在这里我要精简部分:
$('#logo').css({
'-webkit-transform':
"rotateY("
+ (e.pageX-(current_width/2))/150 +
"deg) rotateX("
+ (e.pageY-(e.pageY*2-600)-(current_height/2))/300 +
"deg)",
'-moz-transform':
"rotateY("
+ (e.pageX-(current_width/2))/150 +
"deg) rotateX("
+ (e.pageY-(e.pageY*2-600)-(current_height/2))/300 +
"deg)",
'-ms-transform':
"rotateY("
+ (e.pageX-(current_width/2))/150 +
"deg) rotateX("
+ (e.pageY-(e.pageY*2-600)-(current_height/2))/300 +
"deg)",
'transform':
"rotateY("
+ (e.pageX-(current_width/2))/150 +
"deg) rotateX("
+ (e.pageY-(e.pageY*2-600)-(current_height/2))/300 +
"deg)",
});
正如你可以看到在每个4个中央部分的唯一变化是CSS浏览器的特定元素(-webkit-,-moz-等等),所以自然我想创建一个数组,它将包含这些变体中的每一个,然后循环遍历变体。
这是使用JavaScript“为”循环我第一次尝试:
var browserTransitionCSS = [
'-webkit-transition',
'-moz-transition',
'-ms-transition',
'transition'
];
for(var i=0; i < browserTransformCSS.length; i++)
{
$('#logo').css({
browserTransformCSS:
"rotateY("
+ (e.pageX-(current_width/2))/150 +
"deg) rotateX("
+ (e.pageY-(e.pageY*2-600)-(current_height/2))/200 +
"deg)",
});
};
这是我使用jQuery“每个”循环第二次尝试:
var browserTransitionCSS = [
'-webkit-transition',
'-moz-transition',
'-ms-transition',
'transition'
];
$.each(browserTransitionCSS, function(something) {
$('#logo').css({
something :
"rotateY("
+ (e.pageX-(current_width/2))/150 +
"deg) rotateX("
+ (e.pageY-(e.pageY*2-600)-(current_height/2))/200
+ "deg)",
});
});
而现在,几个小时后,挣扎着,我放弃了,问是否有人能帮助我。
如果这将有助于看到我的网址,然后请问。
这里的任何帮助将非常感激。非常感谢你。
好吧我仍然不是那么那么编码一个工作的例子:http://jsfiddle.net/asy9u/5/。任何帮助将不胜感激。 –