نمایش نتایج 1 تا 9 از 9

نام تاپیک: تغییر نام کلاس بدون اتلاف وقت

  1. #1

    تغییر نام کلاس بدون اتلاف وقت

    سلام من این کد را برای تغییر کلاس یک div نوشتم ولی تغییر با کمی تاخیر(1تا 2 ثانیه) انجام میشه اون هم فقط برای بار اول. اگر دوستان اطلاعی دارند لطفاً راهنمایی بفرمایند:
    <div id="mainpage" class="mainpage" ><a class="mainpage" onmouseover="document.getElementById('mainpage').c  lassName='mainpage2'"onmouseout="document.getEleme  ntById('mainpage').className='mainpage'" href="http://www.xxx.com" >صفحه اصلی</a></div>

    این هم css مربوطه:

    div.mainpage{
    background:transparent url(pictures/li_common_bg.gif) no-repeat ;
    width:164px;
    height:56px;
    margin-bottom: 8px;

    }
    div.mainpage2 {
    width:164px;
    height:56px;
    margin-bottom: 8px;
    background:transparent url(pictures/li_home_bg.gif) no-repeat ;
    }


  2. #2
    کاربر دائمی آواتار eAmin
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Node.js
    پست
    447

    نقل قول: تغییر نام کلاس بدون اتلاف وقت

    سلام.

    شما از این توابع استفاده کنید، و اول کلاس رو حذف و دوباره کلاس جدید رو به المنت مربوطه اختصاص بدید:
    http://snipplr.com/view/3561/addclas...lass-hasclass/

    function hasClass(ele,cls) {
    return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
    }

    function addClass(ele,cls) {
    if (!this.hasClass(ele,cls)) ele.className += " "+cls;
    }

    function removeClass(ele,cls) {
    if (hasClass(ele,cls)) {
    var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
    ele.className=ele.className.replace(reg,' ');
    }
    }

    //call the functions
    addClass(document.getElementById("test"), "test");
    removeClass(document.getElementById("test"), "test")
    if(hasClass(document.getElementById("test"), "test")){//do something};
    آخرین ویرایش به وسیله eAmin : شنبه 07 شهریور 1388 در 15:40 عصر

  3. #3
    کاربر دائمی آواتار alireza_s_84
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    اهواز
    پست
    1,191

    نقل قول: تغییر نام کلاس بدون اتلاف وقت

    دوست عزیز من کد شما رو چک کردم هیچ مشکلی نداشت وقتی روی لینک رفتم بلافاصله کلاس استایل div عوض شد.
    البته من دسترسی به عکس زمینه این مثال نداشتم اما دقیق تر بگید مشکل چیه تا راهنماییتون کنم.
    ضمنا وقتی در یک کلاسی که جایگزین کلاس دیگری میشه فقط یک background عوض میشه نوشتن کلاسی به اون طولانی لازم نیست کلاس دومتون رو اینجوری تصحیح کنید:
    div.mainpage2
    {
    background:transparent url(pictures/li_home_bg.gif) no-repeat ;
    }

  4. #4

    نقل قول: تغییر نام کلاس بدون اتلاف وقت

    ممکن که این اتلاف وقت بخاطر حجم css یا حجم تصویر background باشد؟در تست روی لوکال این اشکال خودشو نشون نداد ولی وقتی رفت روی سرور این مشکل بروز پیدا کرد.بنابراین دوستانی که تمایل به تست دارند لطفاً روی سرور این کار را انجام دهند.

  5. #5
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    مهر 1383
    محل زندگی
    سمنان - ایران
    پست
    440

    نقل قول: تغییر نام کلاس بدون اتلاف وقت

    سلام .
    من نمونه کد ذیل را پیشنهاد می کنم :
    کد HTML:
    .button {
        DISPLAY: block; FONT-WEIGHT: 700; FONT-SIZE:12px; VERTICAL-ALIGN: middle; WIDTH: 135px; COLOR: #000000; FONT-FAMILY: Tahoma,Arial; HEIGHT: 30px; TEXT-ALIGN: center; TEXT-DECORATION: none;
    }
    .button A {
        PADDING-RIGHT: 6px; DISPLAY: block; PADDING-LEFT: 6px; FONT-WEIGHT: 700; FONT-SIZE: 12px; BACKGROUND: url(ButtonALL3.jpg) #72bed5 no-repeat 50% top; VERTICAL-ALIGN: middle; COLOR: #006699! important; PADDING-TOP: 0px; FONT-FAMILY: Tahoma,Arial; HEIGHT: 30px; TEXT-ALIGN: center; TEXT-DECORATION: none;
    }
    .button A:active {
        PADDING-RIGHT: 6px; DISPLAY: block; PADDING-LEFT: 6px; FONT-WEIGHT: 700; FONT-SIZE: 12px; BACKGROUND: url(ButtonALL3.jpg) #72bed5 no-repeat 50% top; VERTICAL-ALIGN: middle; COLOR: #006699! important; PADDING-TOP: 0px; FONT-FAMILY: Tahoma,Arial; HEIGHT: 30px; TEXT-ALIGN: center; TEXT-DECORATION: none;
    }
    .button A:visited {
        PADDING-RIGHT: 6px; DISPLAY: block; PADDING-LEFT: 6px; FONT-WEIGHT: 700; FONT-SIZE: 12px; BACKGROUND: url(ButtonALL3.jpg) #72bed5 no-repeat 50% top; VERTICAL-ALIGN: middle; COLOR: #006699! important; PADDING-TOP: 0px; FONT-FAMILY: Tahoma,Arial; HEIGHT: 30px; TEXT-ALIGN: center; TEXT-DECORATION: none;
    }
    
    .button A:hover {
        FONT-WEIGHT: 400; FONT-SIZE: 10px; BACKGROUND: url(ButtonALL3.jpg) #3399cc no-repeat 50% bottom; VERTICAL-ALIGN: middle; COLOR: #990000! important; PADDING-TOP: 0px; FONT-FAMILY: Tahoma,Arial; HEIGHT: 30px; TEXT-DECORATION: none;
    }
    این طوری تصویر شما یکبار لود شده و می توانید از آن استفاده نمائید .
    البته این یک مثال برای Roll Over است که برای شما نیز کاربرد دارد .

    موفق باشید .

  6. #6
    کاربر دائمی آواتار eAmin
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Node.js
    پست
    447

    نقل قول: تغییر نام کلاس بدون اتلاف وقت

    نقل قول نوشته شده توسط ameysams مشاهده تاپیک
    ممکن که این اتلاف وقت بخاطر حجم css یا حجم تصویر background باشد؟در تست روی لوکال این اشکال خودشو نشون نداد ولی وقتی رفت روی سرور این مشکل بروز پیدا کرد.بنابراین دوستانی که تمایل به تست دارند لطفاً روی سرور این کار را انجام دهند.
    خب از اول می گفتید دوست عزیز!!

    همونطور که خودت گفتی بخاطر حجم تصویر هست، البته در سرور چون عکس از قبل در کامپیوتر شما کش نشده، اول باید تصویر دانلود و بعد نمایش داده بشه. که این امر طبیعی هست.
    اگر می خواید تا این مشکل رو برطرف کنید از تکنیکی مثل CSS Sprite استفاده کنید.

  7. #7

    نقل قول: تغییر نام کلاس بدون اتلاف وقت

    نقل قول نوشته شده توسط Amin eHelp مشاهده تاپیک
    خب از اول می گفتید دوست عزیز!!

    همونطور که خودت گفتی بخاطر حجم تصویر هست، البته در سرور چون عکس از قبل در کامپیوتر شما کش نشده، اول باید تصویر دانلود و بعد نمایش داده بشه. که این امر طبیعی هست.
    اگر می خواید تا این مشکل رو برطرف کنید از تکنیکی مثل CSS Sprite استفاده کنید.
    برنامه در مرحله پایانی است حالا اگر بخواهم از CSS Sprite استفاده کنم باید وقت زیادی برای اون صرف کنیم روش دیگری به ذهن شما نمی رسد؟مثلاً اگر همون اول تمام تصاویر background را لود کنیم این مشکل حل میشه.حالا چجوری همون اول تصاویر را لود کنیم؟؟
    با تشکر

  8. #8
    کاربر دائمی آواتار eAmin
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    Node.js
    پست
    447

    نقل قول: تغییر نام کلاس بدون اتلاف وقت

    البته فکر نمی کنم وقت شما رو زیاد بگیره.
    ولی شما می تونید با استفاده از JavaScript تصاویر مورد نطر رو pre-load کنید، با جستجو کردن در گوگل به این جوابتون می رسید.

  9. #9

    نقل قول: تغییر نام کلاس بدون اتلاف وقت

    نظر دوستان در مورد این روش چیه؟آیا عیب و نقص مهمی داره؟
    div.mainpage{
    background:transparent url(pictures/li_home_bg.gif) no-repeat ;
    background:transparent url(pictures/li_common_bg.gif) no-repeat ;
    width:164px;
    height:56px;
    margin-bottom: 8px;

    }
    div.mainpage2 {
    background:transparent url(pictures/li_home_bg.gif) no-repeat ;
    }

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •