مسج لون الرسوم المتحركة يلقي صالح قيمة العقار بشكل متقطع

StackOverflow https://stackoverflow.com/questions/530866

سؤال

أحاول تحريك خلفية ASP.Net الارتباط التشعبي إلى القيام الأصفر تتلاشى على تحديث لوحات التحديث.حتى الآن أنه يعمل تقريبا كل الوقت, ولكن في بعض الأحيان خطأ جافا سكريبت يتم طرح "غير صالحة وبربري قيمة." و تصحيحها في مسج اللون في المكونات البرمجية إلى هذا الخط...

fx.elem.style[attr] = "rgb(" + [
     Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0),
     Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0),
     Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0)
].join(",") + ")";

هنا هو ترتيب الأحداث كما يحدث حاليا...

أولا تحميل نافذة حتى على الطبيب.مستعد يسجل الحدث يتم تنفيذه عند التحديث الفريق قد أنهى منعش مثل ذلك...

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(yellowFade);

حيث yellowFade يعرف...

function yellowFade() {
    window.setTimeout("$('#' + hyperlinkUrlId).animate( { backgroundColor: 'white' }, 2000)", 2000);
    window.clearTimeout();
}

الآن نادرا ما كان لدي تحطم حق في هذه النقطة ولكن عادة ما يتم في وقت لاحق, حيث سوف يستمر...

ثم انقر فوق زر بعنوان "توليد" أن يخلق رابط تحميل ASP.Net الارتباط التشعبي مع نص URL خلقت ثم عن طريق جافا سكريبت مجموعات إنه لون الخلفية إلى اللون الأصفر أن تتلاشى من خلال هذا...

$("#" + hyperlinkUrlId).css("background-color", "#FBFF9C");

أنا في البداية كان تحديد لون في التعليمات البرمجية خلف طريق هذا الرمز...

Url.BackColor = ColorTranslator.FromHtml("#FBFF9C");

ولكن بعد ذلك فكرت ربما يعود اللون كان الحصول على تعيين شيء مسج اللون في المكونات لا تعترف ، أو حيث كان يجري تعيين الخادم الجانب المكونات في أستطع الوصول إليه أسلوب أو شيء ولكن تغيير أنها لا تزال لديها أي تأثير على إصلاح الخلل.

وأخيرا تولد تغييرات URL لون الخلفية من الأبيض إلى الأصفر ثم كما قلت أكثر من مرة أنه يتلاشى ما يرام ولكن نادرا ما يلقي خطأ "قيمة خاصية غير صالحة."

بقدر ما أستطيع أن أقول بلدي الجملة هو فقط ما يجب أن يكون استخدام الألوان والرسوم المتحركة.أشعر حقيقة أن أنا باستخدام updatepanel قد يكون تعيث فسادا هنا لكن لست متأكد.

هل من أحد لديه أي فكرة عن ما قد يسبب مثل هذا الشيء ؟ انها فوضى حقيقية في محاولة لتصحيح لأنه يحدث بشكل نادر جدا تجاهل حقيقة أن جافا سكريبت هو بالفعل الألم التصحيح.

باستخدام مسج 1.3.1 و مسج.اللون 1.0 Windows Vista.باستخدام Visual Studio 2008.اسمحوا لي أن أعرف إذا كان هناك أي شيء يمكن أن تصل واضحة.

تحرير: دانغ ولا واحد رد حتى الآن.أخذت قليلا من الفرجة من العمل على هذا ولكن أنا فقط وجدت علة في جزء آخر من بلدي التطبيق حيث أقوم الأصفر تتلاشى.كل من هذه الصفحات تستخدم تحديث لوحة.أنا لست من محبي لوحة التحديث في كثير من الحالات وأنه بالتأكيد قد عاثت فسادا في بلدي مسج.أنا أتساءل عما إذا كان لديها ما تفعله مع هذا.هذا كان نوع من ضمني مع كل ويندوز فيستا الشيء ولكن سوف نشير إلى أن أنا على التوالي على IIS7.

هل هذا استفزاز أي أفكار ؟

هل كانت مفيدة؟

المحلول

وأعتقد أنني واجهت نفس المشكلة كما كنت على مشروع آخر. كان لي DIV داخل DIV آخر (الذي لم يكن لديك هو الخلفية تعريف بشكل صريح.) كنت أحاول أن "فلاش" لون خلفية DIV الداخلي والوقوع في هذا الخطأ. فقط بعد أن تعيين لون محدد إلى الحاوية DIV لم الخطأ يذهب بعيدا.

نصائح أخرى

وكنت أعاني من نفس هذه المشكلة في IE8 مع الرسوم المتحركة لون الخلفية على بعض elemtents الدفتيريا. انها استمرت على الرغم من أعطى لون خلفية آر.

وأعتقد أن لدينا انها ثابتة الآن، عن طريق تغيير بعض التعليمات البرمجية في jquery.ui.

والبحث عن هذا القسم

// We override the animation for all of these color styles
$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i, attr) {
    $.fx.step[attr] = function(fx) {
        if (fx.state == 0) {

والتغيير:

if (fx.state == 0)

ل:

if (fx.state == 0 || fx.start.constructor != Array || fx.end.constructor != Array)

في بعض الأحيان عندما يتم تنفيذ هذه التعليمات البرمجية. fx.State ليس 0، ولكن لم تتم تهيئة fx.start وfx.end كصفائف RGB. في الشفرة المحدثة، ونحن تهيئة fx.start وfx.end صفائف إن لم تكن قد تم تهيئة.

وهذا يبدو أنها ثابتة، ولكن من الصعب أن تكون على يقين على مشكلة متقطعة.

تفاصيل أكثر هنا: http://dev.jqueryui.com/ticket/4251

لتلك التي لديها هذه المسألة مع مسج اللون المساعد ، بما فيه الكفاية الإختراق جيدة لتغيير

if ( fx.state == 0 ) {

وإلى شيء منخفضة مثل

if ( fx.state <= 0.045 ) {

والغريب fx.state ليست دائما 0، وهذا هو السبب يحصل على طرح الخطأ الممتلكات غير صالحة في بعض الأحيان.

والإصلاح على موقع مسج أقل (يجب أن يكون في إصدار مستقبلي). في effects.core.js تغيير:

if ( fx.state == 0 ) {
    fx.start = getColor( fx.elem, attr );
    fx.end = getRGB( fx.end );
}

إلى:

if (!fx.colorInit) {
    fx.start = getColor(fx.elem, attr);
    fx.end = getRGB(fx.end);
    fx.colorInit = true;
}

وهذا مسح المشكلة تماما حتى بالنسبة لي.

ولقد إعادة كتابة وظيفة اضع اللون، لمنع NaNs لتنتشر في قيمة RGB، وهذا لا يحل المشكلة.

var r = Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0);
var g = Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0);
var b = Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0);
if (!isNaN(r) && !isNaN(g) && !isNaN(b))
{
    var rgb = "rgb(" + [r,g,b].join(",") + ")";
    fx.elem.style[attr] = rgb;
}

وكنت أعاني من مشكلة مماثلة مع jquery.color.js. حل هذه باستخدام jquery.effects.core.js (مسج الآثار واجهة المستخدم الأساسية).

وآمل أن يعمل لكنت كذلك.

لدي حل آخر ، يعمل بالنسبة لي.فقط إضافة التحقق من صحة هذه الخطوط:

if (fx.start == undefined) { fx.start = getRGB('white'); } 
if (fx.end == undefined) { fx.end = getRGB('white'); }

قبل هذا:

fx.elem.style[attr] = "rgb(" + [
 Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0),
 Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0),
 Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0)].join(",") + ")";

وهذا لا يبدو أن العمل إذا كنت تحاول تحريك بعض العناصر في بعض المتصفحات (يعمل في فايرفوكس، وليس في جوجل كروم). على سبيل المثال، هذا لن يعمل مع قماش HTML. سيتم غير معروف fx.start.

وبلدي "الإختراق" لحملها على العمل مع عناصر HTML قماش على سبيل المثال -

if (fx.start == undefined) { fx.start = getRGB('white'); }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top