انجمن


ثابت کردن تصویر زمینه  (۱۷ نوشته)

  • omidsas

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۸
    تشکر شده: ۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۴ خرداد ۱۳۹۰ - ۱۵:۵۳

    سلام لطفا قبل از همه چیز یه نگاه به سایت من بندازید: http://www.ma3.ir
    همونطور که میبینید من برای بکگراند سایت از یه تصویر استفاده کردم حالا میخوام وقتی صحه اسکرول میخوره ثابت بمونه و همراه با بقیه قسمت ها اسکرول نخوره نمیدونم تونستم منظورم رو برسونم یا نه. از پاسخی که میدید ممنونممم

  • Morteza

    آفلاین
    ناظم
    تعداد نوشته‌ها: ۳۴۰۲
    تشکر شده: ۳۱۲۸ بار
    # نوشته شده: ۱۲ سال پیش
    ۴ خرداد ۱۳۹۰ - ۱۶:۴۱

    در استایل جایی که زمینه قراردادید :
    background-attachment:fixed;

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    omidsas
  • omidsas

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۸
    تشکر شده: ۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۱ خرداد ۱۳۹۰ - ۰۱:۰۸

    ممنون از پاسخی که دادین مشکلم حل شد فقط یه سوال دیگه داشتم اگه بخوام این تصویر زمینه بصورت رندم از بین 5 تصویر لود بشه بطوری که بیننده تو هر بار رفش صفحه عکس متفاوتی ببینه چه کدی را باید اضافه کنم؟

  • Morteza

    آفلاین
    ناظم
    تعداد نوشته‌ها: ۳۴۰۲
    تشکر شده: ۳۱۲۸ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۱ خرداد ۱۳۹۰ - ۱۲:۵۳

    برای اون مورد باید با php و تابع رندم چند فایل استایل رو لود کنید.
    توی هرفایل هم فقط یک بکگراند تعریف شده باشه.
    به اینصورت میتونید خواسته تون رو پیاد کنید.

  • omidsas

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۸
    تشکر شده: ۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۱ خرداد ۱۳۹۰ - ۱۳:۰۴

    man4toman گفت:
    برای اون مورد باید با php و تابع رندم چند فایل استایل رو لود کنید.
    توی هرفایل هم فقط یک بکگراند تعریف شده باشه.
    به اینصورت میتونید خواسته تون رو پیاد کنید.

    فکر میکنم اینجوری کل قالب حالت رندوم پیدا میکنه که اگر بعدا تغییر کوچیکی تو قالب بخوایم بدیم مجبوریم هر 5 تا فایل رو ویرایش کنیم که یکمی مشکل ساز میشه نمیشه کاری کرد که فقط فایل زمینه از 5 تا مسیر مختلف رندوم لود بشه؟

  • Morteza

    آفلاین
    ناظم
    تعداد نوشته‌ها: ۳۴۰۲
    تشکر شده: ۳۱۲۸ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۱ خرداد ۱۳۹۰ - ۱۳:۲۳

    درست متن رو نخوندید.

    توی هرفایل هم فقط یک بکگراند تعریف شده باشه.

    یعنی بجز فایل اصلی استایل ، فایل که توی اونها فقط بکگراند تعریف شده رو رندم با php لود کنید.

  • omidsas

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۸
    تشکر شده: ۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۱ خرداد ۱۳۹۰ - ۱۸:۵۴

    خوب میشه لطف کنید و توضیح بیشتری بدید اون کد رندوم رو هم اگه اینجا بدید ممنون میشم من زیاد با php آشنا نیستم

  • Morteza

    آفلاین
    ناظم
    تعداد نوشته‌ها: ۳۴۰۲
    تشکر شده: ۳۱۲۸ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۱ خرداد ۱۳۹۰ - ۱۹:۱۱

    این کدها رو با نام rotator.php ذخیره کنید.

    <?php
    
    	$folder = '.';  //مثال : $folder = '/user/me/example.com/images/';
    
        $extList = array();
    	$extList['gif'] = 'image/gif';
    	$extList['jpg'] = 'image/jpeg';
    	$extList['jpeg'] = 'image/jpeg';
    	$extList['png'] = 'image/png';
    
    $img = null;
    
    if (substr($folder,-1) != '/') {
    	$folder = $folder.'/';
    }
    
    if (isset($_GET['img'])) {
    	$imageInfo = pathinfo($_GET['img']);
    	if (
    	    isset( $extList[ strtolower( $imageInfo['extension'] ) ] ) &&
            file_exists( $folder.$imageInfo['basename'] )
        ) {
    		$img = $folder.$imageInfo['basename'];
    	}
    } else {
    	$fileList = array();
    	$handle = opendir($folder);
    	while ( false !== ( $file = readdir($handle) ) ) {
    		$file_info = pathinfo($file);
    		if (
    		    isset( $extList[ strtolower( $file_info['extension'] ) ] )
    		) {
    			$fileList[] = $file;
    		}
    	}
    	closedir($handle);
    
    	if (count($fileList) > 0) {
    		$imageNumber = time() % count($fileList);
    		$img = $folder.$fileList[$imageNumber];
    	}
    }
    
    if ($img!=null) {
    	$imageInfo = pathinfo($img);
    	$contentType = 'Content-type: '.$extList[ $imageInfo['extension'] ];
    	header ($contentType);
    	readfile($img);
    } else {
    	if ( function_exists('imagecreate') ) {
    		header ("Content-type: image/png");
    		$im = @imagecreate (100, 100)
    		    or die ("Cannot initialize new GD image stream");
    		$background_color = imagecolorallocate ($im, 255, 255, 255);
    		$text_color = imagecolorallocate ($im, 0,0,0);
    		imagestring ($im, 2, 5, 5,  "IMAGE ERROR", $text_color);
    		imagepng ($im);
    		imagedestroy($im);
    	}
    }
    
    ?>

    مثلا هدر شما هست:
    <div id="header">&nbsp;</div>

    در استایل هم این رو قرار بدید:

    #header{
      background: url(images/rotator.php) no-repeat center top;
      width: 700px;
      height: 150px;
    }

    به ادرس دهی ها توجه کنید.

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    omidsas - مجتبي اسپري پور
  • omidsas

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۸
    تشکر شده: ۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۱ خرداد ۱۳۹۰ - ۲۲:۰۱

    ممنون از راهنماییتون من کارایی رو که گفتین انجام دادم اما تصویر زمینه حذف شد و چیزی لود نشد حالا من کارایی رو که انجام دادم دقیقتر میگم ببینین درست متوجه شدم من فایل rotator.php رو ساختم کل محتویات بالا هم کپی کردم داخلش خط اول که مسیر پوشه تصاویر هست رو هم روی هاست آدرس دادم. فایل rotator.php هم کپی کردم داخل همون پوشه و تو فایل استایل هم گشتم ببینم فایل تصویر زمینه کجا آدرس دهی شده و آدرس رو با مسیر فایل rotator.php عوض کردم حالا شما بگین درست انجام دادم پیشاپیش هم از مبتدی بودن خودم پوزش میطلبم

    body {
    
    	color: #373737;
    
    	background:url(bgs/rotator.php) top center no-repeat #222326;
    
    	font-family: Tahoma, Helvetica, sans-serif;
    
            background-attachment:fixed;
    
    	font-size: 11px;
    
    	background-color: #3e3e3e;
    
    	background-position: top;
    
    	background-color: #0e0e0e;
    
    }
  • Morteza

    آفلاین
    ناظم
    تعداد نوشته‌ها: ۳۴۰۲
    تشکر شده: ۳۱۲۸ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۲ خرداد ۱۳۹۰ - ۱۹:۲۳

    مسیر پوشه تصاویر رو چجوری آدرس دادید؟

  • omidsas

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۸
    تشکر شده: ۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۳ خرداد ۱۳۹۰ - ۰۱:۳۳

    man4toman گفت:
    مسیر پوشه تصاویر رو چجوری آدرس دادید؟

    مسیر پوشه رو که bgs اسمش هست به شکل زیر دادم:
    $folder = '/bgs'

  • Morteza

    آفلاین
    ناظم
    تعداد نوشته‌ها: ۳۴۰۲
    تشکر شده: ۳۱۲۸ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۳ خرداد ۱۳۹۰ - ۰۹:۵۰

    آدرس دهی رو مثل زیر انجام بدید.
    /user/me/example.com/images/

  • omidsas

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۸
    تشکر شده: ۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۳ خرداد ۱۳۹۰ - ۱۳:۴۱

    من اون کارم انجام دادم به صورت زیر هم آدرس دادم ولی نشد
    $folder = '/user/me/ma3.ir/bgs/'
    البته چند تا نکته هست که هنوز متوجه نشدم:
    1- من پوشه تصاویر رو که من اسمش رو گذاشتم bgs باید تو روت سایت درست کنم یا پوشه قالب؟
    2- اون نوع آدرس دهی که شما گفتین رو درست درک نکردم اگه میشه شما به من بگین من پوشه تصاویر رو اگه تو روت درست کنم و آدرس سایت هم http://www.ma3.ir هستش چطوری آدرس بدم من انواع و اقسامشو امتحان کردم نمیدونم چطوری میشه؟
    3- مهم نیست سایز تصاویر و اسمو فرمتشون چی باشه؟
    4-فایل rotator.php تو پوشه تصاویر قرار میگیره؟
    5- اون قسمت تو آدرس که هستش: /user/me/ رو متوجه نمیشم؟؟!!!!

    یک دنیا تشکر از کمکی که میکنین

  • omidsas

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۸
    تشکر شده: ۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۶ خرداد ۱۳۹۰ - ۱۶:۱۹

    من همچنان منتظر پاسخ شما هستم ممنون میشم سریعتر راهنمایی کنید

  • Morteza

    آفلاین
    ناظم
    تعداد نوشته‌ها: ۳۴۰۲
    تشکر شده: ۳۱۲۸ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۷ خرداد ۱۳۹۰ - ۱۳:۰۴

    سلام مجدد
    من تست کردم و مشکلی نبود.
    آدرس دهی شما اشتباه هست.
    مثلا باید بشه :
    $folder = '/example/public_html/wp-content/themes/youthemename/bgs/'

    example اسم سایت یا یوزر سایت شماست. بقیه هم مشخصه.

    کاربران زیر به‌خاطر این نوشته تشکر کرده‌اند:
    omidsas
  • omidsas

    آفلاین
    عضو
    تعداد نوشته‌ها: ۲۸
    تشکر شده: ۳ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۸ خرداد ۱۳۹۰ - ۰۲:۰۱

    با تشکر از راهنمایی شما مشکل حل شد.

  • Morteza

    آفلاین
    ناظم
    تعداد نوشته‌ها: ۳۴۰۲
    تشکر شده: ۳۱۲۸ بار
    # نوشته شده: ۱۲ سال پیش
    ۱۸ خرداد ۱۳۹۰ - ۱۵:۳۲

    خواهش مکینم.
    تاپیک -> حل شده

درباره‌ی این موضوع



برچسب‌ها

هیچ برچسبی نیست.