嵌入式Silverlight与在IE8上执行的Javascript结合使用
我有一个简单的coverflow微调器,其中包含用javascript制作的图像,特别是jquery动画。微调器在大多数浏览器中工作正常,但在IE7/IE8中有点慢。然而,当我的嵌入式silverlight材质正在播放(流式视频)时,微调器的性能(在同一页面上的同一时间)确实会下降。它在IE7上变得非常慢-但在IE8上它变得非常慢,以至于根本无法进行动画-只是挂起几秒钟,然后立即翻转 问题是:当同时使用Silverlight和javascript时,IE8有什么特别之处吗 有关微调器和silverlight的一些信息: 微调器: 所有图像都放置在一个数组中,每个位置对应一组css属性。数组在每次单击时都会发生变化,并再次绘制嵌入式Silverlight与在IE8上执行的Javascript结合使用,javascript,jquery,silverlight,internet-explorer-8,jquery-animate,Javascript,Jquery,Silverlight,Internet Explorer 8,Jquery Animate,我有一个简单的coverflow微调器,其中包含用javascript制作的图像,特别是jquery动画。微调器在大多数浏览器中工作正常,但在IE7/IE8中有点慢。然而,当我的嵌入式silverlight材质正在播放(流式视频)时,微调器的性能(在同一页面上的同一时间)确实会下降。它在IE7上变得非常慢-但在IE8上它变得非常慢,以至于根本无法进行动画-只是挂起几秒钟,然后立即翻转 问题是:当同时使用Silverlight和javascript时,IE8有什么特别之处吗 有关微调器和silve
// one of the positions - css property
POS_N : {
left : '50%',
top : '50%',
right : 'auto',
display : 'block',
width : 200,
height : 288,
marginLeft : -Math.floor(200 / 2),
marginTop : -Math.floor(288 / 2),
zIndex : 5005
},
旋转代码:
/**
* Spin - Spins the carousel
*/
spin : function(index) {
var self = this;
// shift the array
var steps = parseInt(index) - self.CURRENT_POS;
for ( var i = 0; i < Math.abs(steps); i++) {
// left or right?
if (steps < 0) {
self.ITEMS.unshift(self.ITEMS.pop());
} else {
self.ITEMS.push(self.ITEMS.shift());
}
}
var animationWorklist = [];
// iterate items
$.each(this.ITEMS, function(i, data) {
var className = (i === self.CURRENT_POS) ? 'focused slide slide' + i : 'slide slide' + i;
var el = self.ITEMS[i].el;
// deep copy
var dress = self.dress(i); // get the CSS position object for this array positon
// remove properties
delete dress.zIndex;
// item needs to go around behind the other items - set lower zIndex
var lastItem = (steps < 0 && i === 0) || (steps > 0 && i === self.ITEMS.length - 1);
if (lastItem) {
zIndex = self.POS_NONE.zIndex;
}
// update dom
el.attr('class', className).find('a').attr('rel', i).find('span').html(i);
var pos = index - self.CURRENT_POS;
// only animate items within viewing range
if (pos >= -3 || pos <= 3) {
if (self.isIE78) {
// remove properties
delete dress.right;
delete dress.display;
delete dress.marginRight;
if (pos === 0) {
dress.marginRight = 'auto';
}
}
animationWorklist.push({
css : dress,
zIndex : zIndex,
el : el
});
} else {
el.css(dress);
}
});
for ( var i = 0; i < animationWorklist.length; i++) {
var item = animationWorklist[i];
item.el.stop(false, true).css('z-index', item.zIndex).animate(item.css);
}
},
/**
*旋转-旋转旋转木马
*/
自旋:函数(索引){
var self=这个;
//移动阵列
var steps=parseInt(index)-self.CURRENT\u POS;
对于(var i=0;i0&&i==self.ITEMS.length-1);
如果(最后一项){
zIndex=self.POS_NONE.zIndex;
}
//更新dom
el.attr('class',className).find('a').attr('rel',i).find('span').html(i);
var pos=指数-自身当前位置;
//仅对查看范围内的项目设置动画
如果(位置>=-3 | |位置
是gif
还是js
动画,ie7/8性能非常差。微调器中的所有图像都是jpg
<div id="playerEmbed">
<div id="silverlightControlHost">
<object id="silverlightControl" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="<%= this.videoWidth %>" height="<%= this.videoHeight %>">
<param name="source" value="<%= path %>" />
<param name="onError" value="onSilverlightError" />
<param name="minRuntimeVersion" value="5.0.61118.0" />
<param name="autoUpgrade" value="true" />
<param name="enableGPUAcceleration" value="true" />
<param name="InitParams" value="scriptableName=Player,MediaUri=<%=this.url%>" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=5.0.61118.0" style="text-decoration: none">
<img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style: none" />
</a>
</object>
<iframe id="_sl_historyFrame" style="visibility: hidden; height: 0px; width: 0px; border: 0px"></iframe>
</div>
</div>